擅长:python、mysql、java
<P>你使用的是第三方C++绑定。据我所知,v8的“js-land”和用“c++land”编写的v8绑定之间的交叉非常昂贵。如果您注意到,一些流行的<a href="https://github.com/christkv/node-mongodb-native" rel="noreferrer">database</a><a href="https://github.com/felixge/node-mysql" rel="noreferrer">bindings</a>for node完全是在JS中实现的(虽然,我肯定,部分原因是人们不想编译东西,但也有可能非常快)。</p>
<P>如果我记得正确,当Ryan Dahl正在为节点编写缓冲对象时,他注意到,如果它们主要在JS中实现,而不是C++,则它们实际上要快得多。他最后把他必须写的东西写进了<a href="https://github.com/joyent/node/blob/master/src/node_buffer.cc" rel="noreferrer">C++</a>,其他的都写进了<a href="https://github.com/joyent/node/blob/master/lib/buffer.js" rel="noreferrer">pure javascript</a>。</p>
<p>所以,我猜这里的部分性能问题与特定模块是c++绑定有关。</p>
<p>基于第三方模块判断节点的性能并不是决定其速度或质量的好媒介。对节点的本机TCP接口进行基准测试会做得更好。</p>