我想在有和没有 JIT 的情况下在 v8 上运行一些测试来比较性能。我知道 JIT 会提高我的平均速度性能,但如果我想在移动平台上工作,我会得到一些更详细的实际测试结果。
我还没有找到如何像 Squirrelfish 上那样启用或禁用 JIT(参见 JavaScriptCore/wtf/Platform.h 中的 ENABLE_JIT)。
有人知道如何用 v8 做到这一点吗?
谢谢。
亚历山大
我想在有和没有 JIT 的情况下在 v8 上运行一些测试来比较性能。我知道 JIT 会提高我的平均速度性能,但如果我想在移动平台上工作,我会得到一些更详细的实际测试结果。
我还没有找到如何像 Squirrelfish 上那样启用或禁用 JIT(参见 JavaScriptCore/wtf/Platform.h 中的 ENABLE_JIT)。
有人知道如何用 v8 做到这一点吗?
谢谢。
亚历山大
对于那些可能感兴趣的人,我从 Søren Gjesse 在 v8-users google groups 上得到了以下答案。
您好,在 V8 中无法禁用动态生成的代码。与其他 JavaScript 引擎不同,V8 没有解释器模式——它总是生成原生代码。
一个例外是具有解释器和本机代码版本的 RegExp 引擎。编译时定义 V8_NATIVE_REGEXP 可以为 RegExp 处理生成本机代码。
问候, 索伦
在 32 位 little endian 平台上,您可以使用 ARM 模拟器进行构建。这是一个测试功能,性能会很糟糕,但它确实有效并且不涉及直接执行 JITed 代码。在 scons 或 test.py 命令行上使用 --simulator=arm 选项。