我有 herd V8 编译“热代码”优化 JavaScript 性能。有什么方法可以告诉我哪些代码已编译,哪些代码未编译?
最佳答案
首先,您需要在 Chrome Javascript 控制台的“配置文件”选项卡中分析您的代码,以了解哪些内容值得测试。如果一个函数、模块或您尝试测试的任何内容不占用太多时间,那么它就不值得您付出努力。
V8 的 JIT 将对您的代码做出假设,如果这些假设成立,则代码将快如闪电。否则,V8 将在程序继续运行时对该代码进行去优化。这是我自己测试的一个例子。在下面的代码中,我正在测试我编写的合并排序函数。
console.time('order');
msort(ob);
console.timeEnd('order');
第一次运行 60000 个随机数在 8 毫秒后完成,接下来的所有运行都会跳到 16 毫秒左右。基本上,JIT 对我写的东西有问题,所以它重新编译了我的代码。我看到完全相反的情况发生,代码跳转到两倍的速度。如果你想看一下,这不是确切的版本,而是使用 es6 模块语法的版本。 https://github.com/jamesrhaley/es2015-babel-gulp-jasmine/blob/master/src/js/mergeSort/mergeSort.js
此外,如果您的代码不值得优化,那么它一开始就不会被优化。这里有几个链接可以帮助我提高编写 js 的速度。
关于javascript - 运行 V8 时如何知道已编译哪些 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34833179/