擅长:python、mysql、java
<p>建立这样一个人为的基准并得到足够有用的结果来对速度进行全面的说明是不可能的;基准测试是非常复杂的,在某些情况下,运行时甚至可以完全将基准的一部分分解出来,因为它们意识到有一种更快的方法来完成你告诉它你想做的事情。</p>
<p>但是,归根结底,您不是在比较Python和node.js,而是在比较它们的解释器:CPython和V8。Python和Javascript有类似的语言特性,它们会影响性能(垃圾收集、动态类型,甚至我认为是整数的堆分配?)所以当你运行这个基准测试时,它实际上是一个解释程序之间的交火。</p>
<p>在这种情况下,尽管像这样的基准通常没有价值,但问题“为什么V8在这种情况下比CPython快”确实有一个答案:<strong>这是因为JIT编译器。</p>
<p>因此,如果您想直接比较,可以尝试在PyPy上运行您的Python代码,PyPy是一个带有JIT的Python解释器。或者尝试在没有JIT的运行时运行Javascript代码。然而,在这一点上,您可能会发现基准测试太难,太复杂,无法使用这样的脚本来判断哪种语言更快。</p>