![]() |
2TanaTiX
Обнаруживается стандартными средствами: трейсами, дебаггером, профайлером. Просто если выставлена мягкая ссылка - ты нажмешь run gc в профайлере и не увидишь что от чего-то не отписался. А использовать или не использовать мягкие ссылки: 1. Eсть ситуации, в которых отследить время, в которое надо удалить объект из словаря или отписать от события определить очень тяжело (в сущности надо будет релизовать маленкий GC на базе подсчета ссылок). Тут выбора и нет. Например видел ресурсный движок, который не заморачивался с выгрузкой ресурсов, а просто хранил все в Dictionary с мягкими ссылками (да, доверия к такой системе нет - а вдруг он через 1 секунду удалит, а нам ресурс опять потребовался - и опять грузи, т.е. нельзя настроить чтобы удалял через 30 секунд, например, но работала). Еще где-то в ASwing в каком-то менеджере компоненты пихаются в Dictionary со слабыми сылками. Там можно было от этого избавиться, но пришлось бы использовать совсем другой подход, т.е. можно считать у них не было выбора. 2. Большинство ситуаций не такие, в них ясно, когда отписывать объект. И тут просто 2 полюса: - отписаться, но перестраховаться слабыми ссылками - отписаться не перестраховываясь - если уж что-то идет не так - то это надо видеть Просто тяготею больше ко 2-му полюсу и все. 3. Не отписываться и везде слабых ссылок понавтыкать. Чревато нагрузкой на проц. |
Цитата:
1) Как-то не было у меня таких ситуаций и таких структур проектов... 2) У нас разные полюса :) Соглашусь, что оба имеют право на жизнь. 3) Это даже не вариант. |
| Часовой пояс GMT +4, время: 04:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.