java進(jìn)程內(nèi)存一直增加 JAVA程序開始之后VIRT占用過(guò)高是什么原因造成的,怎么解決?
JAVA程序開始之后VIRT占用過(guò)高是什么原因造成的,怎么解決?從代碼的角度來(lái)看,軟件開發(fā)人員關(guān)注java.lang.OutOfMemoryError錯(cuò)誤同時(shí),通過(guò)創(chuàng)建Java空間對(duì)象來(lái)避免不必要的內(nèi)
JAVA程序開始之后VIRT占用過(guò)高是什么原因造成的,怎么解決?
從代碼的角度來(lái)看,軟件開發(fā)人員關(guān)注java.lang.OutOfMemoryError錯(cuò)誤同時(shí),通過(guò)創(chuàng)建Java空間對(duì)象來(lái)避免不必要的內(nèi)存泄漏?,F(xiàn)在用一個(gè)實(shí)例來(lái)分析內(nèi)存占用的故障排除。通過(guò)top命令,可以發(fā)現(xiàn)PID為9004的java進(jìn)程占用了相對(duì)較高的內(nèi)存量,并且沒(méi)有釋放它(24.7%)。PS-mp9004-O thread、TID、time、RSS、size、%MEM發(fā)現(xiàn)PS命令可以找到特定進(jìn)程的CPU使用情況,但找不到進(jìn)程中特定線程的內(nèi)存使用情況。
Java程序占用內(nèi)存太高了怎么辦?
1. 線程是否有睡眠時(shí)間。2睡眠時(shí)間設(shè)置是否合理。我猜你的程序一直在運(yùn)行以實(shí)現(xiàn)某種功能。設(shè)定睡眠時(shí)間是非常重要的。還有一個(gè)問(wèn)題是函數(shù)中是否有IO,是否有占用內(nèi)存的代碼塊,這取決于具體的函數(shù)。簡(jiǎn)單的線程,注意以上兩點(diǎn)。