国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

確認Java擁有足夠的內存

2019-11-18 14:46:30
字體:
來源:轉載
供稿:網友

  確認java擁有足夠的內存

作者: 作者 BUILDER.COM 翻譯:Java研究組織

Java應用程序運行時經常內存溢出。熟悉現代操作系統的用戶習慣于機器使用虛擬內存的緩慢,而不是為應用指定一個希奇的限額,然后顯示OutOfMemory錯誤,形如:


OutMemoryError表明程序的設計很差,或者碰到了超出編程人員所預想的大批量的數據。不管哪種情況,都只有下面這幾種解決辦法。它們是:

設計人員重新設計程序,不致使程序一次載入所有的數據。

數據可以分割成更小的塊。

可以為程序分配更多的內存。

為Java虛擬機提供更多的內存。

后者是最簡單的解決辦法,非凡是當設計人員已經不在現場并且需要超過Java缺省的64M內存限制時更是如此。可以通過給java、javaw、jre、jrew命令指定命令行參數分配更多的內存。

在Java1.1中,命令行參數是-mx<size>。在Java1.2及以后的版本,通過非標準選項-Xmx<size>配置最大內存,但是原來的-mx選項仍然有用。在Java的后續版本中,任何以-X開頭的選項都認為是非標準選項,但是許多更像非正式標準。

參數中指定的內存大小單位可以是字節、kB、MB或者GB。小數值和大數值的缺省單位分別是MB或者字節。

例如:

最大內存5M

java -mx5mcom.generationjava.Crash

同樣表示5 M

java -mx5com.generationjava.Crash

512k,JVM通常需要比這更多的內存。

java -mx512k com.generationjava.Crash

1G,JVM可能不需要預留這么大的內存

java -mx1g com.generationjava.Crash

以字節計數的64M,MacOSX上的缺省值。

java -mx66846720 com.generationjava.Crash

Crash程序如下:

package com.generationjava;

import java.util.HashMap;

public class Crash {

static public void main(String[] args) {

HashMap map = new HashMap();

long i=0;

long ln = System.currentTimeMillis();

while(true) {

for(int j=0; j<1000; j++) {

map.put(""+i++, ""+i++);

map.put(""+i++, new Long(i++));

}

System.err.PRintln( (System.currentTimeMillis() - ln) +

": " + Runtime.getRuntime().freeMemory() +

"/" + Runtime.getRuntime().totalMemory()

);

}

}

}

通過使用-mx選項,有助于解決應用程序的內存溢出。有時,會配置比實際所需要內存總量大32M的額外容量。

原作者: BUILDER.COM
原出處: Java研究組織

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日喀则市| 鄢陵县| 资溪县| 黎川县| 海晏县| 沅陵县| 龙门县| 松原市| 宝鸡市| 饶平县| 秦皇岛市| 凉山| 宁海县| 冕宁县| 北宁市| 九江县| 喀什市| 固安县| 凉城县| 翼城县| 龙胜| 杂多县| 民乐县| 华蓥市| 宁乡县| 蒙阴县| 丹阳市| 通河县| 和顺县| 永顺县| 墨玉县| 大邑县| 穆棱市| 景泰县| 秭归县| 宜君县| 长宁县| 黑河市| 宁晋县| 无极县| 松潘县|