Javascript 垃圾收集通知
Javascript Garbage Collection notification
有没有办法在浏览器触发垃圾回收时得到通知?
(或完成收集垃圾)
在开发 webapp 的过程中,当垃圾收集后使用的堆达到某个值或比例时收到通知会非常方便。
简单回答:这取决于浏览器的实现(当前浏览器:否)
首先,内存管理不是 Java脚本的一部分,它是环境(例如浏览器)的一部分。由于 JavaScript 运行s 在浏览器创建的 VM 上,因此与其他语言一样,它是平台的任务而不是语言本身。与 Java 一样,JVM 决定何时进行 运行 GC,而不是 Java。
其次,关于通知部分,这取决于浏览器的实现。目前,还没有著名的浏览器提供这样的功能来通知用户何时触发 GC 以及何时结束。但是,可以在调试期间使用浏览器的分析器手动获取内存信息。
但是,在程序执行期间,可以在 window
对象中找到有关其内存的信息。
您可以随时使用 window.performance.memory
对象实现回调函数以获取有关内存使用情况的知识。
在 chrome 中,如果您 运行 chrome 使用 --enable-memory-info
开关,它会提供更新的信息。
对于 Chrome 可以在此处找到更多信息:http://blog.chromium.org/2011/05/chrome-developer-tools-put-javascript.html
对于非特权 javascript 没有这样的 API。但是,在开发软件时,您可以使用各种浏览器的 profiler/debugger 工具来观察代码的行为(包括垃圾回收)。
有没有办法在浏览器触发垃圾回收时得到通知? (或完成收集垃圾)
在开发 webapp 的过程中,当垃圾收集后使用的堆达到某个值或比例时收到通知会非常方便。
简单回答:这取决于浏览器的实现(当前浏览器:否)
首先,内存管理不是 Java脚本的一部分,它是环境(例如浏览器)的一部分。由于 JavaScript 运行s 在浏览器创建的 VM 上,因此与其他语言一样,它是平台的任务而不是语言本身。与 Java 一样,JVM 决定何时进行 运行 GC,而不是 Java。
其次,关于通知部分,这取决于浏览器的实现。目前,还没有著名的浏览器提供这样的功能来通知用户何时触发 GC 以及何时结束。但是,可以在调试期间使用浏览器的分析器手动获取内存信息。
但是,在程序执行期间,可以在 window
对象中找到有关其内存的信息。
您可以随时使用 window.performance.memory
对象实现回调函数以获取有关内存使用情况的知识。
在 chrome 中,如果您 运行 chrome 使用 --enable-memory-info
开关,它会提供更新的信息。
对于 Chrome 可以在此处找到更多信息:http://blog.chromium.org/2011/05/chrome-developer-tools-put-javascript.html
对于非特权 javascript 没有这样的 API。但是,在开发软件时,您可以使用各种浏览器的 profiler/debugger 工具来观察代码的行为(包括垃圾回收)。