搜尋
首頁Javajava教程java中配置eclipse.ini中記憶體問題的實例解析

本篇文章是對eclipse.ini記憶體設定的問題進行了詳細的分析介紹,需要的朋友參考下

-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
這裡有幾個問題:
1. 各個參數的意義什麼?
2. 為什麼有的機器我將-Xmx和-XX:MaxPermSize都設定為512M之後Eclipse可以啟動,而有些機器無法啟動?
3. 為何將上面的參數寫入到eclipse.ini檔案Eclipse沒有執行對應的設定?
下面我們一一進行回答
1. 各個參數的意義什麼?
參數中-vmargs的意思是設定JVM參數,所以後面的其實都是JVM的參數了,我們先來了解JVM記憶體管理的機制,然後再解釋每個參數所代表的意義。
堆(Heap)和非堆(Non-heap)記憶體
依照官方的說法:「Java 虛擬機器有一個堆,堆是運行時資料區域,所有類別實例和陣列的記憶體均從此處分配。可以看出JVM主要管理兩種類型的記憶體:堆和非堆。簡單來說堆就是Java程式碼可及的內存,是留給開發人員使用的;非堆就是JVM留給自己用的,所以方法區、JVM內部處理或優化所需的內存(如JIT編譯後的程式碼快取)、每個類別結構(如運行時常數池、欄位和方法資料)以及方法和建構方法的程式碼都在非堆記憶體中。
堆記憶體分配
JVM初始分配的記憶體由-Xms指定,預設是實體記憶體的1/64;JVM最大分配的記憶體由-Xmx指定,預設是實體記憶體的1/4。當預設空餘堆記憶體小於40%時,JVM就會增加堆直到-Xmx的最大限制;空餘堆記憶體大於70%時,JVM會減少堆直到-Xms的最小限制。因此伺服器一般設定-Xms、-Xmx相等以避免每次GC 後調整堆的大小。
非堆記憶體分配
JVM使用-XX:PermSize設定非堆記憶體初始值,預設是物理記憶體的1/64;由XX:MaxPermSize設定最大非堆記憶體的大小,預設是物理記憶體的1 /4。
JVM記憶體限制(最大值)
首先JVM記憶體限制於實際的最大物理記憶體(廢話!呵呵),假設物理記憶體無限大的話,JVM記憶體的最大值跟作業系統有很大的關係。簡單的說就32位元處理器雖然可控記憶體空間有4GB,但是具體的作業系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G-2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。
2. 為什麼有的機器我將-Xmx和-XX:MaxPermSize都設定為512M之後Eclipse可以啟動,而有些機器無法啟動?
透過上面對JVM記憶體管理的介紹我們已經了解到JVM記憶體包含兩種:堆記憶體和非堆內存,另外JVM最大記憶體首先取決於實際的實體記憶體和作業系統。所以說設定VM參數導致程式無法啟動主要有以下幾個原因
1) 參數中-Xms的值大於-Xmx,或-XX:PermSize的值大於-XX :MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM記憶體的最大限制,例如當前作業系統最大記憶體限制,或實際的實體記憶體等等。說到實際實體記憶體這裡需要說明一點的是,如果你的記憶體是1024MB,但實際系統中用到的並不可能是1024MB,因為有一部分被硬體佔用了。
3. 為何將上面的參數寫入到eclipse.ini檔案Eclipse沒有執行對應的設定?
那為什麼同樣的參數在快捷方式或命令列中有效而在eclipse.ini檔案中是無效的呢?這是因為我們沒有遵守eclipse.ini檔案的設定規則:
參數形如「項 值」這種形式,中間有空格的需要換行書寫,如果值中有空格的需要用雙引號包含起來。例如我們使用-vm C:\Java\jre1.6.0\bin\javaw.exe參數設定虛擬機,在eclipse.ini檔案中要寫成這樣:
-vm
C:\Java\ jre1.6.0\bin\javaw.exe
依照上面所說的,最後參數在eclipse.ini中可以寫成這個樣子:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
實際運作的結果可以透過Eclipse中「Help」-「About Eclipse SDK」視窗裡面的「Configuration Details」按鈕來檢視。
另外要說明的是,Eclipse壓縮套件中自帶的eclipse.ini檔案內容是這樣的:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其中–launcher.XXMaxPermSize(注意最前面是兩個連接線)跟-XX:MaxPermSize參數的意思基本上是一樣的,我覺得唯一的差別就是前者是eclipse.exe啟動的時候設定的參數,而後者是eclipse所使用的JVM中的參數。其實二者設定一個就可以了,所以這裡可以把–launcher.XXMaxPermSize和下一行使用#註解掉。
3. 其他的啟動參數。 如果你有雙核心的CPU,也許可以試試這個參數:
-XX:+UseParallelGC
讓GC可以更快的執行。 (只是JDK 5裡對GC新增加的參數)

