Я использую динамический импорт для загрузки скриптов, написанных пользователем в браузере. Я начинаю с помещения содержимого скрипта в большой двоичный объект, затем использую динамический import()
для загрузки скрипта в качестве модуля. Со временем я ожидаю, что эти сценарии изменятся и будут уничтожены, и, таким образом, соответствующие модули будут собраны мусором. Однако на основе профилирования памяти в Chrome этого не происходит.
Причина, по-видимому, связана с тем, что называется ModuleMap
. Вот снимок экрана из снимка памяти, который я сделал после того, как все сценарии перестали использоваться.
Как вы можете видеть, объект Window предоставляет путь к этим модулям. Пока это так, я уверен, что в конечном итоге не хватит памяти, так как эти модули создаются каждый раз, когда пользователь редактирует свой сценарий.
Я хотел бы знать, есть ли способ заставить Chrome (и другие браузеры) выгружать эти модули, когда они больше не используются.