Então, uma pergunta muito simples, de fato. Com minha máquina de desenvolvimento com RAM limitada (8 GB de RAM, Win 7 x64, 8 GB de arquivo de paginação), quando fico sem RAM disponível, os programas começam a ficar lentos e, eventualmente, travam. Na maioria das vezes, a JVM trava primeiro e com muita felicidade. Como isso é possível? É como se não houvesse nenhum arquivo de paginação, mas quando cheguei ao 8º show de RAM usada, a JVM (e às vezes outros programas também) travou quase instantaneamente.
Sim, conheço muito bem todos os mecanismos de paginação implementados principalmente por HW, que mais uma vez devem funcionar com o arquivo de paginação como se houvesse bastante RAM disponível, sem saber nada sobre o arquivo de paginação que está sendo usado ou mesmo existente. Então, por que eu realmente observo comportamentos muito diferentes?
Responder1
Você pode executar o jprofiler e investigar a memória heap. Também não está claro o requisito de memória para o programa Java em execução. Normalmente, 8 GB de RAM são considerados decentes. Se o programa Java estiver criando muitos threads e os threads não forem finalizados, isso poderá causar todos esses problemas. Por favor, verifique o programa Java para saber a quantidade de objetos criados e a natureza do threading.