Хе-хе-хе... Как заставить Java жрать меньше памяти? :)

 
+
-
edit
 

Balancer

администратор
★★★★☆
Собственно, в этой строче top'а всё сказано.


Реально в JVM занято в этот момент 190Мб памяти и больше 250Мб
практически не потребляется. Однако RES=840 - это сильно...

code text
  1. .
  2.  
  3.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                        
  4. 18339 l2j       18   0 1119m 840m 509m S    1 33.1   2:37.57 /usr/lib/jvm//sun-jdk-1.6/bin/java -Xmx384m -server -classpat...
 
+
-
edit
 

Mishka

модератор
★★☆

Я на заре джаваписания создавал отдельную нить с таймером и пинал сборщик мусора через определённый интервал. Помогало.
 
US Сергей-4030 #21.12.2007 08:03  @Mishka#21.12.2007 07:22
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Mishka> Я на заре джаваписания создавал отдельную нить с таймером и пинал сборщик мусора через определённый интервал. Помогало.

Это надо сильно смотреть, насколько оно нужно. "По умолчанию" Джава очень любит память. И, разумеется, причина этого очень весомая - много памяти - реже нужно мусор собирать. Но обычно если свободной системной памяти мало, Джава понимает, что нужно делиться.
 
+
-
edit
 

Balancer

администратор
★★★★☆
Mishka> Я на заре джаваписания создавал отдельную нить с таймером и пинал сборщик мусора через определённый интервал. Помогало.

У меня там скрипт самоперезапускаемый каждые 10 минут gc вызывает. Тоже немного помогало :)
 
RU Balancer #21.12.2007 09:12  @Сергей-4030#21.12.2007 08:03
+
-
edit
 

Balancer

администратор
★★★★☆
Сергей-4030> Джава понимает, что нужно делиться.

Фишка в том, что у меня -Xmx однозначный указан. Но игнорируется :-/
 
US Сергей-4030 #21.12.2007 18:32  @Balancer#21.12.2007 09:12
+
-
edit
 

Сергей-4030

исключающий третье
★☆
админ. бан
Сергей-4030>> Джава понимает, что нужно делиться.
Balancer> Фишка в том, что у меня -Xmx однозначный указан. Но игнорируется :-/

Ограничения кучи вообще плохая практика. Вместо этого лучше указывать Throughput goal, т.е. -XX:GCTimeRatio=<nnn>. Помогает опция gcverbose посмотреть, как оно там.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru