Se um aplicativo bem projetado falhar devido à falta de memória, ele deve fornecer algumas informações úteis sobre isso. Tente executar a chamada do aplicativo a partir do Terminal e examine as mensagens.
Estou executando o mCruiseOn Server, que é um aplicativo do lado do servidor baseado em java (sockets, vários threads, memcached, mysql) em um Micro EC2. Ele tem falhado frequentemente. Eu suspeito que o uso da memória pode ter matado isso.
Como você descobre qual programa está usando muita memória
Eu li isso e foi muito útil. Agora preciso saber se meu aplicativo falhou devido a falta de memória. Qualquer log do sistema que tenha essa informação?
Se um aplicativo bem projetado falhar devido à falta de memória, ele deve fornecer algumas informações úteis sobre isso. Tente executar a chamada do aplicativo a partir do Terminal e examine as mensagens.
Eu estava redirecionando toda a saída para um arquivo usando > my.log &
e, em seguida, usando tail -f my.log
para exibir todas as mensagens. Por alguma razão, todos os e.printstacktrace
não estavam no my.log. Estava faltando um RuntimeException
e a raiz exata causa um ArrayOutofboundException
.