System.gc будет работать в Android (Andengine) - PullRequest
0 голосов
/ 17 декабря 2011

Я разрабатываю игру, используя андегин.В игре J2me при выходе я сделал все объекты равными нулю

, т.е.как сделать как ноль, при выходе appliaction?

Ответы [ 3 ]

5 голосов
/ 17 декабря 2011

Я думаю, вам не следует звонить System.gc() явно. Android OS позаботится об этом.

«Звонить по номеру System.gc() из вашего приложения - это все равно, что подключать электричество из вашего дома, чтобы зажечь огни всего общества»

Я имею в виду, что это замедляет ваше приложение, чтобы очистить все мусор системы .......

N_JOY.

2 голосов
/ 17 декабря 2011

Сборка мусора Java должна позаботиться об этом. Вам не нужно этого делать.

Однако я бы закрыл открытые соединения, дескрипторы файлов и т. Д.

System.gc () - это просто подсказка JVM, что предлагается сборка мусора, однако Java запускает ее по собственному желанию.

0 голосов
/ 17 декабря 2011

В Android при наличии сборщика мусора никогда не рекомендуется вручную вызывать GC. GC организован вокруг эвристических алгоритмов, которые работают лучше всего, если оставить их на своих устройствах. Вызов GC вручную часто снижает производительность.

Иногда в некоторых относительно редких ситуациях можно обнаружить, что конкретный GC делает это неправильно, и ручной вызов GC может затем улучшить ситуацию с точки зрения производительности. Это потому, что на самом деле невозможно реализовать «идеальный» GC, который будет оптимально управлять памятью во всех случаях. Такие ситуации трудно предсказать и зависят от многих тонких деталей реализации. «Хорошая практика» - позволить GC работать самостоятельно; Исключением является ручной вызов в GC, который следует предусматривать только после надлежащего подтверждения фактической производительности.

Лучше потратить больше усилий, чтобы избежать ненужного создания объектов (например, создания объектов внутри циклов) ..

Посмотрите на вопрос Сборщик мусора в Android

...