午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種信息處理方法以及信息處理裝置的制造方法

文檔序號:8457186閱讀:445來源:國知局
一種信息處理方法以及信息處理裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息處理領(lǐng)域,尤其涉及一種信息處理方法以及信息處理裝置。
【背景技術(shù)】
[0002]中間件(middleware)是一種獨立的系統(tǒng)軟件或服務(wù)程序,是處于操作系統(tǒng)、數(shù)據(jù)庫和應(yīng)用程序之間的軟件,有時被視為操作系統(tǒng)或數(shù)據(jù)庫的一部分,有時也被認為是應(yīng)用程序的一部分,例如在業(yè)務(wù)運營支撐系統(tǒng)(Business&Operat1n Support System, BOSS)中,其處于操作系統(tǒng)、數(shù)據(jù)庫和應(yīng)用程序之間,主要承載了核心業(yè)務(wù)邏輯的運行。
[0003]隨著社會的進一步發(fā)展,需求膨脹、業(yè)務(wù)浪涌導致硬件資源開銷不斷膨脹,JVM中間件承載的應(yīng)用程序的性能問題也逐步凸現(xiàn)出來,諸如接口連接不及時釋放、批量業(yè)務(wù)導致的大規(guī)模內(nèi)存分配、第三方應(yīng)用程序的缺陷甚至中間件本身的缺陷等引發(fā)了內(nèi)存泄漏,給生產(chǎn)運營造成了很大的破壞性影響。這需要維護人員及時發(fā)現(xiàn)并反饋給研發(fā)修改,但周期長、效率低。
[0004]目前,為定位發(fā)生內(nèi)存泄露的位置,以中間件為基于JVM(Java Virtual Machine,Java虛擬機)的中間件為例,通常通過對內(nèi)存進行分析的方式來進行定位,例如轉(zhuǎn)儲JVM堆內(nèi)存,按照內(nèi)存空間消耗百分比進行對象排名,排名較靠前的對象判斷為內(nèi)存泄漏的中間產(chǎn)物,并在中間件環(huán)境中搜索和中間產(chǎn)物存在引用關(guān)系的程序,最終定位發(fā)生內(nèi)存泄露的位置。
[0005]但在生產(chǎn)環(huán)境下,也即與中間件相連的系統(tǒng)以及應(yīng)用處于運行狀態(tài)時,現(xiàn)有的堆內(nèi)存分析方式具有較大的侵入性,轉(zhuǎn)儲堆內(nèi)存的方式會讓Java進程處于假死狀態(tài),業(yè)務(wù)響應(yīng)停滯;也可以啟動Java進程的調(diào)試模式,使用外部代理程序?qū)Χ褍?nèi)存進行調(diào)試,窺探堆內(nèi)存中內(nèi)存對象的回收情況,這種方式在生產(chǎn)環(huán)境運行下調(diào)試有很大風險,如果被調(diào)試的內(nèi)容處于關(guān)鍵路徑上,會導致線程被阻塞,對外服務(wù)終止,同樣會導致業(yè)務(wù)響應(yīng)停滯。
[0006]因此,現(xiàn)有技術(shù)中存在通過堆內(nèi)存分析定位發(fā)生內(nèi)存泄露的位置的方式具有較大的侵入性,繼而導致中間件業(yè)務(wù)響應(yīng)停滯的技術(shù)問題。

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

