国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種對內(nèi)存溢出進行控制的方法和設備的制作方法

      文檔序號:6498961閱讀:183來源:國知局
      一種對內(nèi)存溢出進行控制的方法和設備的制作方法
      【專利摘要】本發(fā)明公開了一種對內(nèi)存溢出進行控制的方法和設備,其內(nèi)容包括:在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息,并在從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之后,執(zhí)行判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,并在判斷結(jié)果為小于時停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,與現(xiàn)有技術(shù)相比,限制了寫入內(nèi)存中數(shù)據(jù)對象的數(shù)量,既避免了內(nèi)存申請過程中出現(xiàn)溢出的情況,又可以對內(nèi)存溢出進行快速定位,提高了Java應用服務器的工作效率,提升了Java應用服務器系統(tǒng)的穩(wěn)定性和可靠性。
      【專利說明】一種對內(nèi)存溢出進行控制的方法和設備
      【技術(shù)領域】
      [0001]本發(fā)明涉及計算機控制領域,尤其涉及一種對內(nèi)存溢出進行控制的方法和設備。【背景技術(shù)】
      [0002]隨著Java EE平臺在企業(yè)級應用中占有的份額越來越多,作為平臺基礎組件的Java應用服務器的性能和可靠性已經(jīng)成為日常運營、維護和管理工作的重點。常見的影響Java應用服務器正常運行的問題主要有以下3類:1)線程池問題;2)連接池問題;3)內(nèi)存溢出問題。在這些問題中,線程池和連接池問題一般是因為配置不當引起的,容易處理,即使是不常見的連接泄漏和線程掛起問題,通過跟蹤分析也能定位出問題發(fā)生的根源。
      [0003]然而,內(nèi)存溢出(Out Of Memory)是一類對Java應用服務器的運行性能造成重大影響又難以診斷的問題。由于在Java應用服務器啟動時,通常會預先分配一塊Java堆作為運行期間產(chǎn)生數(shù)據(jù)對象的存儲空間,數(shù)據(jù)對象被創(chuàng)建出來后就需要在Java堆中分配一塊地址空間,當Java堆中沒有連續(xù)的地址空間可以滿足數(shù)據(jù)對象的內(nèi)存申請時,系統(tǒng)將觸發(fā)垃圾回收線程進行垃圾回收操作,釋放內(nèi)存中的數(shù)據(jù)對象,但是如果連續(xù)幾次垃圾回收線程操作完成后Java堆中仍然不能滿足數(shù)據(jù)對象的內(nèi)存申請時就會導致內(nèi)存溢出問題的發(fā)生,但是當Java應用服務器一旦發(fā)生內(nèi)存溢出,將會對Java應用服務器系統(tǒng)的運行帶來極大的挑戰(zhàn)。
      [0004]由于當Java應用服務器中出現(xiàn)內(nèi)存溢出時,從垃圾回收日志中可以看到Java應用服務器中垃圾回收線程的操作頻率呈增加趨勢,單個垃圾回收線程的操作周期增長,Java堆被頻繁的執(zhí)行標記、清除、回收與壓縮等垃圾回收操作,這樣使得Java應用服務器中的CPU主要應用于垃圾回收工作,并且Java堆中的空閑空間又相對較少,導致內(nèi)存溢出的線程鎖持續(xù)工作,使得其他線程申請內(nèi)存的操作只能處于等待狀態(tài),嚴重影響了 Java應用服務器的工作的性能,對客戶端的請求響應速度變的異常慢,使得客戶端長時間得不到Java應用服務器的正常響應,在情況嚴重時,Java應用服務器將陷入內(nèi)存溢出問題的死循環(huán),只能通過關(guān)閉Java堆進程,并重啟Java應用服務器才能結(jié)束這種現(xiàn)象。
      [0005]由于Java應用服務器采用線程模式工作,一個進程內(nèi)運行著許多線程,這些線程間共享內(nèi)存、連接池等各種資源,在現(xiàn)有技術(shù)中,通過配置參數(shù)設置工作線程數(shù)的范圍,但是在對每一個線程申請內(nèi)存方面沒有約束,容易出現(xiàn)內(nèi)存申請量大的情況,在這種情況下極容易觸發(fā)內(nèi)存溢出,進而導致Java應用服務器不可用,降低Java應用服務器的工作效率。
      [0006]綜上所述,在現(xiàn)有技術(shù)中,存在內(nèi)存溢出導致的Java應用服務器的工作效率低的問題。

      【發(fā)明內(nèi)容】

      [0007]本發(fā)明實施例提供了一種對內(nèi)存溢出進行控制的方法和設備,用于解決現(xiàn)有技術(shù)中存在內(nèi)存溢出導致的Java應用服務器的工作效率低的問題。[0008]一種對內(nèi)存溢出進行控制的方法,包括:
      [0009]在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息;
      [0010]針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作:
      [0011]從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中;
      [0012]判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象。
      [0013]一種對內(nèi)存溢出進行控制的設備,包括:
      [0014]發(fā)送模塊,用于在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息;
      [0015]控制模塊,用于針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作:
      [0016]從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中;
      [0017]判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象。
      [0018]本發(fā)明有益效果如下:
      [0019]本發(fā)明實施例在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息,并在從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之后,執(zhí)行判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,與現(xiàn)有技術(shù)相比,限制了寫入內(nèi)存中數(shù)據(jù)對象的數(shù)量,既避免了內(nèi)存申請過程中出現(xiàn)溢出的情況,又可以對內(nèi)存溢出進行快速定位,提高了 Java應用服務器的工作效率,提升了 Java應用服務器系統(tǒng)的穩(wěn)定性和可靠性。
      【專利附圖】

      【附圖說明】
      [0020]圖1為本發(fā)明實施例一的一種對內(nèi)存溢出進行控制的方法的流程圖;
      [0021]圖2為本發(fā)明實施例二的一種對內(nèi)存溢出進行控制的設備的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0022]為了實現(xiàn)本發(fā)明的目的,本發(fā)明實施例提供了一種對內(nèi)存溢出進行控制的方法和設備,在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息,并在從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之后,執(zhí)行判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否貝U,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,與現(xiàn)有技術(shù)相比,限制了寫入內(nèi)存中數(shù)據(jù)對象的數(shù)量,既避免了內(nèi)存申請過程中出現(xiàn)溢出的情況,又可以對內(nèi)存溢出進行快速定位,提高了 Java應用服務器的工作效率,提升了 Java應用服務器系統(tǒng)的穩(wěn)定性和可靠性。
      [0023]下面結(jié)合說明書附圖對本發(fā)明各個實施例進行詳細描述。
      [0024]實施例一:
      [0025]如圖1所示,為本發(fā)明實施例一的一種對內(nèi)存溢出進行控制的方法的流程圖,所述方法包括:
      [0026]步驟101:在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息。
      [0027]具體地,在步驟101中,由于在業(yè)務支撐運營系統(tǒng)中,當客戶端向服務器側(cè)發(fā)送業(yè)務執(zhí)行消息時,Java應用服務器將給待執(zhí)行的業(yè)務分配內(nèi)存空間,一般通過將待執(zhí)行的業(yè)務所使用的數(shù)據(jù)對象寫入內(nèi)存中,因此,在Java應用服務器接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息,該數(shù)據(jù)查詢消息用于從數(shù)據(jù)庫服務器中獲取與待執(zhí)行的業(yè)務相關(guān)的數(shù)據(jù)對象。
      [0028]步驟102:針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作:
      [0029]步驟1021:從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中。
      [0030]具體地,在步驟1021中,由于Java應用服務器中數(shù)據(jù)對象保存的方式采用數(shù)組方式,在數(shù)組長度較長時,將導致用戶無法獲取該數(shù)據(jù)對象,出現(xiàn)內(nèi)存溢出,因此在確定需要從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象時,執(zhí)行以下操作:
      [0031]首先,確定該所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象占用內(nèi)存空間的大小值。
      [0032]其次,將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較。
      [0033]具體地,所述將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較,具體包括:
      [0034]將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行作差運算,得到差的數(shù)值,并判斷所述得到的差的數(shù)值是否大于設定的數(shù)值;
      [0035]當所述得到的差的數(shù)值大于設定的數(shù)值,則確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值;當所述得到的差的數(shù)值不大于設定的數(shù)值,則確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值。
      [0036]第三,根據(jù)比較結(jié)果,選擇執(zhí)行操作。
      [0037]具體地,當所述確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,執(zhí)行將讀取到的數(shù)據(jù)對象寫入內(nèi)存中的操作;
      [0038]當所述確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,發(fā)出異常告警消息并停止操作。
      [0039]具體地,所述將讀取到的數(shù)據(jù)對象寫入內(nèi)存中,具體包括:
      [0040]首先,按照讀取數(shù)據(jù)對象的順序,將得到的數(shù)據(jù)對象存儲在數(shù)組類型的隊列中。
      [0041]例如:從數(shù)據(jù)庫服務器中逐條讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象依次寫入Map類型數(shù)組中。
      [0042]其次,將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中。
      [0043]例如:依次將Map類型數(shù)組中包含的數(shù)據(jù)對象添加至內(nèi)存的List類型數(shù)組中。[0044]步驟1022:判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則執(zhí)行步驟1023 ;否則,執(zhí)行步驟1024。
      [0045]其中,所述設定的閾值是為了防止內(nèi)存中剩余的空間容量較小導致出現(xiàn)內(nèi)存溢出,這里設定的閾值可以根據(jù)經(jīng)驗確定,也可以根據(jù)需要確定,不做具體限定。
      [0046]在實際應用中,為了避免內(nèi)存溢出,將確定的閾值通過以下方式寫入內(nèi)存中,在對內(nèi)存執(zhí)行寫入操作時使用:
      [0047]第一步:根據(jù)JAVAJTOME變量找到JDK目錄;
      [0048]第二步:在確定的JDK的bin目錄下執(zhí)行java - fullversion語句,并獲取版本信
      肩、O
      [0049]例如:javafull version〃J2REl.5.0IBM AIX build pap64devifx-20110211c (SR12FP3+IZ94331)"
      [0050]第三步:執(zhí)行第二步之后,從lib目錄得到core, jar文件。
      [0051]第四步:根據(jù)得到的core, jar文件,查找到對應的src.jar文件,進一步得到List類型源程序。
      [0052]第五步:在得到List類型源程序之后,通過編輯器中對應的版本,修改并編譯List類型的容量擴展方法,根據(jù)經(jīng)驗對內(nèi)部數(shù)組大小設置閾值。
      [0053]例如:if(newcount>1048576){
      [0054]throw new Runtime Exception("字符串對象太大["+newcount+"] " );}
      [0055]第六步:把修改后的List類打包到core, jar文件。
      [0056]第七步:將打包后的core, jar文件覆蓋JDK中原來的core, jar文件,并重啟應用服務器,完成對確定的閾值的寫入。
      [0057]這樣實現(xiàn)了使用自定義的List類型替換JDK原有類型,在新的List類型中是此案對數(shù)組長度閾值的限定,避免了數(shù)組長度無限增長導致內(nèi)存溢出的問題。
      [0058]步驟1023:停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行步驟103。
      [0059]步驟1024:繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,返回執(zhí)行步驟1021。
      [0060]步驟103:在將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中之后,對寫入內(nèi)存中的數(shù)據(jù)對象進行渲染處理,并發(fā)送給客戶端。
      [0061]通過本發(fā)明實施例一的方案,在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息,并在從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之后,執(zhí)行判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,與現(xiàn)有技術(shù)相比,限制了寫入內(nèi)存中數(shù)據(jù)對象的數(shù)量,既避免了內(nèi)存申請過程中出現(xiàn)溢出的情況,又可以對內(nèi)存溢出進行快速定位,提高了 Java應用服務器的工作效率,提升了 Java應用服務器系統(tǒng)的穩(wěn)定性和可靠性。
      [0062]實施例二:
      [0063]如圖2所示,為本發(fā)明實施例二的一種對內(nèi)存溢出進行控制的設備的結(jié)構(gòu)示意圖,所述設備包括:發(fā)送模塊11和控制模塊12,其中:
      [0064]發(fā)送模塊11,用于在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息;
      [0065]控制模塊12,用于針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作:
      [0066]從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中;
      [0067]判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象。
      [0068]較優(yōu)地,所述設備還包括:比較模塊13,其中:
      [0069]比較模塊13,用于從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象之后,將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之前,確定該所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象占用內(nèi)存空間的大小值,并將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較;
      [0070]當所述確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,觸發(fā)控制模塊;
      [0071]當所述確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,發(fā)出異常告警消息并停止操作。
      [0072]具體地,所述比較模塊13,具體用于將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行作差運算,得到差的數(shù)值,并判斷所述得到的差的數(shù)值是否大于設定的數(shù)值;
      [0073]當所述得到的差的數(shù)值大于設定的數(shù)值,則確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值;當所述得到的差的數(shù)值不大于設定的數(shù)值,則確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值。
      [0074]所述控制模塊12,具體用于按照讀取數(shù)據(jù)對象的順序,將得到的數(shù)據(jù)對象存儲在數(shù)組類型的隊列中,并將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中。
      [0075]較優(yōu)地,所述設備還包括:處理模塊14,其中:
      [0076]處理模塊14,用于在將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中之后,對寫入內(nèi)存中的數(shù)據(jù)對象進行渲染處理,并發(fā)送給客戶端。
      [0077]顯然,本領域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
      【權(quán)利要求】
      1.一種對內(nèi)存溢出進行控制的方法,其特征在于,包括: 在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息; 針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作: 從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中; 判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象。
      2.如權(quán)利要求1所述的方法,其特征在于,所述從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象之后,將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之前,所述方法還包括: 確定該所述數(shù)據(jù)對象 標識對應的數(shù)據(jù)對象占用內(nèi)存空間的大小值; 將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較; 當所述確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,執(zhí)行將讀取到的數(shù)據(jù)對象寫入內(nèi)存中的操作; 當所述確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,發(fā)出異常告警消息并停止操作。
      3.如權(quán)利要求2所述的方法,其特征在于,所述將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較,具體包括: 將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行作差運算,得到差的數(shù)值; 判斷所述得到的差的數(shù)值是否大于設定的數(shù)值; 當所述得到的差的數(shù)值大于設定的數(shù)值,則確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值;當所述得到的差的數(shù)值不大于設定的數(shù)值,則確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值。
      4.如權(quán)利要求1所述的方法,其特征在于,所述將讀取到的數(shù)據(jù)對象寫入內(nèi)存中,具體包括: 按照讀取數(shù)據(jù)對象的順序,將得到的數(shù)據(jù)對象存儲在數(shù)組類型的隊列中; 將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中。
      5.如權(quán)利要求4所述的方法,其特征在于,在將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中之后,所述方法還包括: 對寫入內(nèi)存中的數(shù)據(jù)對象進行渲染處理,并發(fā)送給客戶端。
      6.一種對內(nèi)存溢出進行控制的設備,其特征在于,包括: 發(fā)送模塊,用于在接收到攜帶了至少一個數(shù)據(jù)對象標識的寫入內(nèi)存消息時,根據(jù)所述數(shù)據(jù)對象標識向數(shù)據(jù)庫服務器發(fā)送數(shù)據(jù)查詢消息; 控制模塊,用于針對每一個待讀取數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,執(zhí)行以下操作: 從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象,并將讀取到的數(shù)據(jù)對象寫入內(nèi)存中; 判斷本地內(nèi)存的剩余空間容量值是否小于設定的閾值,若小于,則停止讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象;否則,繼續(xù)讀取下一個數(shù)據(jù)對象標識對應的數(shù)據(jù)對象。
      7.如權(quán)利要求6所述的設備,其特征在于,所述設備還包括: 比較模塊,用于從數(shù)據(jù)庫服務器中讀取一個所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象之后,將讀取到的數(shù)據(jù)對象寫入內(nèi)存中之前,確定該所述數(shù)據(jù)對象標識對應的數(shù)據(jù)對象占用內(nèi)存空間的大小值,并將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行比較; 當所述確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,觸發(fā)控制模塊; 當所述確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值時,發(fā)出異常告警消息并停止操作。
      8.如權(quán)利要求7所述的設備,其特征在于, 所述比較模塊,具體用于將所述確定的大小值與本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值進行作差運算,得到差的數(shù)值,并判斷所述得到的差的數(shù)值是否大于設定的數(shù)值; 當所述得到的差的數(shù)值大于設定的數(shù)值,則確定的大小值大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值;當所述得到的差的數(shù)值不大于設定的數(shù)值,則確定的大小值不大于本地內(nèi)存能夠存放數(shù)據(jù)對象的空間容量值。
      9.如權(quán)利要求6所述的設備,其特征在于, 所述控制模塊,具體用于按照讀取數(shù)據(jù)對象的順序,將得到的數(shù)據(jù)對象存儲在數(shù)組類型的隊列中,并將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中。
      10.如權(quán)利要求9所述的設備,其特征在于,所述設備還包括: 處理模塊,用于在將得到的數(shù)據(jù)類型的隊列寫入內(nèi)存中之后,對寫入內(nèi)存中的數(shù)據(jù)對象進行渲染處理,并發(fā)送給客戶端。
      【文檔編號】G06F17/30GK103927305SQ201310011068
      【公開日】2014年7月16日 申請日期:2013年1月11日 優(yōu)先權(quán)日:2013年1月11日
      【發(fā)明者】朱祥磊 申請人:中國移動通信集團山東有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1