<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java學(xué)習(xí)

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對(duì)文章有任何疑問(wèn)或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂(lè)園)指出,我會(huì)盡力幫助解決。一起進(jìn)步

     

    java.lang.OutOfMemoryError: Java heap space 解決方法

    本博客一搬家,新家地址: http://www.javaly.cn (Java樂(lè)園)
    java.lang.OutOfMemoryError: Java heap space 解決方法
    這個(gè)問(wèn)題的根源是jvm虛擬機(jī)的默認(rèn)Heap大小是64M,可以通過(guò)設(shè)置其最大和最小值來(lái)實(shí)現(xiàn).設(shè)置的方法主要是幾個(gè).
    1.可以在windows 更改系統(tǒng)環(huán)境變量
    加上JAVA_OPTS=-Xms64m -Xmx512m
    2,如果用的tomcat,在windows下,可以在
    C:\tomcat5.5.9\bin\catalina.bat  中加上:
    set JAVA_OPTS=-Xms64m -Xmx256m
    位置在: rem Guess CATALINA_HOME if not defined  這行的下面加合適.
    3.如果是linux系統(tǒng)
    Linux  在{tomcat_home}/bin/catalina.sh的前面,加
    set JAVA_OPTS='-Xms64 -Xmx512'






    ################################################################

    內(nèi)存溢出 java.lang.OutOfMemoryError: Java heap space


    有三種可能導(dǎo)致OutOfMemoryError。首先是,此JVM有真實(shí)的內(nèi)存泄漏,導(dǎo)致此JVM堆在內(nèi)部實(shí)現(xiàn)時(shí)產(chǎn)生了一個(gè)Bug。這極不可靠。所有JVM都經(jīng)過(guò)充分的測(cè)試,并且,如果有人發(fā)現(xiàn)這種bug,它將絕對(duì)是最高的優(yōu)先級(jí)。因此你可以非常寬心地排除這種可能性。

       第二種可能的OutOfMemoryError原因只不過(guò)是,你沒(méi)有為你的應(yīng)用程序運(yùn)行時(shí)給予足夠多的可用內(nèi)存。這種情況,有兩種可能的方案,或者增加 JVM堆可用大小,或者減少你的應(yīng)用程序所需的內(nèi)存總量。提高JVM可用堆大小可以簡(jiǎn)單的使用JVM的 -Xmx 參數(shù)。假如你將此參數(shù)設(shè)置盡可能的大(可用內(nèi)存極限不要超過(guò)系統(tǒng)物理內(nèi)存,否則你的應(yīng)用程序?qū)⒎猪?yè)并暫停),仍然有以上所提到的內(nèi)存問(wèn)題,那么,你需要減 少你的應(yīng)用程序所可能用到內(nèi)存總量。減少應(yīng)用程序內(nèi)存可能是簡(jiǎn)單的,你可能允許一些集合過(guò)大,例如使用了許多大的緩沖區(qū)。或者它過(guò)于復(fù)雜,要求你重新實(shí)現(xiàn) 一些類,乃至重新設(shè)計(jì)應(yīng)用程序。

       讀者 Jams Stauffer 指出有些JVM(例如 sun的 JVMs),還有一個(gè)“Perm”參數(shù)用來(lái)處理JVM結(jié)構(gòu)與類對(duì)象。如果你正在使用一個(gè)數(shù)量非常巨大的類集,它有可能運(yùn)行在"Perm"空間之外,然后你 需要增加此空間的大小,例如,sun的JVM使用 -XX:PermSize 與 -XX:MaxPermSize 選項(xiàng)。

       第三種導(dǎo)致OutOfMemoryError最為常見(jiàn),無(wú)心的對(duì)象引用保持。你沒(méi)有明確無(wú)誤的釋放對(duì)象,以致于你的堆增長(zhǎng)再增長(zhǎng),直到你沒(méi)有額外的空間。

       處理OutOfMemoryError:

       是JVM內(nèi)部的BUG?不太可能。如果是,這是優(yōu)先級(jí)最高的BUG(為什么還沒(méi)有人發(fā)現(xiàn)它,而你碰到了?)。

       沒(méi)有足夠的內(nèi)存分配給實(shí)際運(yùn)行的應(yīng)用程序??jī)煞N選擇:使用-Xmx參數(shù)增加堆的最大使用內(nèi)存(或者使用-XX:MaxPermSize參數(shù)增加Perm空 間大小); 或者使用更小的集合/緩沖區(qū)/表空間/對(duì)象.....,以減少所需要的內(nèi)存總量,也就是說(shuō),可以調(diào)整對(duì)象大小,重新設(shè)計(jì)與重新實(shí)現(xiàn)你的應(yīng)用程 序。

    無(wú)心的對(duì)象引用保持?找到保持這些無(wú)意引用的源對(duì)象,改變它并釋放這些對(duì)象。在IBM開(kāi)發(fā)者社區(qū)的文章綱要式的揭示了這樣一個(gè)通用的處理過(guò)程。這個(gè)過(guò)程主 要是等到應(yīng)用程序到達(dá)恒定狀態(tài)--你將期望最多的新創(chuàng)建的對(duì)象是臨時(shí)對(duì)象,并且可以被垃圾收集器收集。這常常是在應(yīng)用程序所有的初始化工作完成之后。

    強(qiáng)迫垃圾收集,獲得一個(gè)堆的對(duì)象快照。
    做任何工作可能正在導(dǎo)到無(wú)意的對(duì)象引用保持。
    強(qiáng)迫另一次垃圾收集并獲得第二次堆的對(duì)象快照。
    比較這兩個(gè)快照,觀察從第一個(gè)快照到第二個(gè)快照哪些對(duì)象在數(shù)量上有所增加。因?yàn)槟阍诳煺罩皬?qiáng)迫垃圾收集,剩下的將是所有被應(yīng)用程序引用的對(duì)象,比較兩個(gè)快照將準(zhǔn)確的標(biāo)識(shí)那些新創(chuàng)建的、保留在應(yīng)用程序里的對(duì)象。
    根據(jù)你對(duì)應(yīng)用程序的認(rèn)識(shí),決定兩個(gè)快照比較中,哪些對(duì)象正在無(wú)意的保持對(duì)象引用。
    跟蹤前導(dǎo)引用,找到哪些對(duì)象正在引用這些無(wú)意的保持對(duì)象,直到你找到導(dǎo)致此問(wèn)題的源對(duì)象

    啟動(dòng)虛擬機(jī)的時(shí)候,加上一個(gè)參數(shù):-Xms800m -Xmx800m就好了
    -Xms <size>
    設(shè)置JVM初始化堆內(nèi)存大小

    -Xmx <size>
    設(shè)置JVM最大的堆內(nèi)存大小

    如果是應(yīng)用程序,則:java -Xms800m -Xmx800m 你的類名
    如果是tomcat之類的web服務(wù)器,在這個(gè)服務(wù)器的啟動(dòng)文件后面加上這個(gè)參數(shù)即可。

    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
            at org.jaxen.expr.IdentitySet.contains(IdentitySet.java:73)
            at org.jaxen.expr.DefaultStep.evaluate(DefaultStep.java:165)
            at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:
    154)
            at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLo
    cationPath.java:117)
            at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:108)
            at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:705)
            at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:227)
            at org.dom4j.xpath.DefaultXPath.selectNodes(DefaultXPath.java:132)
            at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:166)
            at com.sunland.jdata.Pm01XmlFactory.readSourceData(Pm01XmlFactory.java:1
    20)
            at com.sunland.jdata.Pm01XmlFactory.readSourceDataDir(Pm01XmlFactory.jav
    a:95)
            at com.sunland.operation.Pm01DbBean.done(Pm01DbBean.java:28)
            at com.sunland.factory.Pm01Task.doCreate(Pm01Task.java:44)
            at com.sunland.factory.Pm01Task.run(Pm01Task.java:31)
            at com.sunland.jdata.MainStart.main(MainStart.java:69)

    posted on 2009-05-21 10:44 找個(gè)美女做老婆 閱讀(2277) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 香蕉蕉亚亚洲aav综合| 亚洲网红精品大秀在线观看| 亚洲成人免费网站| 国产免费av片在线看| 中文字幕亚洲不卡在线亚瑟| 无码乱人伦一区二区亚洲一| 三年片在线观看免费| 成人免费无毒在线观看网站| 亚洲人成无码网站| 日韩欧美亚洲中文乱码| 久久久免费精品re6| 亚洲 无码 在线 专区| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲欧洲精品无码AV| 国产97视频人人做人人爱免费| 黄网站色在线视频免费观看| 亚洲精品人成无码中文毛片| 亚洲一区在线视频| 成人最新午夜免费视频| 精品国产亚洲AV麻豆 | 亚洲精品无码专区久久同性男| 免费无码婬片aaa直播表情| 999在线视频精品免费播放观看| 亚洲欧洲综合在线| 四虎成人免费影院网址| 亚洲成年人免费网站| 全免费a级毛片免费看| 国产亚洲精品AA片在线观看不加载 | 亚洲mv国产精品mv日本mv| 成人黄动漫画免费网站视频| 亚洲欧美日韩一区二区三区在线| 免费A级毛片无码视频| 亚洲一区二区三区在线| 成人超污免费网站在线看| 国产精品亚洲专区无码不卡| 毛片a级毛片免费播放下载| 女bbbbxxxx另类亚洲| 国产成人精品日本亚洲网站| 中文永久免费观看网站| 久久精品国产亚洲精品| 99久久免费精品高清特色大片|