如何在JavaScript引擎中测量CPU缓存和预取未命中?

时间:2017-06-20 19:19:50

标签: javascript v8 cpu-cache javascriptcore chakracore

我想要一种命令行方式来评估低级贡献者,以降低Node.js应用程序的每瓦性能。即,JIT生成的本机代码的L1,L2和预取高速缓存未命中,以及JavaScript运行时本身的JIT / GC / interpteter。

JavaScriptCore,v8和ChakraCore都提供用于运行基准测试的命令行REPL。我可以在基于Intel,AMD和ARMv6的硬件上运行哪些分析器以合理的准确度收集这些统计信息?我更愿意在至少两个操作系统中实现此目的:Windows,Mac和/或Linux。

2 个答案:

答案 0 :(得分:3)

V8和Linux perf工具相互支持,请参阅the documentation。如果您有一个非常新的系统(IIRC内核> = 4.4和perf> = 4.10),您可以跳过编译自己的内核和perf的步骤。

答案 1 :(得分:0)

您可以使用Valgrind。引用他们的FAQ,“Valgrind可以处理动态生成的代码,只要生成的代码不会被其他生成的代码覆盖”。

它也支持各种平台,包括X86 / Linux,X86 / Darwin等