标题: nodejs踩坑记 [打印本页]

作者: 51hei不    时间: 2016-6-19 01:46
标题: nodejs踩坑记
最近想把nodejs跟quickfix结合一下,搞点高大上的东西,踩了一个星期的坑,记流水帐如下:

1.编写node-fix插件,把quickfix加载进来,注册回调函数
2.nodejs内部调用V8内核是一个单线程。
3.nodejs通过uv跟v8交互。
4. uv_default_loop()指向v8事件循环
5.uv的 uv_async_send 不保证每次都能投递到v8成功。
6.uv的 uv_queue_work 不保证线程安全,即使投递时多线程安全了,别忘记还有一个v8在取。
  否则会报“uv__has_active_reqs(loop), file src\win\threadpool.c, line 79 ”类似的错。我折腾了几天,傻X了。
7.最后通过uv_idle_init完成了事件回调处理。
8.为了提高性能,使用了boost::pool内存池,这货分配成功以后,会在内存块最开始放了一个指针,指到下一个内存块,不知道啥意思。
  第一字节偏偏又是我的指针对像,搞的程序不停飞掉,锤子!。
9.uv_work_t 不能用结构体新封装再带上数据,可能是对齐原因,会错位。用户数据直接放data字段即可。但要注意上面那个地雷
10.std::queue做PC队列,狂push以后,内存自动增长不会下来,发个1千万多万请求就因为内存泄露过大 GameOver,后面增加调速功能,协调生产者和消费者关系解决。












欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1