日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小

發布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.在eclipse設置JVM參數

打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效,也就是在eclipse中運行的java程序)編輯當前使用的JRE,在缺省VM參數中輸入:

-Xmx1024m -Xms1024m -Xmn256m -Xss16m

或者在運行一個java程序的時候執行:

java?-Xmx1024m

-Xms1024m -Xmn256m -Xss16m? Test

Test是一個class文件。

2. 在Tomcat服務器上設置JVM參數

set CATALINA_OPTS=-Xmx512m -Xms512m -Xmn64m -Xss2m??或者

set JAVA_OPTS=-Xmx512m -Xms512m -Xmn64m -Xss2m

設置CATALINA_OPTS 和??JAVA_OPTS都是一個道理,在啟動tomcat的時候設置參數。

兩者區別是JAVA_OPTS在tomcat停止的時候也會執行這個命令。

注意:Tomcat分為安裝版(*.exe)和非安裝版或者解壓版(*.zip),個人還是比較喜歡解壓版。兩者雖然在功能上沒有什么區別,但是在設置上還是有要注意的地方。這里只談JVM設置要注意的地方。

安裝版:windows的服務會有一個tomcat服務,當啟動服務的時候Tomcat會從注冊表讀取JVM的參數。也就是說當在tomcat的lib文件夾下catalina.bat或者startup.bat中設置JVM參數是無效的。解決辦法:設置tomcat的注冊表;或者使用startup.bat啟動tomcat。

解壓版:當點擊startup.bat時,它會讀取catalina.bat中的配置,不管在startup.bat文件還是在catalina.bat文件中設置JVM參數,都會讀取JVM參數。

3. ?查看堆的大小

在程序中查看,返回值單位是字節,當然還有其他JVM參數可以查看。

Runtime.getRuntime().maxMemory();

或者在命令行 執行jvisualvm 命令

或者%java_home%\bin 目錄下點擊jvisualvm.exe

或者在命令行執行jconsole 命令

或者%java_home%\bin 目錄下點擊jconsole.exe

4. java內存可以分為堆內存和非堆內存

堆和非堆:堆是給開發人員用的,是在JVM啟動時創建; 非堆是留給JVM自己用的,用來存放類型(類和接口)的信息。它和堆不同,運行期內GC不會釋放空間。如果web app用了大量的第三方jar或者應用有太多的class文件而恰好MaxPermSize設置較小,超出了也會導致這塊內存的占用過多造成溢出,或者 tomcat熱部署時侯不會清理前面加載的環境,只會將context更改為新部署的,非堆存的內容就會越來越多,熱部署上幾次就java.lang.OutOfMemoryError:

PermGen space .

---- 堆內存設置:程序可以到達的,可以操作的

-Xms 初始堆內存 默認物理內存1/64,也是最小分配堆內存。當空余堆內存小于40%時,會增加到-Xms的最大限制

-Xmx 最大堆內存分配 默認物理內存1/4,當空余堆內存大于70%時,會減小到-Xms的最小限制。

一般設置 -Xms和Xms大小相等

---- 非堆內存設置

-XX:PermSize 非堆內存的初始值,默認物理內存的1/64 ,也是最小非堆內存。

-XX:MaxPermSize 非堆內存最大值,默認物理內存的1/4,

5. 典型JVM參數設置:

java -Xmx128m -Xms128m -Xmn64m -Xss1m

-Xmx128m:設置JVM最大可用內存為128M。

-Xms128m:設置JVM最小內存為128m。此值可以設置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內存。

-Xmn2g:設置年輕代大小為2G。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。

-Xss128k:設置每個線程的堆棧大小。 JDK5.0以后每個線程堆棧大小為1M,以前每個線程堆棧大小為256K。根據應用的線程所需內存大小進行調整。在相同物理內存下,減小這個值能生成更 多的線程。但是操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。

-- Ratio 英音:['reiseu] 比率

-- Eden 伊甸

-- Survivor 幸存者

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區進行多次復制,這樣可以增加對象再年輕代的存活時間,增加在年輕代即被回收的概論。

總結

以上是生活随笔為你收集整理的bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。