[java] Почему GC не подчищает?
System.gc;
это всего лишь рекомендация, а не вызов.
это всего лишь рекомендация, а не вызов.а можно как-нибудь принудительно все это подчистить?
а можно как-нибудь принудительно все это подчистить?
нельзя
Не знаю, как в жаве, в шарпе gc.Collect вполне себе вызов, но вот практически наверняка мемори менеджер и не подумает отдать освобождённую память обратно системе. А зачем? Я даже не уверен, что такая возможность на всех платформах присутствует.
но вот практически наверняка мемори менеджер и не подумает отдать освобождённую память обратно системе.Ну так и есть.
Надо не смотреть на использование памяти в Task Manager-е после очистки, а попробовать создать ещё чего-нибудь на 15М и посмотреть, будет в Task Manager-е написано про 22М или про 37М.
Кстати не факт.Факт. Популярный вопрос на собеседованиях среди джавистов. По текущим спецификациям _заставить_ гц сделать цикл нельзя. Можно лишь "посоветовать".
Не знаю, как в жаве, в шарпе gc.Collect вполне себе вызов, но вот практически наверняка мемори менеджер и не подумает отдать освобождённую память обратно системе. А зачем? Я даже не уверен, что такая возможность на всех платформах присутствует.Симметрично и в джаве. Если в куче освободилось место, то совсем не факт, что оно будет отдано обратно системе.
Автору треда: мемеори лики по таск манагеру не просечешь, юзать надо профилирующие инструменты.
мемеори лики по таск манагеру не просечешь, юзать надо профилирующие инструменты.Тогда вопрос, на какие инструменты лучше посмотреть?
Тогда вопрос, на какие инструменты лучше посмотреть?Посмотреть сначала на плугины/аддоны к своей любимой среде.
В идее есть JProfiler, правда платный, еще пара бесплатных, но победнее функционалом.
Насчет эклипса не знаю - погугли.
Если это все не нравится - хорошый профайлер есть под НетБинс (http://profiler.netbeans.org/).
JProfiler умеет создавать кнопку для своего вызова в eclipse.
Оставить комментарий
chirrsen
Если оставить один пустой цикл в теле main, то Task Manager показывает, что жрется ~7 000k, а если оставить, как в примере то ~22 000k.Почему сборщик мусора не подчищает мусор?