簡體   English   中英

從Node.js中釋放所需的模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM