![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Дорогие друзья. Кто занимался этой проблемой (сабж), плиз, поделитесь - какие нашли места утечки, вне зависимости - ваш это был неочевидный косяк или текут встроенные классы.
Ужасно много времени занимает эта проблема. А сумашедший garbage collector поднимает сложность анализа крупного прилодения до дьявольских высот. Для упрощения взаимопонимания. Выключил 90% аппликухи, осталось несколько классов. ASProfiler показывает, что нет никаких периодических вызовов. Однако мемори ликс - есть. Давайте делиться опытом! |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Ну что же. Три дня мучений и пару штук я нашел.
Про netConnection наверное все знают? Ну кто не знает: var a:NetConnection = ...;
a.connect(...);
a.call('...', a); a.onResult = function(infoObj:Object) {};
Но это простой баг, я его давно нашел. А самый крутой - вот: Вот эта конструкция не дает утечек памяти А вот эта - дает! И причем дает дохрена. Аналогичным образом, эта конструкция тоже течет ну и эта тоже... понятно. Чтобы победить утечки в этих конструкциях, нужно, чтобы в периодически вызываемой функции обязательно происходили хоть какие-нибудь вычисления. Хотя бы и после return (!!!). Например: будет течь, а не будет! (вот пипец) Дальше - не менее круто. Периодические функции, вызываемые через Delegate.create будут течь в любом случае!! Привет всем любителям делегирования от компании macromedia. Также обнаружил что обращение к MovClip.filters внутри периодически вызываемой функции тоже течет. Мои муки с memory leaks в самом разгаре, вполне возможно что список дополнится -) Последний раз редактировалось MyXus; 08.06.2007 в 14:32. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Круто. Буду знать.
|
|
|||||
|
listener
|
Действительно, круто! Без шуток. Но до конца я не понимаю, в связи с чем такое море проблем возникло. Ты решил провести своего рода "глобальный тест" на утечки что ли?
Или это все было в одном приложении, которое вызывало memory leaks? |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Я пишу desktop application, если не убирать такого рода утечки, аппликуха отжирает за ночь 300 метров и виснет.
кстати, я нашел пример когда Delegate.create не течет.. но пока мне могу разобраться почему -) Слишком большая аппликуха. UPD: 2alexcon314: Кстати, я знаю ты пользуешся цинком? Я кое что тестировал на цинке, и ни один из сэмплов не тек -)) Умный цинк ловит утечки флеш плеера! Но я, к сож, не могу пользоваться цинком.
__________________
#define true false //счастливой отладки, друзья Последний раз редактировалось MyXus; 08.06.2007 в 17:16. |
|
|||||
|
listener
|
Мм-дааа... тут действительно задумаешься. Я не замечал в цинке таких проколов, но теперь буду внимательнее. У меня после беглого теста возникло предположение, что lekas начинается если идут переходы по кадрам. В одном кадре с этими примерами ничего необыкновенного не происходит. И в цинке - leak происходит непонятными рывками и проц на грани падения. Когда в одном кадре - все спокойно.
не пытал только Net.connection. И не оставлял на ночь. У меня сразу все начинается, если начинается вообще. А ты как тестишь? Последний раз редактировалось alexcon314; 08.06.2007 в 20:06. |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Короче.
1. Последние исследования показали что флеш плеер течет, и будет течь неостановимо (АС2! АС3 почти не течет). Так что все, кто занимается этой проблемой - забейте. 2. Zinc - подбирает память за ФП, так что Zinc - решение для АС2 юзеров. Для меня - проблема в том что Zinc адски тормозит в транспарент моде. 3. Для писателей АС2-аппликух для работы в браузере - убойтесь ФП. И переходите на АС3.
__________________
#define true false //счастливой отладки, друзья Последний раз редактировалось iNils; 09.06.2007 в 17:55. |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Дорогие друзья. Хочу принести извинения за некорректные сведения.
Еще несколько (сотен) тестов совершенно изменили картину. Не вдаваясь в подробности: новые результаты: 1. Единственный проверенный источник утечек, из тех, что я упоминал - net_connection_instance.onResult(..); 2. Флюктуации с памятью при работе со всеми остальными приведенными примерами исправляются garbage collector'ом ФП. Через некоторое время, при суммарных утечках не менее ~2МБ (вот и причина моих преждевременных выводов, - я не дожидался этого момента). 3. MDM Zinc не стал течь на каких тестах, из тех что я ему давал. Впрочем, я нисколько не уверен что и он не имеет своих дыр. PS. Господа модеры. Возможно, во избежание смущения, умов этот тред надо удалить?
__________________
#define true false //счастливой отладки, друзья |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Пусть будет
![]() |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 78
|
var str:String = ""; try { for (var i:int = 0; i < list.length; i++) { str += "<font color='#521017'>[" + list[i].Level + "]</span> <a href='event:" + list[i].Username + "'>" + list[i].UsernameHtml(true) +"</a>" + " (<b><a href='" + m_hostName + list[i].PlayerLink + "' class='style2' target='_blank'>i</a></b>)" + "<br>"; } } catch(_e:Error) { } m_comp.TextfieldUsersList.htmlText = str; m_comp.ScrollBar2.update(); m_comp.ScrollBar2.scrollPosition = m_chat_s.ScrollBar2.scrollPosition; str = null; если закомментировать try catch то нет утечки. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|