Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Кстати, из личного опыта 31.08.04 10:55 Число просмотров: 2682
Автор: amirul <Serge> Статус: The Elderman
|
Сам никогда не пользовался GC (разве что неявно, во всяких Maple-ах и пр.), но один знакомый писал БОЛЬШОЙ скрипт на php. И прикручивал его к апачу. Апач запускал скрипт, но процесс не прибивал (как то он там кешировал запросы и реюзил процессы). Так вот у не самого слабого сервака заканчивалась память после 500 запросов (не обязательно одновременных). То есть DoS можно было устроить со слабенького диалапа в зимбабве. Прикол в том, что этот мегалик получался из-за сборщика мусора.
Мое личное мнение: лучше сказать программисту что после new ВСЕГДА нужно ставить delete, чем сказать в этом случае можешь оставить переменную - ее освободят, в этом надо подсказать, что ее надо освободить ($var = undef), здесь надо прямо вызвать деструктор, а потом подсказать и прочая, есть еще перекрестные ссылки и т.д.. Такая сборка отсекается бритвенным станком оккама (с тройным лезвием).
Кроме того, средств для диагностирования таких утечек я что-то не видел (это не утечка, просто GC считает, что эта память все еще нужна и попробуй понять какая именно ссылка ее держит). Потому как мало формализованы случаи когда GC справится сам, а когда ему нужна помощь и какая. В случае же new-delete формализм полнейший - любому new должен соответсвовать delete. Если это не так - большинство сред прямо об этом заявят.
|
|
|