[0007]本發(fā)明實施例通過提供一種信息處理方法以及電子設(shè)備,用以解決現(xiàn)有技術(shù)中存在的通過堆內(nèi)存分析定位發(fā)生內(nèi)存泄露的位置的方式具有較大的侵入性,繼而導致中間件業(yè)務(wù)響應(yīng)停滯的技術(shù)問題。
[0008]本發(fā)明實施例提供了一種信息處理方法,包括:在中間件運行時,確定所述中間件的運行堆棧中需要被記錄的運行對象;記錄所述需要被記錄的運行對象的運行時特征;根據(jù)所述運行時特征,確定所述需要被記錄的運行對象中的發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊。
[0009]可選地,所述確定所述中間件的運行堆棧中需要被記錄的運行對象,具體包括:通過所述運行堆棧的對象摘要列表,獲得位于所述對象摘要列表中前M位的M個運行對象,其中M為大于等于2的整數(shù),所述對象摘要列表為按照占據(jù)所述運行堆棧的存儲容量從大到小的方式對運行對象排序后的列表;對所述運行堆棧執(zhí)行全量垃圾搜集處理,并確定所述M個運行對象中位于所述對象摘要列表中前M位的N個運行對象,其中N為小于等于M的正整數(shù);在所述N個運行對象在所述中間件的引用隊列上的數(shù)量超過第一預設(shè)門限值時,確定所述N個運行對象為所述需要被記錄的運行對象。
[0010]可選地,在所述獲得位于所述對象摘要列表中前M位的M個運行對象之前,所述方法還包括:屏蔽所述對象摘要列表中的指定運行對象,以及屏蔽在所述引用隊列上的數(shù)量小于第二預設(shè)門限值的運行對象,所述第二預設(shè)門限值小于所述第一預設(shè)門限值。
[0011]可選地,所述記錄所述需要被記錄的運行對象的運行時特征,具體為:記錄所述需要被記錄的運行對象初始化的第一線程堆棧信息以及銷毀時的第二線程堆棧信息和/或記錄所述需要被記錄的運行對象建立套接字連接的目標地址和端口號;所述根據(jù)所述運行時特征,確定所述運行堆棧內(nèi)的發(fā)生內(nèi)存泄露的運行對象對應(yīng)的業(yè)務(wù),具體為:基于所述第一線程堆棧信息和所述第二堆棧線程堆棧信息,確定所述運行堆棧內(nèi)的所述發(fā)生內(nèi)存泄露的運行對象對應(yīng)的所述應(yīng)用程序中的業(yè)務(wù)模塊;和/或基于所述建立套接字連接的目標地址和端口號,確定所述運行堆棧內(nèi)的所述發(fā)生內(nèi)存泄露的運行對象對應(yīng)的所述應(yīng)用程序中的業(yè)務(wù)模塊。
[0012]可選地,在所述記錄所述需要被記錄的運行對象初始化的第一線程堆棧信息以及銷毀時的第二線程堆棧信息和/或記錄所述需要被記錄的運行對象建立套接字連接的目標地址和端口號的同時,所述方法還包括:記錄所述需要被記錄的運行對象的實例化數(shù)量,并建立所述實例化數(shù)量與所述運行堆棧之間的對應(yīng)關(guān)系。
[0013]本發(fā)明實施例另一方面還提供了一種信息處理裝置,包括:第一確定單元,用于在中間件運行時,確定所述中間件的運行堆棧中需要被記錄的運行對象;記錄單元,用于記錄所述需要被記錄的運行對象的運行時特征;第二確定單元,用于根據(jù)所述運行時特征,確定所述需要被記錄的運行對象中的發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊。
[0014]可選地,所述第一確定單元具體用于通過所述運行堆棧的對象摘要列表,獲得位于所述對象摘要列表中前M位的M個運行對象,其中M為大于等于2的整數(shù),所述對象摘要列表為按照占據(jù)所述運行堆棧的存儲容量從大到小的方式對運行對象排序后的列表,并對所述運行堆棧執(zhí)行全量垃圾搜集處理,并確定所述M個運行對象中位于所述對象摘要列表中前M位的N個運行對象,其中N為小于等于M的正整數(shù),并在所述N個運行對象在所述中間件的引用隊列上的數(shù)量超過第一預設(shè)門限值時,確定所述N個運行對象為所述需要被記錄的運行對象。
[0015]可選地,所述裝置還包括屏蔽單元,用于在所述獲得位于所述對象摘要列表中前M位的M個運行對象之前,屏蔽所述對象摘要列表中的指定運行對象,以及屏蔽在所述引用隊列上的數(shù)量小于第二預設(shè)門限值的運行對象,所述第二預設(shè)門限值小于所述第一預設(shè)門限值。
[0016]可選地,所述記錄單元具體用于記錄所述需要被記錄的運行對象初始化的第一線程堆棧信息以及銷毀時的第二線程堆棧信息和/或記錄所述需要被記錄的運行對象建立套接字連接的目標地址和端口號;所述第二確定單元,具體用于基于所述第一線程堆棧信息和所述第二堆棧線程堆棧信息,確定所述運行堆棧內(nèi)的所述發(fā)生內(nèi)存泄露的運行對象對應(yīng)的所述應(yīng)用程序中的業(yè)務(wù)模塊;和/或基于所述建立套接字連接的目標地址和端口號,確定所述運行堆棧內(nèi)的所述發(fā)生內(nèi)存泄露的運行對象對應(yīng)的所述應(yīng)用程序中的業(yè)務(wù)模塊。
[0017]可選地,所述記錄單元具體還用于記錄所述需要被記錄的運行對象的實例化數(shù)量,并建立所述實例化數(shù)量與所述運行堆棧之間的對應(yīng)關(guān)系。
[0018]本發(fā)明實施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點:
[0019]1、由于采用了在中間件運行時,確定中間件的運行堆棧中需要被記錄的運行對象,并記錄需要被記錄的運行對象的運行時特征,并根據(jù)運行時特征,確定需要被記錄的運行對象中的發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊的技術(shù)方案,不會直接訪問中間件的運行堆棧中的運行對象,而是記錄該運行對象的運行時特征,并根據(jù)該運行時特征,確定出發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊,對實際業(yè)務(wù)沒有侵入性,所以解決了現(xiàn)有技術(shù)中存在的通過堆內(nèi)存分析定位發(fā)生內(nèi)存泄露的位置的方式具有較大的侵入性,繼而導致中間件業(yè)務(wù)響應(yīng)停滯的技術(shù)問題,減小了對生產(chǎn)環(huán)境的侵入性,從而實現(xiàn)了在確定了發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊的同時,保證了生產(chǎn)環(huán)境正常運行的技術(shù)效果。
[0020]2、由于采用了通過運行堆棧的對象摘要列表,獲得位于對象摘要列表中前M位的M個運行對象,并對運行堆棧執(zhí)行全量垃圾搜集處理,并確定M個運行對象中位于對象摘要列表中前M位的N個運行對象,并在N個運行對象在中間件的引用隊列上的數(shù)量超過第一預設(shè)門限值時,確定N個運行對象為需要被記錄的運行對象的技術(shù)方案,不需要通過人為經(jīng)驗判斷來確定發(fā)生內(nèi)存泄露的對象,所以避免了現(xiàn)有技術(shù)中需要豐富的人為經(jīng)驗判斷才能夠確定出有發(fā)生內(nèi)存泄露的對象的缺陷,提高了需要被記錄的運行對象的準確性,從而降低了系統(tǒng)記錄需要被記錄的運行對象的資源消耗。
【附圖說明】
[0021]圖1為本發(fā)明實施例提供的信息處理方法的流程圖;
[0022]圖2為根據(jù)本發(fā)明實施例提供的信息處理方法,確定需要被記錄的運行對象中的發(fā)生內(nèi)存泄露的運行對象對應(yīng)的應(yīng)用程序中的業(yè)務(wù)模塊的示意圖;
[0023]圖3為本發(fā)明實施例提供的監(jiān)聽器的工作流程圖;
[0024]圖4為本發(fā)明實施例提供的監(jiān)聽器記錄時的示意圖;
[0025]圖5為本發(fā)明實施例提供的建立需要被記錄的運行對象的實例化數(shù)量與運行堆找之間的對應(yīng)關(guān)系的不意圖;
[0026]圖6A和圖6B是本發(fā)明實施例對于多個運行對象處于不同的加載順序?qū)蛹壍那闆r的部署示意圖;
[0027]圖7為本發(fā)明實施例提供的信息處理裝置的功能模塊圖。
【具體實施方式】
[0028]本發(fā)明實施例通過提供一種信息處理方法以及電子設(shè)備,用以解決現(xiàn)有技術(shù)中存在的通過堆內(nèi)存分析定位發(fā)生內(nèi)存泄露的位置的方式具有較大的侵入性,繼而導致中間件業(yè)務(wù)響應(yīng)停滯的技術(shù)問題。
當前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1