Flash-платформа

индекс
119,75

Internet Explorer + Flash Player + IE Skype Add-on = Memory Leak

В течении нескольких лет мы (anychart.com) периодически получаем баг-репорты, суть которых сводится к тому, что память в Internet Explorer 6/7 (и Flash Player 9/10 в нем) ужасно течет при рефреше страницы. Долго и упорно мы пытались найти решение этой проблемы, теряли клиентов, не спали ночами. Со временем IE + Flash Player стали моим ночным кошмаром. Мы материли и Adobe и Microsoft, но никак не могли подумать, что они тут не при чем.
Сегодня случилось чудо. При очередном тесте на двух одинаковых машинах появилась разница — на одной утечка памяти была, на другой нет. Долгий и упорный brainstorming нашел корень всех зол. Им оказался… Internet Explorer Skype add-on!

-----
Update:
Со мной связались из скайпа. Добовление к посту
Peter Kalmström, PM Skype Toolbars:
1. This is how you disable only the add-on www.screencast.com/t/BrlWxmckTd3. We don't want users removing Skype
2. We are working closely with Skype to get a fix out asap — watch this space!
-----
One more update:
Пост на английском в нашем блоге: www.anychart.com/blog/2009/07/27/anychart-has-discovered-bug-in-skype-skype-promises-to-fix-it-asap-2/

Далее были проведены эксперименты, которые показали, что при установленном Skype add-on-е память растет при каждом рефреше/закрытии страницы с ЛЮБОЙ! swf-кой.

Итак, подтверждение диагноза.



Что мы имеем


Окружение

Чистая Vista SP1 x86 eng, запущеная в VMWare workstation.
Internet Explorer 7.0.6001.18000
Flash Player WIN 10,0,22,87 non-debug, установленный как ActiveX через заход на сайт адоба ( get.adobe.com/flashplayer ). Версия проверялась здесь: kb2.adobe.com/cps/155/tn_15507.html

Пациент

Пустой SWF файл, собраный под 9-й Flash Player. Его код:
package {
    import flash.display.Sprite;

        class SimpleSWF extends Sprite {
            public function SimpleSWF() {
        }
    }
}

Тестовая страница со встроеной с помощью swfobject 2.2 swf-кой:
anychart.com/batsuev/flash-memory-leak/index.html

Тестовая страница со встроеной ручками swf-кой
anychart.com/batsuev/flash-memory-leak/index1.html

Пустая страница
anychart.com/batsuev/flash-memory-leak/empty.html

Операция


Как проводились измерения: На vmware была установлена Vista SP1 x86 eng, далее был установлен последний Flash Player.
IE открывался с помощью командной строки:

iexplore «тут адрес страницы»

Далее в нем упорно давился F5 с выжиданием 15 секунд между апдейтами.

Итак, сравнение пустой страницы и её 20-и рефрешей с и без skype add-on-а:



Особого роста использования памяти в принципе нет и ничего страшного не происходит.

Теперь откроем страницу со встроеной через <object> Flash-кой:



~2 мегабайта на каждый рефреш страницы. Закрытие таба не помогает, помогает только перезапуск IE.

Теперь то же самое, но будем использовать swfobject для встраивания swf:



Получим примерно те же 2 мегабайта прироста на рефреш.

(Немного пиара: графики нарисованы anychart-ом через Save as image)

Выводы


При установленном Skype плагине Flash Player ActiveX не очищает за собой память.
При пустой swf-ке рост составляет 2 мегабайта на каждый рефреш/покидание страницы.

Паника


Убеждаемся, что skype add-on включен, открываем youtube, смотрим на память. У меня получилось 28.8 мегабайта. Просматриваем небольшой ролик длительностью 1 минуту. Память становится ~53 мегабайта. Переходим на about:blank — память чуть чуть уменьшается до 50 мегабайт.

UPDATE: Internet Explorer 8 ведет себя так же
+66
24 июля 2009, 12:40
5

комментарии (37)

