Плагин Firebreath не получает shutdown() в IE8

У меня есть плагин/activex, созданный с помощью Firebreath (не знаю, какая версия, думаю, по крайней мере 1.6 - если кто-нибудь скажет мне, где искать, я обновлю здесь).

В IE8, но не в IE9 или Chrome, использование памяти увеличивается на несколько МБ при каждом обновлении страницы.

Я подозреваю, что это означает, что у меня есть круговая структура в javascript, которая также содержит ссылку на плагин. Или к элементу DOM, содержащему плагин? Мы не создаем ничего «большого» в javascript, поэтому мое внимание сосредоточено на (несколько МБ) DLL, которые составляют плагин. Это разумная идея? Что еще может вызвать это и/или как его отладить?


person Spike0xff    schedule 01.10.2012    source источник
comment
Хорошо, подожди минутку. Вы знаете, как, когда вы объясняете кому-то ошибку, примерно 2/3 пути вы проходите О! Подождите минуту...   -  person Spike0xff    schedule 02.10.2012
comment
Итак, если я добавлю javascript, чтобы удалить элемент DOM, содержащий плагин, и обнулить мою другую ссылку на него... тогда и только тогда IE8 вызовет мой метод shutdown() и уничтожит объект плагина. И тогда расползание памяти намного меньше, странным образом варьируется, но не более 100 КБ в среднем вместо 1-2 МБ.   -  person Spike0xff    schedule 02.10.2012
comment
Что касается того, где искать, это зависит от того, как вы его получили; если вы получили его из git, хэш коммита полезен. Если вы загрузили tarball или zip, в корне есть файл версии с этим хэшем коммита.   -  person taxilian    schedule 03.10.2012


Ответы (1)


Обычно это циклическая ссылка внутри вашего плагина; не в javascript, а в вашем коде С++. Однако может возникнуть ошибка, которая вызывает эту проблему. Попробуйте последнюю версию с github (главная ветка) и посмотрите, есть ли изменения.

person taxilian    schedule 02.10.2012
comment
Привет @taxilian - не вызовет ли круговая структура ту же проблему в других браузерах, а не только в IE8? - person Spike0xff; 16.10.2012