找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3157|回复: 0
打印 上一主题 下一主题
收起左侧

nodejs踩坑记

[复制链接]
跳转到指定楼层
楼主
ID:127229 发表于 2016-6-19 01:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近想把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,后面增加调速功能,协调生产者和消费者关系解决。







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表