以上是java中配置eclipse.ini中記憶體問題的實例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
使用Eclipse进行Linux Shell脚本开发的基本配置指南使用Eclipse进行Linux Shell脚本开发的基本配置指南Jul 06, 2023 pm 05:00 PM

使用Eclipse进行LinuxShell脚本开发的基本配置指南在Linux环境下,Shell脚本是一种强大且常用的编程语言,用于自动化执行各种任务和管理系统。Eclipse是一款功能强大的集成开发环境(IDE),可以帮助开发人员更高效地编写、调试和管理Shell脚本。本文将介绍如何在Eclipse中配置和使用Shell脚本开发环境。第一步:安装Eclip

eclipse如何显示行号eclipse如何显示行号Dec 24, 2020 am 11:03 AM

eclipse显示行号的方法:1、直接输入快捷键“CTRL+F10”,勾选“show line numbers”;2、右键点击其侧边栏,勾选“show line numbers”;3、在Eclipse菜单栏中设置显示行号即可。

eclipse怎么设置中文eclipse怎么设置中文Jul 24, 2023 am 11:02 AM

eclipse设置中文方法:1、启动Eclipse,在启动界面的工具栏上点击"Preferences"按钮;2、弹出的首选项对话框中,点击"General"选项;3、在"General"选项下,点击"Appearance"子选项;4、点击"Language"选择框,选择“中文”即可设置成中文;5、关闭eclipse,重启即可使用中文。

使用Eclipse进行Linux Shell脚本自动化的基本配置指南使用Eclipse进行Linux Shell脚本自动化的基本配置指南Jul 04, 2023 pm 06:49 PM

使用Eclipse进行LinuxShell脚本自动化的基本配置指南简介:LinuxShell脚本是一种强大的自动化工具,用于在Linux操作系统中执行一系列命令和操作。Eclipse是一种流行的集成开发环境(IDE),主要用于Java开发,但也可以用于编辑和执行Shell脚本。本文将介绍如何在Eclipse中配置和使用Shell脚本的自动化工具。安装Ec

eclipse创建springboot项目的方式有哪些eclipse创建springboot项目的方式有哪些May 22, 2023 pm 07:19 PM

方法一安装STS插件安装插件导向窗口完成后,在eclipse右下角将会出现安装插件的进度,等插件安装完成后重启eclipse生效新建springboot项目项目启动方法二1.创建Maven项目2.选择项目类型3.选择项目4.编写项目组和名称-finish即可5.修改pom.xml文件org.springframework.bootspring-boot-starter-parent2.0.2.RELEASE6.pom.xml中添加依赖org.springframework.bootspring-

eclipse左侧项目栏不见了怎么解决eclipse左侧项目栏不见了怎么解决Feb 19, 2021 pm 05:14 PM

解决方法:首先打开eclipse软件,点击顶部导航栏中的“window”选项;然后在打开的下拉菜单中,点击“show view”选项;接着在打开的菜单中,点击“project Exlorer”选项即可调出左侧项目栏。

Java错误:Eclipse错误,如何解决和避免Java错误:Eclipse错误,如何解决和避免Jun 25, 2023 am 09:09 AM

Java作为一种非常强大和流行的编程语言,被广泛应用于各种计算机应用和开发领域。在编写Java代码时,经常会遇到各种错误信息,这些错误信息可能会影响代码的正常编译和运行。其中,Eclipse是一种广泛使用的集成开发环境,而在Eclipse中遇到错误也是相当常见的。本文将探讨一些常见的Eclipse错误,并提供解决和避免这些错误的方法。一、常见的Eclipse

怎么将eclipse语言设置为中文怎么将eclipse语言设置为中文Jan 04, 2023 pm 03:50 PM

eclipse语言设置为中文的方法:1、打开浏览器找到语言包下载地址,并将最新的安装包地址复制;2、打开eclipse,点击“help”,然后点击安装新的插件;3、点击“Add”,在Location中粘帖网址;4、在下拉菜单中找到简体中文包,进行勾选,点击Next等待安装;5、重启eclipse即可。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。