java內存越來越大

本文目錄一覽:

如何設置java內存限制

1、ide一般run時可設置內存大小,如eclipse設置如下

eclipse安裝後,在安裝目錄有個config.ini文件,內容如下:

-vmargs

-Xms40m

-Xmx256m

或是 其實也很簡單。打開Eclipse包,在Contents/MacOS 目錄下有一個 eclipse.ini 文件,

用編輯工具打開他,把Xms128m更改成Xms256m。

這個文件用來配置eclipse啟動時候的內存分配方案,Xms是初始化內存大小,Xmx是最大可使用內存大小,這個默認的配置是eclipse資源消耗最小化的配置。如果你的項目比較大,這個配置必須改,一般適當調整為128,384即可,若項目更大一些則調整的再大一些,根據實際情況決定。這個參數配置的大小很關鍵,太小,eclipse垃圾回收會過於頻繁導致很慢,或者內存堆棧溢出而崩潰。太大,eclipse會吃掉大量內存,垃圾回收周期變長,但每次回收會很慢,影響使用。所以你在配置的時候需要權衡,嘗試!

2、web可以在web容器中設置相關大小

3、一般寫代碼時,如果會用到大內存時,要注意。

我的世界正版怎麼調java內存大小

使用1.6.X和更新版本的Minecraft。

(1)查看你還有多少剩餘可用的內存(RAM)。

按下Win+Pause打開系統窗口。 查看系統已安裝的內存容量。 這會讓你了解大概給Minecraft分配多少內存。

如果你沒有很多內存(RAM),那麼你可以考慮安裝更多內存。 這是提高計算機性能的簡便方法之一。

(2)安裝最新版本的Java SE。

這能在Java運行平台上保證你給Minecraft分配更多的內存。 查看相關指南了解下載和安裝最新版本的所有細節。

遊戲內容

介紹

玩家們可以自由選擇遊戲模式 [生存、創造、冒險、極限 (僅Java版) 和旁觀模式(僅Java版) ]。在各種模式中體驗不一樣的有趣玩法,在生存模式中享受打怪、冒險等多種樂趣,在創造模式下享受當創世神的樂趣。該遊戲以玩家在三維空間中自由地創造和破壞不同種類的方塊為主題。

玩家在遊戲中可以在單人或多人模式中通過摧毀或創造精妙絕倫的建築物和藝術,或者收集物品探索地圖以完成遊戲的成就(進度)。玩家也可以嘗試紅石電路和指令等玩法。

如何調整java虛擬機內存大小

在一些規模稍大的應用中,Java虛擬機(JVM)的內存設置尤為重要,想在項目中取得好的效率,GC(垃圾回收)的設置是第一步。

PermGen space:全稱是Permanent Generation space.就是說是永久保存的區域,用於存放Class和Meta信息,Class在被Load的時候被放入該區域Heap space:存放Instance。

GC(Garbage Collection)應該不會對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤

Java Heap分為3個區

1.Young

2.Old

3.Permanent

Young保存剛實例化的對象。當該區被填滿時,GC會將對象移到Old區。Permanent區則負責保存反射對象,本文不討論該區。

JVM的Heap分配可以使用-X參數設定,

-Xms

初始Heap大小

-Xmx

java heap最大值

-Xmn

young generation的heap大小

JVM有2個GC線程

第一個線程負責回收Heap的Young區

第二個線程在Heap不足時,遍歷Heap,將Young 區升級為Older區

Older區的大小等於-Xmx減去-Xmn,不能將-Xms的值設的過大,因為第二個線程被迫運行會降低JVM的性能。

為什麼一些程序頻繁發生GC?

有如下原因:

1.程序內調用了System.gc()或Runtime.gc()。

2.一些中間件軟件調用自己的GC方法,此時需要設置參數禁止這些GC。

3.Java的Heap太小,一般默認的Heap值都很小。

4.頻繁實例化對象,Release對象 此時盡量保存並重用對象,例如使用StringBuffer()和String()。

如果你發現每次GC後,Heap的剩餘空間會是總空間的50%,這表示你的Heap處於健康狀態,許多Server端的Java程序每次GC後最好能有65%的剩餘空間

經驗之談:

