【发布时间】:2023-04-03 07:03:02
【问题描述】:
我正在尝试写一篇关于我用 javascript 开发和编码的算法的科学文章。我希望将旧的慢版本与新的快速版本进行各种输入的比较,并能够报告一些指标,例如对 Math.log 的调用次数、对 Math.exp 的调用次数、乘法运算的次数,除法运算次数、加法次数、减法次数等
我意识到 javascript 引擎的 JIT 编译器可以做一些优化来稍微改变这些数字,但我并不真正关心每个指标的确切细节,我只是在比较苹果和苹果两者算法。
是否有任何工具或方法可以在 javascript 中自动计算这些操作?是否有任何 javascript 引擎可以生成某种类型的中间字节码,从而允许自动计算这些操作?如果不是javascript,那么c++呢?
【问题讨论】:
-
Chrome 可能会在其个人资料结果中显示对
Math.x的调用次数。 -
Javascript 允许您重新定义内置方法。例如 ->
var oLog = Math.log; Math.log = (x) => { console.log('log'); return oLog(x); }将控制台输出log并返回原始日志。所以如果你没有太多想要分析的函数,这个简单的方法可能会做。
标签: javascript profiling time-complexity