哪位親曉得jvm如何管理內存
提問者:恒愛_梨花的莫 | 瀏覽 次 | 提問時間:2017-03-02 | 回答數量:3
典型設置: • java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:設置JVM最大可用內存為3550M。-Xms3550m:設置JV...
已有3條答案
__金宙ゝ
回答數:121405 | 被采納數:208
2017-03-03 08:28:02
典型設置:
• java -Xmx3550m -Xms3550m -Xmn2g -Xss128k
-Xmx3550m:設置JVM最大可用內存為3550M。
-Xms3550m:設置JVM促使內存為3550m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成後JVM重新分配內存。
-Xmn2g:設置年輕代大小為2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對係統性能影響較大,Sun官方推薦配置為整個堆的3/8。
-Xss128k:設置每個線程的堆棧大小。JDK5.0以後每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。更具應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更多的線程。但是操作係統對一個進程內的線程數還是有限製的,不能無限生成,經驗值在3000~5000左右。
• java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0
-XX:NewRatio=4:設置年輕代(包括Eden和兩個Survivor區)與年老代的比值(除去持久代)。設置為4,則年輕代與年老代所占比值為1:4,年輕代占整個堆棧的1/5
-XX:SurvivorRatio=4:設置年輕代中Eden區與Survivor區的大小比值。設置為4,則兩個Survivor區與一個Eden區的比值為2:4,一個Survivor區占整個年輕代的1/6
-XX:MaxPermSize=16m:設置持久代大小為16m。
-XX:MaxTenuringThreshold=0:設置垃圾最大年齡。如果設置為0的話,則年輕代對象不經過Survivor區,直接進入年老代。對於年老代比較多的應用,可以提高效率。如果將此值設置為一個較大值,則年輕代對象會在Survivor區進行多次複製,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概論。
妹子國籍是贛榆
回答數:9826 | 被采納數:1
2017-03-03 15:19:15
1.打開注冊表(開始->運行或WIN+R,輸入regedit,確定);2.找到HKEY_CLASSES_ROOT\\Applications\\javaw.exe,一開始沒有的話,就在資源管理器中找到javaw.exe文件,如我的電腦中為D:\\ProgramFiles\\Java\\jre\\bin\\javaw.exe,運行下,或找個Jar文件,選擇打開方式,輸入D:\\ProgramFiles\\Java\\jre\\bin\\javaw.exe,再選擇打開就行了;3.進入HKEY_CLASSES_ROOT\\Applications\\javaw.exe\\shell\\open\\command,修改默認的鍵值為"D:\\ProgramFiles\\Java\\jre\\bin\\javaw.exe"-jar"%1"。java環境安裝在其它地方也類似。
jvm如何管理內存程序方麵的優化我自己感覺做的不錯了,對.,各種對象的使用都想辦法不讓內存浪費。但還是吃內存吃的很厲害我想主要的消耗在於自己寫的。這些是配置JBoss運行的JVM優化參數。 -Xms256m初始的java內存堆大小256M -Xmx2048m最大的java內存堆大小