1.Server端JVM最好將-Xms和-Xmx設為相同值。為了優化GC,最好讓-Xmn值約等於-Xmx的1/3。

2.一個GUI程序最好是每10到20秒間運行一次GC,每次在半秒之內完成。

注意:

1.增加Heap的大小雖然會降低GC的頻率,但也增加了每次GC的時間。並且GC運行時,所有的用戶線程將暫停,也就是GC期間,Java應用程序不做任何工作。

2.Heap大小並不決定進程的內存使用量。進程的內存使用量要大於-Xmx定義的值,因為Java為其他任務分配內存,例如每個線程的Stack等。

Stack的設定

每個線程都有他自己的Stack。

-Xss

每個線程的Stack大小

Stack的大小限制着線程的數量。如果Stack過大就好導致內存溢漏。-Xss參數決定Stack大小,例如-Xss1024K。如果Stack太小,也會導致Stack溢漏。

硬件環境

硬件環境也影響GC的效率,例如機器的種類,內存,swap空間,和CPU的數量。

如果你的程序需要頻繁創建很多transient對象,會導致JVM頻繁GC。這種情況你可以增加機器的內存,來減少Swap空間的使用。

4種GC

1、第一種為單線程GC,也是默認的GC,該GC適用於單CPU機器。

2、第二種為Throughput GC,是多線程的GC,適用於多CPU,使用大量線程的程序。第二種GC與第一種GC相似,不同在於GC在收集Young區是多線程的,但在Old區和第一種一樣,仍然採用單線程。-XX:+UseParallelGC參數啟動該GC。

3、第三種為Concurrent Low Pause GC,類似於第一種,適用於多CPU,並要求縮短因GC造成程序停滯的時間。這種GC可以在Old區的回收同時,運行應用程序。-XX:+UseConcMarkSweepGC參數啟動該GC。

4、第四種為Incremental Low Pause GC,適用於要求縮短因GC造成程序停滯的時間。這種GC可以在Young區回收的同時,回收一部分Old區對象。-Xincgc參數啟動該GC。

單文件的JVM內存進行設置

默認的java虛擬機的大小比較小,在對大數據進行處理時java就會報錯:java.lang.OutOfMemoryError。

設置jvm內存的方法,對於單獨的.class,可以用下面的方法對Test運行時的jvm內存進行設置。

java -Xms64m -Xmx256m Test

-Xms是設置內存初始化的大小

-Xmx是設置最大能夠使用內存的大小(最好不要超過物理內存大小)

tomcat啟動jvm內存設置

Linux:

在/usr/local/apache-tomcat-5.5.23/bin目錄下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加「m」說明是MB,否則就是KB了,在啟動tomcat時會報內存不足。

-Xms:初始值

-Xmx:最大值

-Xmn:最小值Windows

在catalina.bat最前面加入

set JAVA_OPTS=-Xms128m -Xmx350m 如果用startup.bat啟動tomcat,OK設置生效.夠成功的分配200M內存.但是如果不是執行startup.bat啟動tomcat而是利用windows的系統服務啟動tomcat服務,上面的設置就不生效了,就是說set JAVA_OPTS=-Xms128m -Xmx350m 沒起作用.上面分配200M內存就OOM了..windows服務執行的是bin\tomcat.exe.他讀取註冊表中的值,而不是catalina.bat的設置.解決辦法:

修改註冊表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions

原值為

-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"

-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"

-Xrs加入 -Xms300m -Xmx350m

重起tomcat服務,設置生效

weblogic啟動jvm內存設置

在weblogic中,可以在startweblogic.cmd中對每個domain虛擬內存的大小進行設置,默認的設置是在commEnv.cmd裏面。

JBoss

默認可以使用的內存為64MB

$JBOSSDIR$/bin/run.config

JAVA_OPTS = "-server -Xms128 -Xmx512"

Eclipse

在所在目錄下,鍵入

eclipse.exe -vmargs -Xms256m -Xmx512m

256m表示JVM堆內存最小值

512m表示JVM堆內存最大

Websphere

進入控制台去設置:應用程序服務器 server1 進程定義 Java 虛擬機

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/295265.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 17:15
下一篇 2024-12-26 17:15

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論