[發(fā)明專利]用于診斷數(shù)據(jù)的基于活動(dòng)的采樣的系統(tǒng)和方法有效
| 申請(qǐng)?zhí)枺?/td> | 201480038423.0 | 申請(qǐng)日: | 2014-05-02 |
| 公開(公告)號(hào): | CN105408873B | 公開(公告)日: | 2018-02-13 |
| 發(fā)明(設(shè)計(jì))人: | D·J·泰勒;V·P·莫里森;C·拉杜;B·P·埃倫特 | 申請(qǐng)(專利權(quán))人: | 微軟技術(shù)許可有限責(zé)任公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36;G06F11/34 |
| 代理公司: | 上海專利商標(biāo)事務(wù)所有限公司31100 | 代理人: | 段登新 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 診斷 數(shù)據(jù) 基于 活動(dòng) 采樣 | ||
背景
程序的源代碼可在理解程序的行為的方面非常有用。但是商業(yè)計(jì)算系統(tǒng)中 的大多數(shù)(即便不是全部)有用計(jì)算太復(fù)雜而不能在精神上重建。具體而言, 面對(duì)創(chuàng)建、調(diào)試或者提升商業(yè)計(jì)算系統(tǒng)的甚至極有經(jīng)驗(yàn)且有能力的軟件開發(fā)者 不僅僅依賴于對(duì)源代碼的視覺檢查或依賴于在思想上或在紙面上模擬軟件執(zhí) 行的嘗試。相反,開發(fā)者執(zhí)行軟件以便觀察在執(zhí)行期間軟件做什么或無法做什 么。
為了改善其在執(zhí)行期間對(duì)軟件的動(dòng)作的理解,開發(fā)者使用諸如調(diào)試器、剖 析器(profiler)、嵌入的打印語句、以及診斷日志之類的工具,這些工具提供 了軟件執(zhí)行時(shí)的附加數(shù)據(jù)。對(duì)程序的檢查隨后可通過檢查工具所提供的數(shù)據(jù)來 輔助。然而,這些軟件開發(fā)工具中的每個(gè)工具還提出了技術(shù)挑戰(zhàn),例如,如何 獲得工具數(shù)據(jù)而不更改被檢查程序的無工具行為,以及如何避免將工具數(shù)據(jù)埋 葬在無關(guān)數(shù)據(jù)的洪流中,以及如何按照改善開發(fā)者對(duì)被檢查的程序的理解的方 式將不同工具數(shù)據(jù)段彼此連接。
概述
本文描述的一些實(shí)施例涉及如何獲得關(guān)于軟件程序的有用診斷數(shù)據(jù)而不 將該有用數(shù)據(jù)埋葬在不相關(guān)數(shù)據(jù)的洪流中的技術(shù)問題。一些實(shí)施例還涉及如何 將不同診斷數(shù)據(jù)段彼此連接來幫助改善開發(fā)者對(duì)正被診斷的程序的理解(特別 是該程序跨多個(gè)執(zhí)行線程時(shí))的技術(shù)問題。
從架構(gòu)角度,一些實(shí)施例提供了使用與一個(gè)或多個(gè)處理器操作地通信的存 儲(chǔ)器提供診斷數(shù)據(jù)的基于活動(dòng)的采樣。駐留于存儲(chǔ)器中的事件定義集合定義了 開發(fā)者相信可闡明應(yīng)用程序的行為的事件。該應(yīng)用還駐留在所述存儲(chǔ)器中并具 有被配置成調(diào)用至少一個(gè)日志事件規(guī)程的應(yīng)用代碼。當(dāng)前活動(dòng)id指定該應(yīng)用的 活動(dòng)是否當(dāng)前被開發(fā)者指明或代表開發(fā)者指明。當(dāng)某個(gè)活動(dòng)當(dāng)前被指明時(shí),當(dāng)前活動(dòng)id還指定哪個(gè)活動(dòng)當(dāng)前被指明。
在一些實(shí)施例中,駐留于所述存儲(chǔ)器中的記錄器具有記錄器代碼,所述記 錄器代碼被配置成與所述處理器和存儲(chǔ)器交互以檢查指定記錄條件的集合并 在至少一個(gè)指定記錄條件被滿足時(shí)響應(yīng)于日志事件規(guī)程的調(diào)用而向日志發(fā)送 日志條目。該記錄器包括啟用日志的活動(dòng)的集合,且還包括具有相應(yīng)采樣頻率 條件的一個(gè)或多個(gè)開始事件的集合。每個(gè)開始事件是在事件定義集合中定義的 事件(盡管不必然在那里被定義為開始事件)。
在一些實(shí)施例中,指定記錄條件包括指定當(dāng)前活動(dòng)id存在于該啟用日志的 活動(dòng)的集合中的第一條件。在一些實(shí)施例中,指定記錄條件還包括指定以下的 第二條件:當(dāng)前活動(dòng)id不在該啟用日志的活動(dòng)的集合中,該日志事件規(guī)程標(biāo)識(shí) 304開始事件,且該日志事件規(guī)程的調(diào)用與該開始事件的采樣頻率條件相一致。
在一些實(shí)施例中,開始事件采樣頻率指定該日志事件規(guī)程的調(diào)用是對(duì)于具 有每N次日志事件規(guī)程調(diào)用一個(gè)日志條目的采樣頻率的開始事件的第N次記錄 嘗試。在這些和/或其它實(shí)施例中,開始事件采樣頻率指定在指定時(shí)間段內(nèi)存在 少于M個(gè)的開始事件。
一些實(shí)施例包括被配置成設(shè)置當(dāng)前活動(dòng)id的至少一個(gè)設(shè)置活動(dòng)id規(guī)程調(diào) 用。該設(shè)置活動(dòng)id規(guī)程調(diào)用駐留于以下的至少一者中:該應(yīng)用代碼,包括用于 支持該應(yīng)用代碼的運(yùn)行時(shí)的框架。具體而言,該應(yīng)用可以是C++應(yīng)用,且該框 架可包括熟悉的標(biāo)準(zhǔn)C++庫。
在一些實(shí)施例中,該應(yīng)用是多線程應(yīng)用。在一些實(shí)施例中,該實(shí)施例包括 標(biāo)識(shí)該應(yīng)用的執(zhí)行期間該應(yīng)用的當(dāng)前執(zhí)行線程的當(dāng)前線程id。在一些實(shí)施例中, 至少一個(gè)日志條目包含當(dāng)前線程id(“當(dāng)前”意思是日志條目創(chuàng)建的當(dāng)前)。
一些實(shí)施例包括具有相應(yīng)活動(dòng)id的線程id的集合。記錄器代碼被配置成 通過在線程id集合中查找當(dāng)前線程id來尋找相應(yīng)活動(dòng)id并使用該活動(dòng)id作為 當(dāng)前活動(dòng)id來檢索當(dāng)前活動(dòng)id。
一些實(shí)施例包括性能監(jiān)視器或其它日志消費(fèi)器,其可在該應(yīng)用內(nèi)或應(yīng)用 外。日志消費(fèi)器的代碼被配置成向記錄器發(fā)送采樣配置消息來將至少一個(gè)事件 指定為開始事件并指定針對(duì)該開始事件的采樣頻率條件。在這些和/或其他實(shí)施 例中,采樣配置可按其它方式指定,諸如通過配置文件、通過用戶界面控制的 參數(shù)、或適于傳達(dá)采樣配置的其它熟悉的進(jìn)程間通信機(jī)制。
一些實(shí)施例包括子活動(dòng)規(guī)程調(diào)用,其被配置成通知記錄器當(dāng)前活動(dòng)正創(chuàng)建 子活動(dòng)。在一些實(shí)施例中,記錄器代碼被配置成響應(yīng)于子活動(dòng)規(guī)程調(diào)用而向啟 用日志的活動(dòng)的集合添加子活動(dòng)。在一些實(shí)施例中,日志條目建檔由一活動(dòng)(其 為在子活動(dòng)規(guī)程調(diào)用時(shí)的當(dāng)前活動(dòng))創(chuàng)建的子活動(dòng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟技術(shù)許可有限責(zé)任公司,未經(jīng)微軟技術(shù)許可有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201480038423.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 用于活動(dòng)廣告、活動(dòng)墻壁及活動(dòng)棚頂安裝的活動(dòng)棚壁架
- 帶活動(dòng)橡皮的活動(dòng)鉛筆
- 活動(dòng)盒體、活動(dòng)盒蓋和活動(dòng)盒
- 活動(dòng)庫房活動(dòng)式吊環(huán)
- 活動(dòng)記錄裝置、活動(dòng)記錄程序以及活動(dòng)記錄方法
- 活動(dòng)記錄裝置、活動(dòng)記錄方法以及記錄介質(zhì)
- 活動(dòng)彎頭活動(dòng)節(jié)連接結(jié)構(gòu)
- 活動(dòng)影壁(江華高檔活動(dòng)影壁)
- 活動(dòng)柜(鉆石活動(dòng)柜)
- 帶活動(dòng)擦皮的活動(dòng)鉛筆





