吃記憶體,這是我對Eclipse的印象,因為我512M的機子總出現記憶體不足,請用-vmargs -Xmx 調整的提示。然後,我只能關閉Eclipse,不然它就消極怠工。平時,我的大腦對這類提示資訊採取的是習慣性過濾,可是今天我忍無可忍了 ,我要看看到底怎麼搞,寫代碼的日子才能好過些。
這是我在網上查到的資源:
JAVA 虛擬機器調整
預設情況下,代理使用大小為 192MB 的 JVM 堆。通常,這對於較大的訊息負荷來說太小,應該增大。
當代理快要耗盡 Java 對象使用的 JVM 堆空間時,它將使用各種技術(如流量控制和訊息交換)來釋放記憶體。在極端情況下,代理甚至關閉客戶機串連以釋放記憶體並減少訊息內流。所以最好將最大 JVM 堆空間設定得足夠大,以避免這種情況。
但是,與系統的實體記憶體相比,如果最大 Java 堆空間設定過大,代理將繼續增大 Java 堆空間,直至整個系統耗盡記憶體。這會導致效能的降低、不可預計的代理崩潰和/或影響系統中啟動並執行其他應用程式和服務的行為。通常,需要有足夠的實體記憶體以便作業系統和其他應用程式在電腦上運行。
總的說來,好的方法是:估算正常和峰值系統記憶體容量,並配置 Java 堆大小,使其足以提供良好效能,但同時不應過大,以免引起系統記憶體問題。
要更改代理的最小和最大堆大小,請在啟動代理時使用 -vmargs 命令列選項。例如:
/usr/bin/imqbrokerd -vmargs "-Xms256m -Xmx1024m"
此命令會將啟動 Java 堆大小設定為 256MB,將最大 Java 堆大小設定為 1GB。
在 Solaris 上,如果通過 /etc/rc(即 /etc/init.d/imq)啟動代理,請在 /etc/imq/imqbrokerd.conf 檔案中指定代理的命令列參數。有關詳細資料,請參見該檔案中的注釋。
在 Windows 上,如果將代理作為 Window 服務啟動,請使用 imqsvcadmin install 命令的 -vmargs 選項指定 JVM 參數。在任何情況下,請通過檢查代理的記錄檔或通過使用 imqcmd metrics bkr -m cxn 命令驗證設定。
服務管理員公用程式 (imqsvcadmin)
可以使用服務管理員公用程式 (imqsvcadmin) 安裝、查詢和刪除作為 Windows 服務啟動並執行代理。本節介紹了 imqsvcadmin 命令的基本文法,提供了一個子命令列表,概述了 imqsvcadmin 命令選項,並說明了如何使用這些命令執行特定的任務。
imqsvcadmin 命令文法
imqsvcadmin 命令的一般文法如下:
imqsvcadmin subcommand [options]
imqsvcadmin -h
請注意,如果指定 -v、-h 或 -H 選項,將不會執行命令列中指定的其他子命令。例如,輸入以下命令將顯示協助資訊,而不是執行 query 子命令。
imqsvcadmin query -h
imqsvcadmin 子命令
表 D-1 列出了 Message Queue 服務管理員公用程式 (imqsvcadmin) 包含的子命令:
表 D-1 imqsvcadmin 子命令
子命令 |
說明 |
install |
安裝服務並特定啟動選項。 |
query |
顯示 imqsvcadmin 命令的啟動選項。啟動選項包括服務的啟動方式(手動或自動)、服務的位置、Java 運行時的位置以及啟動時傳遞給代理的參數值。 |
remove |
刪除服務。 |
imqsvcadmin 選項概述
表 D-2 列出了 imqsvcadmin 命令的選項。有關如何使用這些選項的論述,請參見基於任務的以下各節。
表 D-2 imqsvcadmin 選項
選項 |
說明 |
-h |
顯示使用協助。不在命令列執行其他命令。 |
-javahome path |
指定要使用的替代 Java 2 相容運行時(預設使用系統上的運行時或 Message Queue 附帶的運行時)的路徑。 樣本:imqsvcadmin -install -javahome d:/jdk1.4 |
-jrehome path |
指定替代 Java 2 相容 JRE 的路徑。 樣本:imqsvcadmin -install -jrehome d:/jre/1.4 |
-vmargs arg [[arg]] |
指定傳遞給正在運行代理服務的 Java VM 的其他參數。(也可以在 Windows 服務控制台的啟動參數欄位中指定這些參數。) 樣本:-vmargs -Xms16m -Xmx128m |
-args arg [[arg]] |
指定傳遞給代理服務的其他命令列參數。有關 imqbrokerd 選項的說明,請參見“啟動代理”。 (也可以在 Windows 服務控制台的啟動參數欄位中指定這些參數。)例如, imqsvcadmin -install -args -passfile d:/imqpassfile |
使用 -javahome、-vmargs 和 -args 選項指定的資訊儲存在 Window 登錄機碼 JavaHome、JVMArgs 和 ServiceArgs 下,其路徑位於
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/iMQ_Broker/Parameters
刪除代理服務
刪除代理服務之前,應使用 imqcmd shutdown bkr 命令關閉代理。然後使用 imqsvcadmin remove 命令刪除服務並重新啟動電腦。
重新設定代理程式服務
要重新設定服務,首先要刪除服務,然後重新安裝並使用 -args 參數指定不同的啟動選項。
使用替代 Java 運行時
可以使用 -javahome 或 -jrehome 選項指定替代 Java 運行時的位置。(也可以在 Windows 服務控制台的啟動參數欄位中指定這些選項。)請注意,啟動參數欄位將反斜線 (/) 作為轉義符進行處理,因此如果要使用它作為路徑分隔字元,必須鍵入兩次,例如 -javahome d://jdk1.3。
查詢代理服務
要確定代理服務的啟動選項,請使用 imqsvcadmin 命令的 -q 選項。
|
imqsvcadmin -query |
|
Service iMQ_Broker is installed. |
Display Name: iMQ_Broker |
Start Type: Manual |
Binary location: c:/Program Files/Sun Microsystems/Message Queue 3.5/bin/imqbrokersvc |
JavaHome: c:/j2sdk1.4.0 |
Broker Args: -passfile d:/imqpassfile |
|
|
嗯,看了之後知道該怎麼搞定了,但願改了以後能告別那個該死的提示。
這是我的更改:
F:/eclipse/eclipse.exe -vmargs -Xmx256m
參考:http://docs.sun.com/source/817-7211/index.html