为什么Node.js heapdump显示已编译的代码?

时间:2014-12-23 21:26:29

标签: node.js memory-leaks v8

您第一次调查Node.js应用程序中的内存泄漏。通过Chrome Profiler中的heapdump快照读取,我看到(编译代码)有一个条目,请参阅附件。我认为Javascript不是编译的,与Java不同。有人可以点灯吗?

enter image description here

此外,与JProfiler和编写代码的方式(没有正式的构造函数)不同,很难找到泄漏,到目前为止,快照提供的信息并不是很有用,我已经搜索了一段时间,到目前为止没有太多关于阅读这些快照的有用信息,有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

(compiled code)确实是指由V8的JIT编译器生成的代码。今天浏览器使用的所有JavaScript VM都使用分层自适应JIT编译 - 否则无法实现良好的性能。事实上,V8根本没有翻译。

答案 1 :(得分:-2)

它指的是用C ++实现的宿主对象,例如DOM或JS内置函数。