[英]Release required module from Node.js
如何在運行時釋放Node.js模塊以節省內存或提高整體性能。
我的應用程序在運行時動態地在Node.js中加載模塊,但不卸載任何模塊。 我正在尋找這樣的功能。 在代碼加載模塊后更新已更改的模塊; 並卸載可能無法進一步使用的模塊。
任何見解?
謝謝。
聽起來你正在創建某種插件系統。 我想看看Node VM: http : //nodejs.org/docs/latest/api/vm.html
它允許您在沙箱中加載和運行代碼,這意味着當它完成所有內部分配時,應該再次釋放它。
它被標記為不穩定,但這並不意味着它不起作用。 這意味着API可能會在未來的Node版本中發生變化。
例如,基於節點的smtp服務器Haraka使用VM模塊(重新)加載插件。
要卸載腳本,您可以執行以下操作:
delete require.cache['/your/script/absolute/path'] // delete the cache
var yourModule = require('/your/script/absolute/path') // load the module again
因此,如果您有插件模塊,您可以觀察這些文件的更改,然后動態卸載(刪除緩存),然后再次需要該腳本。
但請確保您沒有泄漏內存,您可以將更改的模塊重新分配給舊變量。 這是一個方便的工具,您可以檢查內存: node-memwatch 。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.