如果是對象或是字符串那么重復(fù)的創(chuàng)建很容易造成內(nèi)存的大量被占用,如果是基本類型那么并不會造成太多的影響。
成都創(chuàng)新互聯(lián)成立于2013年,先為安定等服務(wù)建站,安定等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為安定企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
任何語言都是這樣,特別是java有個oop面向?qū)ο缶幊痰母拍?,在運行的過程中,會不斷的給對象在內(nèi)存中開拓新的內(nèi)存地址,并且將內(nèi)存放在改內(nèi)存地址指向的內(nèi)存棧中。隨著項目的運行,并著對象的出現(xiàn),內(nèi)存的占用也越來越大。
先看下是否有內(nèi)存泄露,簡單的方法就是隔一段時間檢查下內(nèi)存,看看是否是持續(xù)上升。然后看下資源是否可以優(yōu)化,比如你加載的圖片有沒有resize過,盡可能減少資源的內(nèi)存消耗。
針對你說的這種情況,可以使用jvisualvm.exe直接查看內(nèi)存使用情況,查看是否是有大對象。
因為 Java 運行在虛擬機上,虛擬機本身就占用的內(nèi)存,因此 Java 程序本身加虛擬機內(nèi)存導(dǎo)致 Java 比較占內(nèi)存。相同的 Java 程序和 C 程序之間,Java 可能會比 C 占用更大的內(nèi)存。
先看下是否有內(nèi)存泄露,簡單的方法就是隔一段時間檢查下內(nèi)存,看看是否是持續(xù)上升。然后看下資源是否可以優(yōu)化,比如你加載的圖片有沒有resize過,盡可能減少資源的內(nèi)存消耗。
對于Windows update占用高的問題,如果是首次更新(新電腦),建議手動完成一次檢查更新,并等待它下載安裝完畢并提示重啟,以后的更新就不會那么占資源了。
電腦內(nèi)存使用率很高的解決方法 首先,我們怎么來判斷內(nèi)存使用率過高?根據(jù)一些軟件的評判標準來看,一個是看CPU使用率。如果CPU使用率大于15%的`話,一般這種情況引起的內(nèi)存使用率上升屬于正常情況。
1、HashSet用的是哈希表,開一個大數(shù)組,用哈希值映射到下標上,會有沖突,只有裝填因子小的時候性能才好,要留很多額外空間,占內(nèi)存大。TreeSet用的是平衡二叉樹(應(yīng)該是紅黑樹),冗余數(shù)據(jù)很少。Hash是用空間換時間。
2、這兩個實現(xiàn)類的主要區(qū)別在于不同的數(shù)據(jù)結(jié)構(gòu)產(chǎn)生的不同用途,而不是內(nèi)存占用,這兩個算法的內(nèi)存占用是差不多的。HashSet速度快、效率高,通常都用這個。TreeSet是一個可排序的Set,當你需要排序的時候就用它。
3、你也可以用你的程序 進程 PID 號數(shù) 調(diào)用, 命令是:wmic process where processid=6884 get WorkingSetSize 這里6884你可替換成 你的程序 進程 PID。
4、JVM中內(nèi)存的大小應(yīng)該與你定義,還有實例化對象的多少有關(guān),與動作應(yīng)該不會有多大關(guān)系。
5、你的問題,應(yīng)該是 自己的代碼 只創(chuàng)建,沒有 釋放,或是出現(xiàn)死循環(huán),導(dǎo)致內(nèi)存越來越占,就算設(shè)置了再大的運行內(nèi)存,還是會 內(nèi)存溢出。