• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    獲取對象級訪存行為的方法及裝置制造方法及圖紙

    技術編號:7613269 閱讀:222 留言:0更新日期:2012-07-26 21:24
    本發明專利技術提供一種軟硬件結合方式來獲取對象級訪存行為的方法。該方法通過硬件偵聽的方式獲取每個訪存請求中關于物理地址、讀/寫、到達時間的信息;獲取進程頁表信息,實時監控并記錄內核更新頁表的操作;實時監控進程的動態分配和釋放內存的操作,獲取對象的虛擬地址空間信息。并通過整合上述信息得到了精確的對象級訪存行為,為程序調試和性能調優提供豐富的訪存信息。而且該方法不會對程序的執行造成干擾,不會引入額外開銷。

    【技術實現步驟摘要】

    本專利技術涉及程序分析和優化,尤其涉及獲取訪存行為的方法。
    技術介紹
    在進行程序行為分析、程序調試和性能調優時,對象(或變量)級訪存行為分析能夠幫助程序員深入理解程序的性能瓶頸,為程序訪存性能的優化提供指導,也是進行存儲系統結構設計和優化的基礎。目前獲取或分析對象級訪存行為的方式有模擬器,代碼插樁,性能計數器,以及硬件偵聽。模擬器通過靈活控制程序的運行并在指定的地方添加代碼或模塊收集所需要的信息,但是模擬器的速度較慢,難以獲取程序完整執行的訪存行為,而且模擬器的精度與真實機器存在差距。代碼插樁方式使用即時編譯技術在程序運行過程當中,重新編排原程序的代碼并在指定的插樁點位置插入收集信息的代碼。但是代碼插樁的擴展性不好,無法用于大規模的應用,而且會引入額外的訪存開銷及緩存(Cache)污染,對于細粒度的代碼插樁,性能開銷也比較大。性能計數器是現代處理器提供的用于統計程序執行過程中的豐富的事件信息,可以高效地獲得系統的訪存行為特征。但是性能計數器只能獲取一些統計信息,而無法獲取應用完整的訪存序列,無法對應用訪存行為做更深入的分析。硬件偵聽工具一般插在總線上偵聽訪存命令,可以得到完整的訪存地址序列(Trace),而且不會帶來訪存干擾和運行開銷。但是硬件偵聽方式只能獲取底層的物理地址,不能獲取高層事件信息,無法獲取對象級的訪存行為。
    技術實現思路
    因此,本專利技術的目的在于解決純軟件方式獲取訪存行為存在的干擾和較大的性能開銷而硬件偵聽方式無法獲取高層語義信息的問題,通過軟硬件結合方式獲取對象級訪存行為,既能降低開銷又能提高精度。本專利技術的目的是通過以下技術方案實現的一方面,本專利技術提供了一種獲取對象級訪存行為的方法,包括步驟I)通過硬件偵聽的方式捕獲內存總線上的所有訪存請求,獲取每個訪存請求中關于物理地址、讀/寫、到達時間的信息;步驟2)獲取進程頁表信息并實時監控和記錄內核更新頁表的操作;步驟3)實時監控進程的動態分配和釋放內存的操作,獲取對象的虛擬地址空間信息,所述對象的虛擬地址空間信息包括對象標識、對象的起始虛擬地址和對象的大小;步驟4)基于所獲取的物理地址和到達時間信息、進程頁表信息和對象的虛擬地址空間信息來獲得對象的訪存物理地址序列和訪存虛擬地址序列。上述方法中,步驟I)還可以包括將所獲取的物理地址和到達時間信息發送并保存到另一計算裝置的步驟。上述方法中,步驟2)可以包括以下步驟在該方法開始時獲取初始的進程頁表信息,所述進程頁表信息包括進程標識、物理地址、虛擬地址;監控內核更新頁表的操作,記錄每次頁表更新操作的相關信息;在檢測到頁表更新操作的同時,將一個訪問特定保留物理地址空間的同步訪存請求發送到內存總線上。上述方法中,在步驟2)可以通過修改操作系統中更新頁表操作的函數來記錄每次頁表更新操作的相關信息,該信息包括進程標識,物理地址,虛擬地址。上述方法中,所述特定保留物理地址空間僅允許所述同步訪存請求進行訪問,而不允許操作系統對其進行訪問。上述方法中,步驟3)可以通過重載用于分配內存和釋放內存的相關動態庫函數來將對象的標識符、對象的起始地址和對象的大小的信息保存到文件中以獲取對象的虛擬地址空間信息。上述方法中,步驟3)還可以通過分析可執行程序的符號表信息來獲得靜態分配對象及全局對象的虛擬地址空間信息。上述方法中,步驟4)可以包括以下步驟步驟(4-1)根據所獲取的進程頁表信息重新構造進程頁表;步驟(4-2)依次對于每個物理地址,判斷該物理地址是否屬于為同步訪存請求保留的物理地址空間,如果是,則讀取所記錄的與該同步訪問請求相應的頁表更新操作的相關信息來更新進程頁表;否則查詢進程頁表,得到該物理地址所對應的虛擬地址和進程號; 并匹配該虛擬地址落在哪個對象的虛擬地址空間;步驟(4-3)整合得到每個對象的訪存物理地址序列和訪存虛擬地址序列。又一個方面,本專利技術提供了一種獲取對象級訪存行為的裝置,該裝置包括硬件偵聽器,用于通過硬件偵聽的方式捕獲內存總線上的所有訪存請求,獲取每個訪存請求中關于物理地址、讀/寫、到達時間的信息;內核監控器,用于獲取進程頁表信息并實時監控和記錄內核更新頁表的操作;進程監控器,用于實時監控進程的動態分配和釋放內存的操作,獲取對象的虛擬地址空間信息,所述對象的虛擬地址空間信息包括對象標識、對象的起始虛擬地址和對象的大小;整合器,用于基于所獲取的物理地址和到達時間信息、進程頁表信息和對象的虛擬地址空間信息來獲得對象的訪存物理地址序列和訪存虛擬地址序列。與現有技術相比,本專利技術的優點在于使用硬件偵聽的方式獲取訪存請求中的物理地址,不會對程序的執行造成干擾, 不會引入額外開銷。通過修改內核,捕獲更新頁表的操作并將頁表信息導出來,能夠準確地離線重構進程頁表。同時,在進程執行過程中采用重載動態庫的方式捕獲對象的內存地址空間信息。通過整合上述信息得到了精確的對象級訪存行為,為程序調試和性能調優提供豐富的訪存信息。附圖說明以下參照附圖對本專利技術實施例作進一步說明,其中圖I為根據本專利技術實施例的獲取對象級訪存行為的方法的流程示意圖。具體實施例方式為了使本專利技術的目的,技術方案及優點更加清楚明白,以下結合附圖通過具體實施例對本專利技術進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本專利技術, 并不用于限定本專利技術。在介紹本專利技術之前,首先對對象級訪存行為進行簡單介紹。通常,通過對訪存行為的分析可以有助于進行程序分析和優化。例如,通過獲取進程執行過程中的所有訪存地址序列,可以分析進程的訪存行為特征,比如是否連續,或者為固定步長的訪存模式,或者為隨機的訪存,這可用于指導程序的訪存優化。而獲取對象級訪存行為是指獲取進程執行過程中每個對象的所有訪存地址序列,即每個對象的訪存物理地址序列和訪存虛擬地址序列。通過獲取每個對象的地址空間,可以得到每個訪存請求是由哪個對象發出的,分析每個對象的訪存行為特征,這可用于更細粒度的程序優化,如將不同訪存模式的對象放到不同的緩存(Cache)空間中,防止隨機訪存的對象干擾規律訪存的對象。在本專利技術的實施例中,通過捕獲并解析訪存請求來獲取對象級訪存行為。對于每個訪存請求主要獲取以下信息〈物理地址,讀/寫,到達時間,進程標識,虛擬地址,對象標識 >,其中物理地址為本次訪存請求訪問的物理地址,讀/寫指示本次訪存是讀請求還是寫請求,到達時間為訪存請求達到內存命令總線的時間,進程標識為發送本次訪存請求的進程標識(Pid),虛擬地址為本次訪存請求在對應進程虛擬地址空間中的虛地址,對象標識為發送本次訪存請求的對象標識。在下文中也可以將這些信息統稱為訪存信息。在本專利技術的一個實施例中,提出了一種采用軟硬件結合的方式來獲取對象級訪存行為的方法。該方法在硬件方面通過硬件偵聽器獲取包括操作系統,所有進程,以及所有其他發送到內存命令總線上的訪存請求。通過這種硬件偵聽方式可以得到每個訪存請求中的關于物理地址,讀/寫,到達時間的信息。同時該方法在軟件方面,通過獲取進程頁表信息并在內核中監測對所有進程的頁表更新操作;并且在進程執行過程中,監測每個對象的動態分配/釋放內存操作,獲取每個對象的虛擬地址空間信息(例如,每個對象起始地址和大小信息)。然后,離線整合上述所獲取信息來獲得對象級的訪存行為。例如,可以通過根據進程頁表信本文檔來自技高網...

    【技術保護點】

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:陳荔城包云崗崔澤漢黃永兵陳明宇
    申請(專利權)人:中國科學院計算技術研究所
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    相關領域技術
    主站蜘蛛池模板: heyzo专区无码综合| 无码一区二区三区在线观看| 亚洲国产精品无码专区| 色综合久久久久无码专区| 色综合久久久无码中文字幕| 人妻无码人妻有码中文字幕| 少妇特殊按摩高潮惨叫无码| 精品无码国产一区二区三区AV | 久久青青草原亚洲av无码| 亚洲乱码无码永久不卡在线| 永久免费无码日韩视频| 精品人妻系列无码一区二区三区| 特级无码毛片免费视频| 国产免费av片在线无码免费看| 精品深夜AV无码一区二区老年| 亚洲色无码专区在线观看| 性饥渴少妇AV无码毛片| 久久久久久亚洲av无码蜜芽| 无码精品国产VA在线观看| 一本大道东京热无码一区| 秋霞无码一区二区| 国产精品VA在线观看无码不卡| 老司机无码精品A| 亚洲av无码成人精品区一本二本 | 无码午夜人妻一区二区三区不卡视频| 国产精品久久无码一区二区三区网| 无码人妻精品一区二区在线视频| 精品无码久久久久久久动漫| 小12箩利洗澡无码视频网站| 久久中文字幕无码一区二区| 亚洲av日韩aⅴ无码色老头| 92午夜少妇极品福利无码电影| 无码人妻丰满熟妇区五十路百度| 亚洲熟妇无码AV在线播放| 亚洲av永久无码精品漫画| 久久午夜无码鲁丝片直播午夜精品| 亚洲桃色AV无码| 人妻中文字幕无码专区| 中文字幕日产无码| 成人免费无码大片A毛片抽搐| 亚洲精品无码av天堂|