BindingUtils.bindProperty use and Garbage Collection

I am currently working with a client doing performance profiling and adjustments for a medium sized application. After using the profiler in Flex Builder, a painful experience for me not having worked with such a animal, I found a area that was exhibiting a major memory leak. Well, maybe memory leak is not the correct term, a certain area of the application had a view stack that would add children to it. The user could then remove the children. This removal never released memory. In other words a removeChild() removed the child element, but since the child had some external references to it, this child was never garbage collected.

Now, a few hours digging in the memory profiler didn’t help me find where the nastiness was happening, more on that later maybe. Anyone out there care to shed some tips on this?

Recalling Jun Hieder’s presentation at 360|Flex Atlanta, I started digging into event listener additions, these guys can add a case of the nasties to the situation. That’s when I stumbled upon the use of BindingUtils.bindProperty. The basic approach was that a class A had a property bound to a property in class B using BindingUtils.bindProperty in a util class. This added a hard reference to A in this case, which would keep A from getting GC’d if need be.

This begs the question, why use this? The need here was to inject data into B from A. Probably better to say use A.property = B.property in A or a third party class. If you need it to change at runtime dynamically, have A dispatch a event that can be heard and reacted to, passing the data in the event along the way.

I have attached a sample application that displays the characteristics described above. Use the profiler in Flex Builder to see what happens after manually running a GC. You can grab it here BindingUtils Test

off to refactor!

peas

DK


45 Responses to “BindingUtils.bindProperty use and Garbage Collection”

  1. January 16th, 2009 | 3:11 pm

    Отличные новости, так держать, удачи в будущем.

  2. January 23rd, 2009 | 8:12 pm

    Стоит ли ждать обновления?.

  3. January 26th, 2009 | 4:58 am

    Как часто публикуете новости по данной тематике?.

  4. January 29th, 2009 | 12:03 am

    Супер. Спасибо, так давно искал этот материал. Ну просто респектище автору. Никогда не забуду теперь

  5. February 4th, 2009 | 7:16 pm

    Я тоже в блоге про такое пишу, только на тему кино

  6. February 17th, 2009 | 11:27 am

    Сайт достоин уважения. Это лучшее что я видел. Риспект

  7. February 20th, 2009 | 12:37 pm

    Thank you!

  8. February 22nd, 2009 | 7:26 am

    http://www.cubicleman.com самый лучший! ребят так держать :)

  9. February 23rd, 2009 | 1:10 pm

    Достаточно хорошая тема. ИМХО лучшее что я видел

  10. February 23rd, 2009 | 10:26 pm

    Афтору риспект. Пости даьше. Рульно получилось

  11. February 24th, 2009 | 7:28 am

    Блин после праздника, голова болит ппц, даже читать не могу что то :(

  12. February 25th, 2009 | 12:12 am

    Ох порадовали так порадовали. Это вам тут не шутки

  13. February 25th, 2009 | 12:41 am

    Уххх Да блог что надо. Посмотрю еще раз на досуге

  14. February 28th, 2009 | 2:27 pm

    А вобше хотелось бы видеть обновления почаше, а так ребят жедаю вам успеха в продвижении вашего блога. Успехов :)

  15. March 2nd, 2009 | 12:30 pm

    По моему у Вас украли эту статью и поместили на другом сайте. Я её уже видела.

  16. March 28th, 2009 | 2:51 am

    I see only bad text

  17. March 29th, 2009 | 8:51 am

    Спасибо огромное. Почитал и понравилось. Картинок бы ещё

  18. April 15th, 2009 | 10:50 pm

    Great Things!

  19. April 20th, 2009 | 1:48 am

    Bonnaroo to be televised

  20. April 20th, 2009 | 6:59 am

    Как установить LAMP WordPress на Ubuntu

  21. May 10th, 2009 | 10:59 am

    Все отлично, но вот у любого блога постоянная проблема с трансляцией rss! Хотелось бы и с коментами получать. Но нет. Это вообще решаемо? :)

  22. May 13th, 2009 | 11:13 am

    Хотя я уже и читал подобные посты, но не дает мне это покоя. Спасибо за пост.

  23. May 13th, 2009 | 1:02 pm

    Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше :)

  24. May 14th, 2009 | 5:05 pm

    Ваш пост навел меня на думки *ушел много думать* …

  25. May 14th, 2009 | 7:01 pm

    Понравилась статья. А будет ли продолжение ?

  26. May 15th, 2009 | 2:56 am

    Опутеть как интересно, во задвигаете. Класс!

  27. May 15th, 2009 | 3:59 am

    Хотя я уже и читал подобные посты, но не дает мне это покоя. Спасибо за пост.

  28. May 15th, 2009 | 10:35 am

    Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше :)

  29. May 17th, 2009 | 4:24 am

    Добрался до вашего блога программой allsubmitter

  30. May 19th, 2009 | 11:41 am

    Как в той рекламе, хочется сказать:”Как я Вас понимаю” :)

  31. May 25th, 2009 | 4:18 am

    Понравилась статья. А будет ли продолжение ?

  32. May 25th, 2009 | 5:19 am

    Добавил в свои закладки. Теперь буду вас намного почаще читать!

  33. May 25th, 2009 | 8:32 am

    Хорошо пишете. Надеюсь, когда-нибудь увижу нечто подобное и на своем блоге…

  34. May 25th, 2009 | 10:14 am

    Спасибо огромное. Почитал и понравилось. Картинок бы ещё.

  35. May 26th, 2009 | 9:07 pm

    Poluchila pis’mo. Ja soglasna na obmen stat’jami.=)

  36. May 26th, 2009 | 9:57 pm

    Опутеть как интересно, во задвигаете. Класс!=)

  37. May 28th, 2009 | 5:00 am

    Да уж. Спасибо, что заставили задуматься :)

  38. May 31st, 2009 | 10:49 am

    Что касается самой темы, то мне кажется что ее актаульность будет известна только через некоторое время.

  39. June 5th, 2009 | 7:36 pm

    Ваш пост навел меня на думки *ушел много думать* …

  40. June 6th, 2009 | 10:05 pm

    Вот решил вам немного помочь и послал этот пост в социальные закладки. Очень надеюсь ваш рейтинг возрастет.

  41. June 7th, 2009 | 7:10 am

    Очень интересно. Но чего-то не хватает. Может быть, стоит добавить каких-нибудь картинок или фото?

  42. June 10th, 2009 | 4:19 pm

    thanks for the article!
    more upgraded

  43. June 19th, 2009 | 1:48 pm

    Опять-таки достаточно побочная проблема. Вряд ли она кому-то мешает, мне например как то все равно :)

  44. June 26th, 2009 | 9:35 pm

    Хороший блог :) Люблю почитывать каждый вечер (ну и в другое время тоже :)).

  45. June 30th, 2009 | 3:46 am

    Ваш пост навел меня на думки *ушел много думать* :

Leave a reply