+7
DezmASter #
Прекрасно, Саш, прекрасно. Надеюсь, что ваши клиенты к вам вернутся :)
+1
JTOne #
а как дела обстоят с фф?
+1
AlDev #
Все хорошо. Там память просто прыгает.
+2
antirek #
жуть какая!
+1
dazran #
а в skype не писали по данной проблеме?
+2
AlDev #
Как раз в процессе
0
sse #
Так это я зря, видать, TankiOnline доставал на тему отжора памяти. Надо будет их уведомить.
Спасибо вам большое за информацию.
+1
AlDev #
Вы даже не можете себе представить нашу истерию, когда мы это нашли :) До сих пор улыбка до ушей у всех
0
ooprizrakoo #
А вы играете в Танки через ИЕ?
0
sse #
Играл, когда бета была — интересно было с технической точки зрения. Счас уже бросил, бо они открылись
+1
dimants #
побежал отключать Skype add-on :)
+1
yorick_kiev_ua #
Skype add-on вообще какаой-то рагульный… У меня он валил ie(именно валил, т.е. «program not responding»), запущенный в дебаге студии(VS 2005). Вылечилось только отключением.
НЛО прилетело и опубликовало эту надпись здесь
0
Nascosto #
уберите картинку вниз, что ли, что б не светилась… А то новость то не для всех, а тусуется на главной занимая целую страницу…
0
AlDev #
Ок, done
0
FeLaikS #
Оффтопик:
Посоветуйте, пжлст, нелорогую прогу для создания красивых графиков и диаграмм. Anychart, конечно, строит красиво, но я не могу себе её позволить за такие деньги.
0
MegafonUral #
Open Flash Chart
teethgrinder.co.uk/open-flash-chart-2/
0
AlDev #
Смотря какие графики нужны и для чего
–14
DibrovLALALA #
ИЕ олень)
+3
AlDev #
Помоему виноват не IE, а Skype.
–14
DibrovLALALA #
а по моему ИЕ олень
НЛО прилетело и опубликовало эту надпись здесь
–4
DibrovLALALA #
а по-моему вы сейчас наполучаете плюсов)
+3
hannimed #
Не зря всегда опасаюсь ставить Addon'ы к браузером от Skype и Yahoo…
А также Google. Старая привычка экономить трафик :)
НЛО прилетело и опубликовало эту надпись здесь
0
corp #
смущает тут не сама проблема, а «архитектура» ie, допускающая такие конфликты
НЛО прилетело и опубликовало эту надпись здесь
+1
w0lf #
IE Developer Toolbar и DebugBar зря игнорируете. Хотя может они не нужны по работе, тогда ой.
0
Meriados #
*полез отыскивать DebugBar, а то юзаю HTTPWatch, а отлаживаться бегаю в лису))
+2
acxe12 #
«Hi everyone!
Thank you very much for your feedback on the Skype add-on for IE. We are currently researching your data and will get back to you with more information and hopefully a fix shortly. If the add-on is causing you trouble, please view this demonstration on how to remove or disable it:
www.screencast.com/t/BrlWxmckTd3

Peter Kalmström, PM Skype Toolbars»

комментарий от пм-а по тулбарам
пожалуйста, оставляйте ваши вопросы или комментарии
+2
AlDev #
AFAIK наш support team уже написал в саппорт скайпа. Ждем что скажут, дабы осчастливить наших кастомеров :)
+1
Troppus #
Молодцы! Прекрасное и наглядное объяснение проблемы! Спасибо!
+1
AlDev #
Пардон, не посмотрел ваш профиль :)
+1
AlDev #
Большое спасибо. Связался с PM-ом напрямую. Надеюсь, что проблема скоро исчезнет и все будут довольны :)
0
AlDev #
Он просит приглашения на хабр для участия в дискуссии :)
0
egorinsk #
Добавлю еще от себя: этот долбаный скайп-аддон превращает в HTML-документе телефонные номера в ссылки, и хрен бы с ним так он зараза и в editablecontent-докуменгтах (в визивиг-редакторе то есть) это делает, в результате на сайте оказывается скайповский кривой HTML.
0
sud3n #
Mда… очень упорный brainstorming нужен был что бы понять это. :D
Skype Add-on надо отменять всегда и везде. FF он вообще заставляет отжирать в 5-8 раз больше памяти.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.