ABCЮK, не свободной памяти, а свободного heap! Который выделяется на каждую прогу отдельно и никак не связан с heap другой проги. И к тому же она никак не может учесть тот факт, что heap может расти, и сказать, когда и насколько это произойдет.
Malcolm, у меня такая ситуация была. Мод ОМ показал 0%(изза много открытых окон) свободного хип, и завис намертво. Через актив меню зашёл в прогу АвтоХип, выделил память, и мод стал без проблем работать с этими окнами, добавилось 15% хип. Так что тел не всегда успевает выделять память, а это очень часто бывает. И ещё, отдельно для каждой проги хип не выделяется, а для всех запущенных сразу. На 5колене точно. Это ведь легко проверить, во всех запущенных общий и свободный хип везде одинаков, после выделения.
Sklif, а как ты думаешь, что сделала прога, когда ты выьрал выделение памяти? Она заняла еще! Если там действительно было 0%, тогда тебе просто выдало бы OutOfMemoryError, Heap никогда не заполняется на все 100%, если можно его увеличить.
Malcolm, правильно, эта надпись и выскакавет в моде через пару минут после появления 0%. А тел не успевает, или не может выделить по какойто причине. Конечно она занимает память при выделении, но занимание всегда меньше чистого выделения, вот поэтому свободный хип и увеличивается. Вобщем принудительное выделение, на практике, небесполезно.
ИМХО, эта прога -тест для проверки/демонстрации эффективности работы самоочистки ява-машины, она сама заполняет хип, gc()- его очистка. На SE самоочистка происходит постоянно, при заполнении ~70кб, на Sagem её нет, только принудительная. И не раз писали, что на 5 колене каждая запущенная прога работает как бы в своем "окне" (или своей куче) выделенного хипа, так что другой проге выделить хип из этой проги невозможно
Sklif, чтобы недалеко ходить, перечитай посты Malcolm"а (он в этом все же лучше разбирается) в этой теме, тему про RAM Booster (особенно посты РЫСЯ о нем на s-c) и подобные
21 мая 2008 в 07:08