Насколько и где уместно использовать System.gc()?
Здравствуйте.
Насколько и где уместно использовать System.gc()?
При начале работы программа потребляет где-то 8-10 мб, чуть после количество потребляемой памяти вырастает до 100, 200-250 мб, после чего освобождается.
По таймеру провожу System.gc() при росте объема памяти до 100+ мб, после чего объем потребления сокращается опять до 8-10 мб. Нормально-ли так делать или все-таки лучше заняться внутренней оптимизацией (правда, есть сомнения, что это сильно сократит объем)?
Просто присвоение уже не нужному объекту null не меняет картину происходящего и вроде, и так программа уже слегка оптимизирована, конечно, не до идеала, но все же, поэтому и пользуюсь System.gc(), чтобы не пугать пользователей.
UPD
Таким образом получаю объем потребления, может быть, это не самый лучший способ.
private Long getMemoryTotal(){
long allocatedMemory = (Runtime.getRuntime().totalMemory()- Runtime.getRuntime().freeMemory());
long resultkb = allocatedMemory / 1024;
long resultmb = resultkb / 1024;
return resultmb;
}