🌀 Trooper
|
Tuning Java
04-01-06, 18:15
#1
Bem, estou estudando sobre Java Memory tuning, pois estou querendo otimizar um web application server lá no work.
Estou querendo evitar um erro que ocorre, que é o tão famigerado OutOfMemoryException. Creio que os tunings já existentes no start da JVM não são legais e, como também não posso dar detalhes, queria saber se alguem tem como me passar alguma página que informe todos os parâmetros de start da JVM da Sun, ou então algum start que vocês costumam colocar que não tenha esse problema. Vi este excelente artigo da IBM que foi bem mais explicativo que a JVM da Sun. http://www-128.ibm.com/developerwork...ary/i-gctroub/ Pra quem teve esses problemas de OutOfMemoryException, só precisam pensar em qq webapplication em Java que vcs usem e é acostumado a tomar porrada. Pensem como se fosse qualquer porra: Tomcat, Jboss etc... e tentar formular um start que vcs acham que fique rasoável. Sério, peço encarecidamente que RESPEITEM o tópico. Evitem colocar baboseiras e tals. |
||||
The Alpha Male
|
04-01-06, 18:17
#2
pingo, o meu start eh o padrao, ateh pq a minha maquina serve como servidor local de homologacao(cada estacao de trabalho dos desenvolvedores serve como homologacao, usando cvs etc)
uma vez rolou um outofmemory nao tenho ideia real por que oq eu fiz? chamei o GC na mao apos cada loop(dentro do loop eram feitas varias coisas e isso estava causando o OutOfMemory) melhor solucao? nao sei mas funcionou |
🌀 Trooper
|
04-01-06, 18:33
#3
Quote:
|
|
The Alpha Male
|
04-01-06, 21:47
#4
um deles padrao que eu ja li em alguns lugares é iniciar a jvm-server e nao a client
mas isso vc ja deve estar fazendo certo? eu vou olhar depois que tenho uns links disso e te mando por msn |
inativo
|
04-01-06, 23:54
#5
System.gc() somente "aumenta a probabilidade de rodar o gc".
Como ele depende de thread, nada é garantido. Segundo a "un4's consultants inc", em 95% dos casos, problemas de performance/estouro de memória ocorrem em apenas 1% do código escrito. Tente indentificar essas zonas mortas e trabalhe nelas ao invés de buscar soluções genéricas. Cada caso é um caso. |
🌀 Trooper
|
05-01-06, 06:45
#6
Quote:
|
|
The Alpha Male
|
05-01-06, 07:45
#7
Quote:
por isso eu chamava o gc dentro da thread que causava o out of memory ESPERTAO EU |
|
🌀 Trooper
|
05-01-06, 10:22
#8
Quote:
|
|
The Alpha Male
|
05-01-06, 10:27
#9
Quote:
como eu disse no final dos loops das threads solucao meio porca e provavelmente teria alguma melhor mas o prazo estava estourando e eu tinha q entregar(ja estava pronto a mais tempo perdi anos tentando descobrir o pq do erro da memoria) |
|
Banned
|
05-01-06, 10:31
#10
|
inativo
|
05-01-06, 10:39
#11
Quote:
Usando System.gc() vc eleva a chance da thread dele rodar. Não tem diferença nenhuma vc chamar ele de uma outra thread qualquer. Sei lá se você entendeu.. eu explico muito mal. |
|
The Alpha Male
|
05-01-06, 10:42
#12
Quote:
mas funcionou perfeitamente no java 5 e parou de dar os erros mas tutu peim |
|
🌀 Trooper
|
05-01-06, 10:48
#13
Quote:
Por exemplo, um parâmetro valioso que tem é o AgressiveGC, mas a VM que eu uso não tem esse parâmetro infelizmente. Last edited by Never Ping; 05-01-06 at 10:49.. Motivo: clarifiquei melhor a idéia. |
|
The Alpha Male
|
05-01-06, 10:51
#14
no meu caso mudar os parametros do start da VM nao estavam no escopo
alem do que era um relatorio pouco utilizado(poucas vezes por ano) entao nao foi de todo ruim oq eu fiz funcionou, nao sei pq mas funcionou |
|
|