国产精品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>

      通過使用趨勢相關(guān)性的存儲(chǔ)器泄漏分析的制作方法

      文檔序號(hào):11160898閱讀:607來源:國知局
      通過使用趨勢相關(guān)性的存儲(chǔ)器泄漏分析的制造方法與工藝

      存儲(chǔ)器泄漏是計(jì)算機(jī)編程中的常見錯(cuò)誤。它們出現(xiàn)在存儲(chǔ)器被表觀地或者實(shí)際地分配用于由程序使用、但是沒有被使用并且由于它尚未被釋放用于使用而將不被使用時(shí)。因此,存儲(chǔ)器可能變成在效果上不可用于計(jì)算使用,直至進(jìn)程重新啟動(dòng)和/或計(jì)算系統(tǒng)重新引導(dǎo)并且沒有被系統(tǒng)和其它進(jìn)程取用的所有存儲(chǔ)器被再次標(biāo)記為可用于使用。泄漏減少可用存儲(chǔ)器的總數(shù)量,這最終地減少或者終止在系統(tǒng)上運(yùn)行的軟件的功能,直至系統(tǒng)被再次重新引導(dǎo)。泄漏的存儲(chǔ)器最常見地是用戶空間隨機(jī)存取存儲(chǔ)器(RAM),但是其它類型的存儲(chǔ)器(比如內(nèi)核RAM和硬盤存儲(chǔ)裝置)也經(jīng)受到泄漏。



      技術(shù)實(shí)現(xiàn)要素:

      一些實(shí)施例涉及檢測存儲(chǔ)器泄漏這一技術(shù)問題。一些實(shí)施例涉及向軟件開發(fā)者提供輔助對特定程序中的存儲(chǔ)器泄漏的具體原因的標(biāo)識(shí)的信息這一技術(shù)問題。一些實(shí)施例涉及這兩個(gè)問題和/或計(jì)算領(lǐng)域技術(shù)人員清楚的其它問題。

      實(shí)施例中的一些實(shí)施例通過輔助對在計(jì)算機(jī)(即,具有至少一個(gè)處理器和存儲(chǔ)器的設(shè)備)上運(yùn)行的軟件程序中的存儲(chǔ)器泄漏的檢測來幫助改進(jìn)計(jì)算機(jī)的運(yùn)作。軟件程序具有處理器負(fù)荷并且使用存儲(chǔ)器。獲得關(guān)于程序的存儲(chǔ)器使用的數(shù)據(jù)。存儲(chǔ)器使用數(shù)據(jù)包括共同地指定多個(gè)數(shù)據(jù)類型的存儲(chǔ)器使用采樣。每個(gè)存儲(chǔ)器使用采樣指定在指定的采樣時(shí)間、用于數(shù)據(jù)類型中的至少一個(gè)數(shù)據(jù)類型的至少一個(gè)使用統(tǒng)計(jì)量的值。

      一些實(shí)施例通過利用處理器來處理存儲(chǔ)器使用數(shù)據(jù)的至少部分,來針對多個(gè)數(shù)據(jù)類型而計(jì)算地標(biāo)識(shí)隨時(shí)間的存儲(chǔ)器使用趨勢。利用標(biāo)識(shí)的至少兩個(gè)這樣的趨勢,這些實(shí)施例計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性。在找到相關(guān)性時(shí),對相關(guān)的趨勢(并且因此對它們的對應(yīng)的數(shù)據(jù)類型)分組。也就是說,實(shí)施例計(jì)算地將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組。給定的組中的數(shù)據(jù)類型往往關(guān)于存儲(chǔ)器使用相似地表現(xiàn)。給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的存儲(chǔ)器使用趨勢。其趨勢不滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的數(shù)據(jù)類型不在給定的存儲(chǔ)器使用趨勢相關(guān)的組中。一些實(shí)施例然后顯示關(guān)于分組的數(shù)據(jù)類型的存儲(chǔ)器使用分析信息。例如,可以顯示最迅速地泄漏數(shù)據(jù)類型的名稱。作為另一示例,實(shí)施例可以顯示開始時(shí)全部被示出幾乎沒有或者沒有泄漏、并且然后全部被示出泄漏迸發(fā)、并且然后再次被示出幾乎沒有或者沒有泄漏的一組數(shù)據(jù)類型的名稱。

      這里給出的這些和其它示例僅為說明性的。這一發(fā)明內(nèi)容沒有旨在于標(biāo)識(shí)要求保護(hù)的主題內(nèi)容的關(guān)鍵特征或者實(shí)質(zhì)特征,它也沒有旨在于用來限制要求保護(hù)的主題內(nèi)容的范圍。實(shí)際上,提供這一發(fā)明內(nèi)容以(以簡化形式)介紹以下在具體實(shí)施方式中進(jìn)一步描述的一些技術(shù)概念。利用權(quán)利要求定義創(chuàng)新,并且在這一發(fā)明內(nèi)容與權(quán)利要求沖突的范圍內(nèi),應(yīng)當(dāng)以權(quán)利要求為準(zhǔn)。

      附圖說明

      將參照附圖給出更具體描述。這些附圖僅圖示了選擇的方面,并且因此沒有完全地確定覆蓋或者范圍。

      圖1是圖示了計(jì)算機(jī)系統(tǒng)并且也圖示了配置的存儲(chǔ)介質(zhì)(有別于僅傳播的信號(hào))實(shí)施例的框圖,該計(jì)算機(jī)系統(tǒng)具有在可以針對存儲(chǔ)器泄露被分析的軟件、可以分析存儲(chǔ)器泄漏的軟件或者二者的控制之下相互交互的至少一個(gè)處理器和至少一個(gè)存儲(chǔ)器以及在可以在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上存在的操作環(huán)境中的其它項(xiàng)目;

      圖2是圖示了在示例架構(gòu)中、通過經(jīng)由使用趨勢相關(guān)性的存儲(chǔ)器泄漏分析來改進(jìn)計(jì)算系統(tǒng)功能的工具和技術(shù)的方面的框圖;

      圖3是圖示了一些進(jìn)程和配置的存儲(chǔ)介質(zhì)實(shí)施例的步驟的流程圖;

      圖4是圖示了在示例架構(gòu)中、通過使用趨勢相關(guān)性的存儲(chǔ)器泄漏分析的方面的數(shù)據(jù)流圖;

      圖5是圖示了數(shù)據(jù)類型的示例存儲(chǔ)器使用趨勢(也被稱為例如“類型趨勢”或者“使用趨勢”)的圖表;

      圖6是圖示了使用線性回歸以將圖5的存儲(chǔ)器使用趨勢擬合到線性函數(shù)以促進(jìn)對于在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性的搜索和/或提供存儲(chǔ)器使用分析信息(比如估計(jì)的泄漏速率和估計(jì)的泄漏大小)的圖表;

      圖7是圖示了相關(guān)的兩個(gè)存儲(chǔ)器使用趨勢(也被稱為例如“接近地有關(guān)的趨勢”或者“有關(guān)的趨勢”)的圖表;

      圖8是圖示了不相關(guān)的兩個(gè)存儲(chǔ)器使用趨勢(也被稱為例如“無關(guān)的趨勢”)的圖表;

      圖9是圖示了即使其相應(yīng)的增長速率不同也仍然相關(guān)的兩個(gè)存儲(chǔ)器使用趨勢的圖表;

      圖10是圖示了可以用來呈現(xiàn)關(guān)于數(shù)據(jù)類型的存儲(chǔ)器使用分析信息的許多可能的圖形用戶界面(GUI)中的一些GUI的屏幕描繪;

      圖11是示出用于數(shù)據(jù)類型之一的擴(kuò)展的細(xì)節(jié)的、圖10的GUI的不同屏幕描繪;以及

      圖12是圖示可類型直方圖的內(nèi)容的表格。

      具體實(shí)施方式

      首字母縮寫詞和簡寫詞

      以下定義了一些首字母縮寫詞和簡寫詞,但是其它首字母縮寫詞和簡寫詞可以在這里別處加以定義或者無需定義即為本領(lǐng)域技術(shù)人員所理解。

      ALU:算術(shù)和邏輯單元

      API:應(yīng)用程序接口

      App:應(yīng)用

      CD:緊致盤

      CPU:中央處理單元

      DVD:數(shù)字萬用盤或者數(shù)字視頻盤

      FPGA:現(xiàn)場可編程門陣列

      FPU:浮點(diǎn)處理單元

      GC:垃圾收集

      GPU:圖形處理單元

      GUI:圖形用戶界面

      IDE:集成開發(fā)環(huán)境,有時(shí)也被稱為“交互開發(fā)環(huán)境”

      PII:個(gè)人可標(biāo)識(shí)信息

      RAM:隨機(jī)存取存儲(chǔ)器

      ROM:只讀存儲(chǔ)器

      概述

      存儲(chǔ)器泄漏檢測是困難問題和重要的問題。在許多計(jì)算系統(tǒng)中,每個(gè)進(jìn)程得到虛擬地址空間。存儲(chǔ)器泄漏消耗虛擬地址空間以及物理存儲(chǔ)器(直至存儲(chǔ)器頁面得以被分頁到盤)。對于應(yīng)用存儲(chǔ)器泄漏,重新啟動(dòng)進(jìn)程可以使分配的存儲(chǔ)器返回到系統(tǒng),但是重新啟動(dòng)并不總是方便的。在一些計(jì)算系統(tǒng)(比嵌入式系統(tǒng)或者缺乏分離進(jìn)程地址空間的系統(tǒng))中,使丟失的存儲(chǔ)器返回到系統(tǒng)可能需要重新引導(dǎo)整個(gè)系統(tǒng)。一些熟悉的方式依賴于對大存儲(chǔ)器轉(zhuǎn)儲(chǔ)的收集和分析,而這里描述的實(shí)施例提供了一種用于轉(zhuǎn)儲(chǔ)分析的備選方式(或者有幫助的前序)。轉(zhuǎn)儲(chǔ)分析經(jīng)常涉及從部署環(huán)境收集存儲(chǔ)器轉(zhuǎn)儲(chǔ)并且將轉(zhuǎn)儲(chǔ)文件移動(dòng)到開發(fā)環(huán)境以用于利用存儲(chǔ)器工具分析。通常地,兩個(gè)或者更多轉(zhuǎn)儲(chǔ)在不同時(shí)間點(diǎn)被收集和差異化(也被稱為diff)以標(biāo)識(shí)已經(jīng)增加了引用的對象的大小/計(jì)數(shù)的存儲(chǔ)器分配樹根。這一過程的繁重和復(fù)雜性使得存儲(chǔ)器泄漏檢測對于普通開發(fā)者而言不是很上手,并且經(jīng)??匆娺@一任務(wù)找到團(tuán)隊(duì)中的最有技能的開發(fā)者。

      存儲(chǔ)器轉(zhuǎn)儲(chǔ)的一個(gè)優(yōu)點(diǎn)是它們具有引用圖表信息。利用這一信息和足夠時(shí)間,將最可能標(biāo)識(shí)存儲(chǔ)器泄漏問題的來源。轉(zhuǎn)儲(chǔ)也可以具有可以在一些分析中有用的實(shí)例信息。例如,能夠檢查串的值以猜測它來自何處可能有幫助。缺點(diǎn)是可能泄漏PII,并且因此值可能沒有在所有情形中可用。

      存儲(chǔ)器轉(zhuǎn)儲(chǔ)也具有缺點(diǎn)。對轉(zhuǎn)儲(chǔ)的收集通常地對機(jī)器的性能具有負(fù)面影響。因此,如果這在用于web app的生產(chǎn)服務(wù)器上被完成,則將看見app的每秒請求數(shù)的顯著下降。轉(zhuǎn)儲(chǔ)也是龐大的,因此它們占用大量驅(qū)動(dòng)空間,并且在機(jī)器之間移動(dòng)它們減少可用網(wǎng)絡(luò)帶寬。存儲(chǔ)器轉(zhuǎn)儲(chǔ)分析通常涉及在存儲(chǔ)器堆樹內(nèi)篩查以找到具有大于預(yù)計(jì)的引用的節(jié)點(diǎn)或者在正diff的情況下找到大小/計(jì)數(shù)的登記的最大增加的節(jié)點(diǎn)。這固有地是繁瑣的過程。另外,對應(yīng)用的請求負(fù)荷經(jīng)常對轉(zhuǎn)儲(chǔ)的內(nèi)容具有影響,并且因此影響diff過程。轉(zhuǎn)儲(chǔ)內(nèi)容也在環(huán)境之間變化。當(dāng)在垃圾收集環(huán)境中捕獲引用圖表時(shí),它通常不包含對垃圾的引用,而是僅包含活躍(具有至少一個(gè)引用)的的對象。在非垃圾收集環(huán)境中,引用的存儲(chǔ)器的泄漏以及未引用但是從未被釋放的存儲(chǔ)器的泄漏可能出現(xiàn)。

      可以在更廣義的情境中查看這里描述的一些實(shí)施例。例如,概念(比如相關(guān)性、存儲(chǔ)器使用、采樣和趨勢)可以與一個(gè)具體實(shí)施例相關(guān)。然而,它沒有得自于如下廣義情境的可用性:這里在專有權(quán)中尋求抽象想法;它們沒有。實(shí)際上,本公開內(nèi)容聚焦于提供其技術(shù)效果完全地或者部分地解決了特定技術(shù)問題的適當(dāng)?shù)貙俚膶?shí)施例。涉及相關(guān)性、存儲(chǔ)器使用、采樣和/或趨勢的其它介質(zhì)、系統(tǒng)和方法在本范圍以外。因而,在對本公開內(nèi)容的恰當(dāng)理解之下也避免了含糊、僅抽象、缺乏技術(shù)特點(diǎn)和附帶的證明問題。

      實(shí)施例的性質(zhì)

      這里描述的實(shí)施例的技術(shù)特點(diǎn)將為本領(lǐng)域普通技術(shù)人員所清楚,并且也將在若干方式中為廣泛留心的讀者所清楚。首先,一些實(shí)施例解決技術(shù)問題,比如檢測存儲(chǔ)器泄漏的存在和提供幫助開發(fā)者更高效地標(biāo)識(shí)存儲(chǔ)器泄漏的來源的信息。第二,一些實(shí)施例包括技術(shù)部件,比如以超出在通用計(jì)算機(jī)內(nèi)的典型交互的方式與軟件交互的計(jì)算硬件。例如,除了正常交互(比如一般的存儲(chǔ)器分配、一般的存儲(chǔ)器讀取和寫入、一般的指令執(zhí)行以及某類I/O)之外,這里描述的一些實(shí)施例標(biāo)識(shí)數(shù)據(jù)類型存儲(chǔ)器使用趨勢、搜索相關(guān)的數(shù)據(jù)類型存儲(chǔ)器使用趨勢并且顯示關(guān)于相關(guān)性及其構(gòu)成趨勢和數(shù)據(jù)類型的信息。第三,由一些實(shí)施例提供的技術(shù)效果最終地包括通過去除存儲(chǔ)器泄漏對軟件功能的高效改進(jìn)而沒有依賴于對存儲(chǔ)器轉(zhuǎn)儲(chǔ)的收集、傳送和分析。其它技術(shù)效果也將在閱讀本公開內(nèi)容時(shí)為本領(lǐng)域技術(shù)人員所清楚。

      本領(lǐng)域技術(shù)人員理解,技術(shù)效果是一個(gè)技術(shù)實(shí)施例的假定目的。例如,在一個(gè)實(shí)施例中涉及計(jì)算并且沒有技術(shù)部件(例如,用紙和筆或者甚至腦力步驟)也可以執(zhí)行一些計(jì)算這僅有的事實(shí)沒有去除技術(shù)效果的存在或者變更實(shí)施例的具體和技術(shù)性質(zhì)。

      參照示例實(shí)施例(比如在附圖中圖示的實(shí)施例),并且這里使用具體言語描述它們。但是本領(lǐng)域并且擁有本公開內(nèi)容的技術(shù)人員將想到的、這里圖示的特征的變更和更多修改以及由這里的具體實(shí)施例舉例說明的抽象原理的附加技術(shù)應(yīng)用應(yīng)當(dāng)被視為在權(quán)利要求的范圍內(nèi)。

      術(shù)語

      在本公開內(nèi)容中闡明術(shù)語的含義,因此閱讀權(quán)利要求應(yīng)當(dāng)仔細(xì)注意這些闡明。給出了具體示例,但是本領(lǐng)域技術(shù)人員將理解,其它示例也可以落入使用的術(shù)語的含義內(nèi)和一個(gè)或者多個(gè)權(quán)利要求的范圍內(nèi)。術(shù)語未必具有它們在一般使用中(特別地在非技術(shù)使用中)或者在特定行業(yè)的使用或者在特定一個(gè)詞典或者詞典集合中具有的相同含義。標(biāo)號(hào)可以與各種措詞一起被使用以幫助示出術(shù)語的廣度。從給定的一段文本省略標(biāo)號(hào)未必意味著附圖的內(nèi)容沒有被文本討論。發(fā)明人主張和實(shí)行他們對他們自己的詞典編撰的權(quán)利。明確地定義引用的術(shù)語,但是在隱含地定義術(shù)語時(shí)沒有使用引號(hào)。這里在具體實(shí)施方式中和/或在申請文件中別處明確地或者隱含地定義術(shù)語。

      如這里所用,“計(jì)算機(jī)系統(tǒng)”可以例如包括一個(gè)或者多個(gè)服務(wù)器、母板、處理節(jié)點(diǎn)、個(gè)人計(jì)算機(jī)(便攜或否)、個(gè)人數(shù)字助理、智能電話、蜂窩或者移動(dòng)電話、至少具有處理器和存儲(chǔ)器的其它移動(dòng)設(shè)備和/或提供至少部分由指令控制的一個(gè)或者多個(gè)處理器的其它設(shè)備。指令可以是以在存儲(chǔ)器和/或?qū)iT化的電路中的固件或者其它軟件的形式。具體而言,雖然可以出現(xiàn)許多實(shí)施例在工作站或者膝上型計(jì)算機(jī)上運(yùn)行,但是其它實(shí)施例可以在其它計(jì)算設(shè)備上運(yùn)行,,并且任何一個(gè)或者多個(gè)這樣的設(shè)備可以是給定的實(shí)施例的部分。

      “多線程”計(jì)算機(jī)系統(tǒng)是支持多個(gè)執(zhí)行線程的計(jì)算機(jī)系統(tǒng)。術(shù)語“線程”應(yīng)當(dāng)被理解為包括能夠或者受到調(diào)度(和可能的同步)的任何代碼,并且也可以被稱為其它名稱,如例如“任務(wù)”、“進(jìn)程”或者“協(xié)同例程”。線程可以并行、依次或者在并行執(zhí)行(例如,多處理)和依次執(zhí)行(例如,時(shí)間分片)的組合中運(yùn)行。已經(jīng)在各種配置中設(shè)計(jì)了多線程環(huán)境。執(zhí)行線程可以并行運(yùn)行,或者線程可以被組織用于并行執(zhí)行,但是實(shí)際地取得多輪依次執(zhí)行。可以例如在多處理環(huán)境中在不同核上執(zhí)行不同線程、通過在單個(gè)處理器核上時(shí)間分片不同線程或者通過時(shí)間分片和多處理器線程的某個(gè)組合來實(shí)施多線程。線程情境切換可以例如由內(nèi)核的線程調(diào)度器、由用戶空間信號(hào)或者由用戶空間和內(nèi)核操作的組合發(fā)起。線程可以依次對共享的數(shù)據(jù)的多輪操作,或者每個(gè)線程可以例如對它自己的數(shù)據(jù)操作。

      “邏輯處理器”或者“處理器”是單個(gè)獨(dú)立硬件線程處理單元,比如在同時(shí)多線程實(shí)現(xiàn)方式中的核。作為另一示例,每個(gè)核運(yùn)行兩個(gè)線程的超線程四核芯片具有八個(gè)邏輯處理器。邏輯處理器包括硬件。術(shù)語“邏輯”用來防止給定的芯片具有至多一個(gè)處理器這樣的錯(cuò)誤結(jié)論;這里可互換地使用“邏輯處理器”和“處理器”。處理器可以是通用的,或者它們可以被定制用于專屬使用,比如圖形處理、信號(hào)處理、浮點(diǎn)算術(shù)處理、加密、I/O處理等等。

      “多處理器”計(jì)算機(jī)系統(tǒng)是具有多個(gè)邏輯處理器的計(jì)算機(jī)系統(tǒng)。多處理器環(huán)境出現(xiàn)在各種配置中。在一個(gè)給定的配置中,所有處理器可以功能等同,而在另一配置中,一些處理器可以借助具有不同硬件能力、不同軟件指派或者二者而不同于其它處理器。根據(jù)配置,處理器可以在單個(gè)總線上被相互緊密地耦合,或者它們可以被松散地耦合。在一些配置中,處理器共享中央處理器,在一些配置中,它們各自具有它們自己的本地處理器,并且在一些配置中,共享和本地存儲(chǔ)器二者存在。

      “內(nèi)核”包括操作系統(tǒng)、管理程序、虛擬機(jī)、BIOS代碼和相似硬件接口軟件。

      “代碼”意味著處理器指令、數(shù)據(jù)(包括常數(shù)、變量和數(shù)據(jù)結(jié)構(gòu))或者指令和數(shù)據(jù)二者。

      這里廣義地使用“程序”以包括應(yīng)用、內(nèi)核、驅(qū)動(dòng)程序、中斷處置程序、庫和由程序員(也被稱為開發(fā)者)編寫的其它代碼。

      如這里所用,“包括(include)”除非另有陳述則允許附加元素(即包括(include)意味著包括(comprise))?!坝伞瓨?gòu)成”意味著實(shí)質(zhì)上或者完全由……構(gòu)成。在可以自由地變更、去除和/或添加X的如果有的非Y部分而沒有只要涉及討論的權(quán)利要求就變更要求保護(hù)的實(shí)施例的功能時(shí),X實(shí)質(zhì)上由Y構(gòu)成。

      “進(jìn)程(process)”這里有時(shí)用作計(jì)算科學(xué)領(lǐng)域的術(shù)語并且在該技術(shù)意義上涵蓋資源用戶、即例如協(xié)同例程、線程、任務(wù)、中斷處置程序、應(yīng)用進(jìn)程、內(nèi)核進(jìn)程、過程(procedure)和對象方法。“過程(process)”這里也用作專利法領(lǐng)域術(shù)語,例如,在描述過程權(quán)利要求有別于系統(tǒng)權(quán)利要求或者制造品(配置的存儲(chǔ)介質(zhì))權(quán)利要求時(shí)。相似地,“方法”這里有時(shí)用作計(jì)算科學(xué)領(lǐng)域中的技術(shù)術(shù)語(一種“例程”)并且也用作專利法領(lǐng)域術(shù)語(“過程(process)”)。本領(lǐng)域技術(shù)人員將理解在特定實(shí)例中旨在于是哪個(gè)含義,并且也將理解有時(shí)可以使用一個(gè)或者多個(gè)進(jìn)程或者方法(在計(jì)算科學(xué)意義上)實(shí)施給定的要求保護(hù)的過程或者方法(在專利法意義上)。

      “自動(dòng)地”意味著通過使用自動(dòng)化(例如,由軟件配置用于這里討論的專屬操作和技術(shù)效果的通用計(jì)算硬件)有別于沒有自動(dòng)化。具體而言,“自動(dòng)地”執(zhí)行的步驟沒有在紙上用手或者在人的頭腦中執(zhí)行,盡管它們可以由人類發(fā)起或者由人類交互地指導(dǎo)。用機(jī)器執(zhí)行自動(dòng)步驟以便獲得沒有用這樣提供的技術(shù)交互就不會(huì)實(shí)現(xiàn)的一個(gè)或者多個(gè)技術(shù)效果。

      “計(jì)算地(computationally)”類似地意味著使用計(jì)算設(shè)備(至少處理器加上存儲(chǔ)器)并且排除通過僅人類思考或者僅人類動(dòng)作獲得結(jié)果。例如,用筆和紙做算術(shù)不是如這里理解的那樣計(jì)算地進(jìn)行算術(shù)。計(jì)算結(jié)果更快速、更廣泛、更深入、更準(zhǔn)確、更一致、更全面和/或以別的方式提供超出單獨(dú)人類執(zhí)行的范圍的技術(shù)效果?!坝?jì)算步驟”是被計(jì)算地執(zhí)行的步驟?!白詣?dòng)地”或者“計(jì)算地”均未必地意味著“立即地”。這里可互換地使用“計(jì)算地”和“自動(dòng)地”。

      “前攝地”意味著沒有來自用戶的直接請求。實(shí)際上,用戶甚至直至已經(jīng)向用戶呈現(xiàn)了一個(gè)實(shí)施例的前攝步驟的結(jié)果才認(rèn)識(shí)到該步驟是有可能的。除非另有陳述,否則也可以前攝地完成這里描述的任何計(jì)算和/或自動(dòng)步驟。

      貫穿文本,使用可選復(fù)數(shù)意味著指示的特征中的一個(gè)或者多個(gè)特征存在。例如,“處理器”意味著“一個(gè)或者多個(gè)處理器”或者等效地意味著“至少一個(gè)處理器”。

      貫穿本文,除非另有明確地陳述,對過程中的步驟的任何引用假定該步驟可以由興趣方直接地執(zhí)行和/或由該方通過干預(yù)機(jī)制和/或干預(yù)實(shí)體間接地執(zhí)行而仍然落在該步驟的范圍內(nèi)。也就是說,如果直接執(zhí)行不是明確地陳述的要求,就沒有要求由興趣方直接執(zhí)行該步驟。例如,涉及興趣方的動(dòng)作(比如關(guān)于目的地或者其它主體分配、分析、計(jì)算、相關(guān)、取消分配、確定、顯示、估計(jì)、擬合、繪圖、分組、標(biāo)識(shí)、指示、正規(guī)化、獲得、執(zhí)行、處理、采樣、滿足、搜索、指定(或者分配、已分配、分析、已分析等)的步驟)可以涉及某個(gè)其它方的干預(yù)動(dòng)作(比如轉(zhuǎn)發(fā)、復(fù)制、上傳、下載、編碼、解碼、壓縮、解壓、加密、解密、認(rèn)證、調(diào)用等等),而仍然被理解為由興趣方直接地執(zhí)行。

      無論何時(shí)參照數(shù)據(jù)或者指令,應(yīng)理解這些項(xiàng)目配置計(jì)算機(jī)可讀存儲(chǔ)器和/或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),由此將它變換成特定物品,例如,有別于簡單地存在于紙上、人的腦海中或者僅為在接線上傳播信號(hào)。除非在權(quán)利要求中以別的方式明確地陳述,否則權(quán)利要求沒有覆蓋信號(hào)本身。為了在美國的專利保護(hù),存儲(chǔ)器或者其它計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不是在In re Nuijten案例的美國專利和商標(biāo)局(USPTO)解釋之下的可授予專利的主題內(nèi)容的范圍以外的傳播信號(hào)或者載波。

      另外,盡管這里別處有任何明顯地相反之處,但是將理解在(a)一個(gè)方面的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)器與(b)另一方面的傳輸介質(zhì)(也被稱為信號(hào)介質(zhì))之間的清楚不同。傳輸介質(zhì)是傳播信號(hào)或者載波計(jì)算機(jī)可讀介質(zhì)。對照而言,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)器不是傳播信號(hào)或者載波計(jì)算機(jī)可讀介質(zhì)。在美國,“計(jì)算機(jī)可讀介質(zhì)”意味著計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)而不是傳播信號(hào)本身。

      “實(shí)施例”在這里是示例。術(shù)語“實(shí)施例”與“本發(fā)明”不可交換。實(shí)施例可以自由地共享或者借用各方面以產(chǎn)生其它實(shí)施例(假如結(jié)果可操作),即使這里沒有明確地描述所得方面組合本身。要求明確地描述每一個(gè)允許的組合對于本領(lǐng)域技術(shù)人員沒有必要并且將與如下政策相矛盾,這些政策公認(rèn)專利說明書是為作為本領(lǐng)域技術(shù)人員的讀者而撰寫的。關(guān)于由甚至少量可組合的特征產(chǎn)生的可能組合的數(shù)目的正式組合計(jì)算和非正式普遍直覺也將指示大量方面組合對于這里描述的方面是存在的。因而,要求明確記載每一個(gè)組合將與如下政策有矛盾,這些政策需要專利說明書簡明而讀者在涉及的技術(shù)領(lǐng)域內(nèi)有知識(shí)。

      操作環(huán)境

      參照圖1,用于一個(gè)實(shí)施例的操作環(huán)境100可以包括計(jì)算機(jī)系統(tǒng)102。計(jì)算機(jī)系統(tǒng)102可以是多處理器計(jì)算機(jī)系統(tǒng)或者不是。操作環(huán)境可以包括給定的計(jì)算機(jī)系統(tǒng)中的可以被群集、客戶方-服務(wù)器聯(lián)網(wǎng)和/或?qū)Φ嚷?lián)網(wǎng)的一個(gè)或者多個(gè)機(jī)器。個(gè)別機(jī)器是計(jì)算機(jī)系統(tǒng),并且一組協(xié)作機(jī)器也是計(jì)算機(jī)系統(tǒng)??梢耘渲媒o定的計(jì)算機(jī)系統(tǒng)102以用于終端用戶,例如,與應(yīng)用一起、用于管理員、作為服務(wù)器、作為分布式處理節(jié)點(diǎn)和/或以其它方式。

      人類用戶104可以通過使用顯示器、鍵盤和其它外圍設(shè)備106經(jīng)由鍵入的文本、觸摸、語音、移動(dòng)、計(jì)算機(jī)視覺、手勢和/或其它形式的I/O來與計(jì)算機(jī)系統(tǒng)102交互。用戶界面可以支持在一個(gè)實(shí)施例與一個(gè)或者多個(gè)人類用戶之間的交互。用戶界面可以包括命令行界面、圖形用戶界面(GUI)、自然用戶界面(NUI)、語音命令界面和/或其它界面呈現(xiàn)。例如,可以在本地臺(tái)式計(jì)算機(jī)上或者在智能電話上生成用戶界面,或者可以從web服務(wù)器生成并且向客戶端發(fā)送它。用戶界面可以被生成作為服務(wù)的部分,并且它可以與其它服務(wù)(比如社交聯(lián)網(wǎng)服務(wù))集成。給定的操作環(huán)境包括支持這些不同用戶界面生成選項(xiàng)和使用的設(shè)備和基礎(chǔ)結(jié)構(gòu)。

      自然用戶界面(NUI)操作可以例如使用話音識(shí)別、觸摸和觸筆識(shí)別、在屏幕上和與屏幕相鄰二者的手勢識(shí)別、空氣手勢、頭部和眼睛跟蹤、語音和話音、視覺、觸摸、手勢和/或機(jī)器智能。NUI技術(shù)的一些示例包括觸敏顯示器、語音和話音識(shí)別、意圖和目標(biāo)理解、使用深度相機(jī)(比如立體相機(jī)系統(tǒng)、紅外線相機(jī)系統(tǒng)、RGB相機(jī)系統(tǒng)及其組合)的運(yùn)動(dòng)手勢檢測、使用加速度計(jì)/陀螺儀的運(yùn)動(dòng)手勢檢測、臉部識(shí)別、3D顯示器、頭部、眼睛和凝視跟蹤、沉浸式增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)系統(tǒng),所有這些示例提供更自然的界面以及用于使用電場感測電極(腦電圖和有關(guān)的工具)來感測腦部活動(dòng)的技術(shù)。

      本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,這里在“操作環(huán)境”之下呈現(xiàn)的前述方面和其它方面也可以形成一個(gè)給定的實(shí)施例的部分。本文的標(biāo)題沒有旨在于提供將特征嚴(yán)格分類成實(shí)施例和非實(shí)施例特征類。

      作為另一示例,游戲可以駐留在Microsoft XBOX(微軟公司的商標(biāo))服務(wù)器上??梢詮目刂婆_(tái)購買游戲,并且可以完全或者部分在服務(wù)器上、在控制臺(tái)上或者在二者上執(zhí)行它。多個(gè)用戶可以與使用標(biāo)準(zhǔn)控制器、空氣手勢、語音或者使用配套設(shè)備(比如智能電話或者平板計(jì)算機(jī))的游戲交互。給定的操作環(huán)境包括支持這些不同使用場景的設(shè)備和基礎(chǔ)結(jié)構(gòu)。

      系統(tǒng)管理員、開發(fā)者、工程師和終端用戶各自是特定類型的用戶104。代表一個(gè)或者多個(gè)人進(jìn)行動(dòng)作的自動(dòng)化代理、腳本、回放軟件等也可以是用戶104。存儲(chǔ)設(shè)備和/或聯(lián)網(wǎng)設(shè)備可以在一些實(shí)施例中被視為外圍設(shè)備。在圖1中未示出的其它計(jì)算機(jī)系統(tǒng)可以例如經(jīng)由網(wǎng)絡(luò)接口設(shè)備、使用與網(wǎng)絡(luò)108的一個(gè)或者多個(gè)連接來與計(jì)算機(jī)系統(tǒng)102或者與另一系統(tǒng)實(shí)施例以技術(shù)方式交互。

      計(jì)算機(jī)系統(tǒng)102包括至少一個(gè)邏輯處理器110。計(jì)算機(jī)系統(tǒng)102如同其它適當(dāng)系統(tǒng)也包括一個(gè)或者多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112。介質(zhì)112可以是不同物理類型。介質(zhì)112可以是易失性存儲(chǔ)器、非易失性存儲(chǔ)器、固定就位的介質(zhì)、可去除介質(zhì)、磁介質(zhì)、光介質(zhì)、固態(tài)介質(zhì)和/或其它類型的物理耐用存儲(chǔ)介質(zhì)(有別于僅傳播的信號(hào))。具體而言,配置的介質(zhì)114、比如便攜(即,外部)硬驅(qū)動(dòng)、CD、DVD、記憶棒或者其它可去除非易失性存儲(chǔ)器介質(zhì)可以在被插入或者以別的方式安裝時(shí)在功能上變成計(jì)算機(jī)系統(tǒng)的技術(shù)部分,從而使得它的內(nèi)容可訪問以用于與處理器110的交互和由處理器110使用??扇コ呐渲玫慕橘|(zhì)114是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112的示例。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112的一些其它示例包括用戶104不容易可去除的內(nèi)置RAM、ROM、硬盤和其它存儲(chǔ)器存儲(chǔ)設(shè)備。為了符合當(dāng)前美國專利要求,計(jì)算機(jī)可讀介質(zhì)和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以及計(jì)算機(jī)可讀存儲(chǔ)器都不是信號(hào)本身。

      向介質(zhì)114配置可由處理器110執(zhí)行的指令116;這里在廣義上使用“可執(zhí)行”以例如包括機(jī)器代碼、可解譯代碼、字節(jié)代碼和/或在虛擬機(jī)上運(yùn)行的代碼。也可以向介質(zhì)114配置通過執(zhí)行指令116來創(chuàng)建、修改、引用和/或以別的方式以求技術(shù)效果的數(shù)據(jù)118。指令116和數(shù)據(jù)118配置它們駐留在其中的存儲(chǔ)器或者其它存儲(chǔ)介質(zhì)114;在該存儲(chǔ)器或者其它計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是給定的計(jì)算機(jī)系統(tǒng)的功能部分時(shí),指令116和數(shù)據(jù)118也配置該計(jì)算機(jī)系統(tǒng)。在一些實(shí)施例中,數(shù)據(jù)118的一部分代表現(xiàn)實(shí)項(xiàng)目,比如產(chǎn)品特性、庫存、物理測量、設(shè)置、圖像、讀數(shù)、目標(biāo)、容量等等。也通過備份、恢復(fù)、提交、放棄、重新格式化和/或其它技術(shù)操作來變換這樣的數(shù)據(jù)。

      雖然可以將一個(gè)實(shí)施例描述為由計(jì)算設(shè)備(例如,通用計(jì)算機(jī)、蜂窩電話或者游戲控制臺(tái))中的一個(gè)或者多個(gè)處理器執(zhí)行的軟件指令,但是這樣的描述沒有意味著窮舉所有可能實(shí)施例。本領(lǐng)域技術(shù)人員將理解,經(jīng)常也可以全部或者部分直接地在硬件邏輯中實(shí)施相同或者相似功能以提供相同或者相似技術(shù)效果。備選地或者除了軟件實(shí)現(xiàn)方式之外,這里描述的技術(shù)功能還可以至少部分由一個(gè)或者多個(gè)硬件邏輯部件執(zhí)行。例如而沒有排除其它實(shí)現(xiàn)方式,一個(gè)實(shí)施例可以包括硬件邏輯部件,比如現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標(biāo)準(zhǔn)產(chǎn)品(ASSP)、片上系統(tǒng)部件(SOC)、復(fù)雜可編程邏輯器件(CPLD)和相似部件。一個(gè)實(shí)施例的部件可以例如基于它們的輸入、輸出和/或它們的技術(shù)效果而被分組成交互功能模塊。

      在所示的環(huán)境100中,一個(gè)或者多個(gè)程序120具有包括數(shù)據(jù)類型124和數(shù)據(jù)項(xiàng)目126(例如,對象實(shí)例、記錄、結(jié)構(gòu)、節(jié)點(diǎn)、數(shù)組和鏈接的數(shù)據(jù)結(jié)構(gòu))的代碼122。在執(zhí)行期間,程序120具有處理負(fù)荷128,該處理負(fù)荷128例如包括搜索、排序、創(chuàng)建、更新或者以別的方式計(jì)算地處理數(shù)據(jù)項(xiàng)目。程序120使用存儲(chǔ)器112以實(shí)現(xiàn)它的處理,并且在許多情況下,該存儲(chǔ)器112中的一些是以堆存儲(chǔ)器130的形式。堆存儲(chǔ)器可以經(jīng)受到自動(dòng)垃圾收集和/或可以由程序120直接地管理。其它形式的存儲(chǔ)器112一般地也由程序直接地或者間接地使用,比如盤存儲(chǔ)裝置、棧存儲(chǔ)器和內(nèi)核空間存儲(chǔ)器??梢允占甘菊谑褂没蛘呤褂眠^存儲(chǔ)器112(具體為堆存儲(chǔ)器130)的使用數(shù)據(jù)132。

      在各附圖中示出和/或在正文中討論的代碼122、使用數(shù)據(jù)132和其它項(xiàng)目可以各自部分地或者完全地駐留在一個(gè)或者多個(gè)硬件介質(zhì)112內(nèi),由此配置那些介質(zhì)以求超出在所有硬件-軟件協(xié)作操作中固有的“正?!?即最普遍常見)交互以外的技術(shù)效果。除了處理器110(CPU、ALU、FPU和/或GPU)、存儲(chǔ)器/存儲(chǔ)介質(zhì)112顯示器134和電池之外,操作環(huán)境也可以包括其它硬件,如例如總線、功率供應(yīng)、有線和無線網(wǎng)絡(luò)接口卡和加速器,這里在本領(lǐng)域技術(shù)人員尚不清楚的程度上描述它們的相應(yīng)操作。CPU是中央處理單元,ALU是算術(shù)和邏輯單元,F(xiàn)PU是浮點(diǎn)處理單元,并且GPU是圖形處理單元。

      給定的操作環(huán)境100可以包括集成開發(fā)環(huán)境(IDE)136,該IDE 136向開發(fā)者提供協(xié)同軟件開發(fā)工具,比如編譯器、源代碼編輯器、分析器、調(diào)試器等等的集合。工具138也可以存在于任何IDE136以外。用于一些實(shí)施例的一些適合的操作環(huán)境包括或者幫助創(chuàng)建被配置為支持程序開發(fā)的Visual(微軟公司的商標(biāo))開發(fā)環(huán)境。一些適當(dāng)?shù)牟僮鳝h(huán)境包括環(huán)境(OracleAmerica公司的商標(biāo)),并且一些操作環(huán)境包括使用語言(比如C++或者C#(“C-Sharp”))的環(huán)境,但是這里的教導(dǎo)可與廣泛多種編程語言、編程模型和程序一起可適用。

      在各附圖中以輪廓形式示出了一個(gè)或者多個(gè)項(xiàng)目以強(qiáng)調(diào)它們未必地是所示操作環(huán)境或者所有環(huán)境的部分,而是可以與在如這里討論的操作環(huán)境或者一些實(shí)施例中的項(xiàng)目互操作。沒有遵循在任何附圖或者任何實(shí)施例中必然地需要沒有以輪廓形式示出的項(xiàng)目。具體而言,提供圖1是為了方便;在圖1中包括一個(gè)項(xiàng)目沒有意味著在當(dāng)前創(chuàng)新之前已知該項(xiàng)目或者對該項(xiàng)目的描述的使用。

      系統(tǒng)

      圖2圖示了適合用于與一些實(shí)施例一起使用的架構(gòu)的方面。存儲(chǔ)器使用數(shù)據(jù)132包括采樣202,這些采樣202示出了用于特定數(shù)據(jù)類型124(比如類或者其它由用戶定義的數(shù)據(jù)類型)的存儲(chǔ)器112使用統(tǒng)計(jì)量204,從而例如示出了在創(chuàng)建該數(shù)據(jù)類型的實(shí)例時(shí)被分配的存儲(chǔ)器。使用統(tǒng)計(jì)量204的值206可以是項(xiàng)目(例如,實(shí)例)的數(shù)目的計(jì)數(shù),或者值206可以跟蹤例如以字節(jié)或者字或者頁面或者扇區(qū)為單位的已使用存儲(chǔ)器空間的數(shù)量。值206具有指示何時(shí)獲得值的對應(yīng)的采樣時(shí)間208。采樣因此相互離散。然而,可以相對于采樣的變量的改變的速率如此接近地在一起來取得采樣以至于有效地連續(xù)。

      存儲(chǔ)器分析工具210可以使用一個(gè)或者多個(gè)趨勢相關(guān)性標(biāo)準(zhǔn)212來處理存儲(chǔ)器使用數(shù)據(jù)132,以產(chǎn)生用于個(gè)別數(shù)據(jù)類型124或者多組數(shù)據(jù)類型的存儲(chǔ)器使用趨勢,并且通過標(biāo)識(shí)相關(guān)的數(shù)據(jù)類型存儲(chǔ)器使用趨勢214來標(biāo)識(shí)相關(guān)的多組216數(shù)據(jù)類型。然后,可以使用分組和其它存儲(chǔ)器使用分析信息218例如作為用于重新啟動(dòng)過程的基礎(chǔ)。可以向用戶(比如軟件開發(fā)者)顯示信息218。一般地在屏幕或者其它顯示器134上的GUI 220中顯示信息218,但是信息218的一些或者所有信息也可以通過向文件寫入它或者打印硬拷貝或者跨網(wǎng)絡(luò)108傳輸它來在目的地顯示來被“顯示”。存儲(chǔ)器使用分析信息218可以例如包括數(shù)據(jù)類型名稱222、泄漏速率224、指示已丟失存儲(chǔ)器空間的泄漏大小226和/或指示已丟失存儲(chǔ)器空間中的數(shù)據(jù)項(xiàng)目的數(shù)目的泄漏計(jì)數(shù)228。趨勢相關(guān)性標(biāo)準(zhǔn)212可以例如包括相關(guān)性系數(shù)230、相關(guān)性系數(shù)閾值232和/或相關(guān)性協(xié)方差234。例如,在一些實(shí)施例中,標(biāo)準(zhǔn)包括用來測量相關(guān)性的技術(shù)和用于匹配的選擇標(biāo)準(zhǔn)(可以是閾值),例如,{Pearson的系數(shù),>0.6}。

      參照圖1和圖2,一些實(shí)施例向計(jì)算機(jī)系統(tǒng)102提供邏輯處理器110和存儲(chǔ)器介質(zhì)112,該邏輯處理器110和存儲(chǔ)器介質(zhì)112由電路、固件和/或軟件配置,以通過利用如這里描述的工具210和其它創(chuàng)新擴(kuò)展功能來提供技術(shù)效果,比如關(guān)于涉及技術(shù)問題(比如檢測和去除存儲(chǔ)器泄漏)的數(shù)據(jù)類型專屬存儲(chǔ)器使用趨勢的相關(guān)性找到。相關(guān)性找到指示趨勢在陳述的標(biāo)準(zhǔn)212之下是否相關(guān),并且也可以指示相關(guān)性的程度,例如,為趨勢計(jì)算出的相關(guān)性系數(shù)。

      在一些實(shí)施例中,外圍設(shè)備106(比如人類用戶I/O設(shè)備(屏幕、鍵盤、鼠標(biāo)、平板計(jì)算機(jī)、麥克風(fēng)、揚(yáng)聲器、運(yùn)動(dòng)傳感器等))將存在與一個(gè)或者多個(gè)處理器110和存儲(chǔ)器的可操作通信。然而,也可以在技術(shù)系統(tǒng)中深度地嵌入一個(gè)實(shí)施例,從而使得沒有人類用戶104與該實(shí)施例直接地交互。軟件過程可以是用戶104。

      在一些實(shí)施例中,存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)102被配置有用于改進(jìn)存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)本身的運(yùn)作或者另一計(jì)算機(jī)系統(tǒng)的運(yùn)作的存儲(chǔ)器分析輔助210。功能的改進(jìn)例如通過輔助對軟件120中的存儲(chǔ)器泄漏的檢測而被提供,該軟件120具有處理負(fù)荷128并且使用存儲(chǔ)器112。存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)包括邏輯處理器110和與邏輯處理器可操作地通信的存儲(chǔ)器112。趨勢相關(guān)性標(biāo)準(zhǔn)212駐留在存儲(chǔ)器112中作為顯式值,或者隱式地駐留在指令116中。標(biāo)準(zhǔn)212可以例如是單個(gè)閾值232,或者閾值和有關(guān)要求的布爾組合,例如,標(biāo)準(zhǔn)212可能需要“大于0.5的Pearson乘積-瞬間相關(guān)性系數(shù)或者大于0.5的Spearman秩相關(guān)性系數(shù)”。這里,如這里別處一樣,“或者”除非另有陳述則為非排他性、也就是說,“或者”意味著“和/或”。

      駐留在存儲(chǔ)器112中的存儲(chǔ)器分析工具210具有可由處理器110執(zhí)行以針對多個(gè)數(shù)據(jù)類型124而標(biāo)識(shí)隨時(shí)間的相應(yīng)的存儲(chǔ)器使用趨勢的指令116。工具210也具有指令116,該指令116可執(zhí)行以搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢214之間的相關(guān)性并且將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組216。對趨勢214的分組對應(yīng)于對趨勢代表的數(shù)據(jù)類型124分組。給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足趨勢相關(guān)性標(biāo)準(zhǔn)的存儲(chǔ)器使用趨勢,并且其趨勢不滿足趨勢相關(guān)性標(biāo)準(zhǔn)的數(shù)據(jù)類型不在給定的存儲(chǔ)器使用趨勢相關(guān)的組中。

      在一些實(shí)施例中,趨勢相關(guān)性標(biāo)準(zhǔn)212包括在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.45的絕對值的相關(guān)性閾值232。這一包括可以被實(shí)現(xiàn)為例如作為硬編碼的常數(shù)、作為可配置的默認(rèn)或者不考慮的默認(rèn),和/或作為有條件執(zhí)行指令116。也可以使用其它閾值232值,例如,0.4、0.5、0.55,或者任何值是范圍,例如,閾值可以在從0.4到0.6的范圍中。閾值232可以例如根據(jù)應(yīng)用120和存儲(chǔ)器使用模式而變化。一般而言,設(shè)置高閾值增加在找到真正地有關(guān)的類型時(shí)的置信度,但是太高的閾值將在選擇什么時(shí)限制太多。設(shè)置低閾值將在分析中包括更多類型,但是結(jié)果可能有噪聲。在一些實(shí)施例中,閾值和/或相關(guān)性方法(Pearson、Spearman等)交互地可由用戶配置。

      在一些實(shí)施例中,存儲(chǔ)器分析計(jì)算機(jī)工具210至少部分通過對于數(shù)據(jù)類型存儲(chǔ)器使用趨勢計(jì)算一個(gè)或者多個(gè)特定種類的相關(guān)性系數(shù)230或者相關(guān)性協(xié)方差234來搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢214之間的相關(guān)性。一些示例包括用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的Pearson乘積-時(shí)刻相關(guān)性系數(shù)、Spearman秩相關(guān)性系數(shù)、Kendall秩相關(guān)性系數(shù)、任何統(tǒng)計(jì)上顯著的相關(guān)性系數(shù)或者距離相關(guān)性。

      一些實(shí)施例僅執(zhí)行趨勢標(biāo)識(shí)和相關(guān)性功能并且然后存儲(chǔ)結(jié)果或者傳輸結(jié)果以用于以后使用。一些實(shí)施例將示出超出指定的閾值的存儲(chǔ)器丟失的結(jié)果視為用于重新啟動(dòng)有損進(jìn)程120的觸發(fā)條件。然而,存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)102的一些其它實(shí)施例包括顯示器134,并且存儲(chǔ)器分析工具210包括軟件,該軟件顯示信息218、比如在顯示的信息中被標(biāo)識(shí)為具有最多存儲(chǔ)器泄漏的組216中的數(shù)據(jù)類型的數(shù)據(jù)類型名稱222和/或在被標(biāo)識(shí)為具有用戶定義的數(shù)據(jù)類型124的最多存儲(chǔ)器泄漏的組216中的用戶定義的數(shù)據(jù)類型的數(shù)據(jù)類型名稱222。存儲(chǔ)器使用分析信息218也可以包括或者備選地包括用于特定數(shù)據(jù)類型124的估計(jì)的泄漏大小226、用于特定數(shù)據(jù)類型124的每單位時(shí)間的存儲(chǔ)器大小的估計(jì)的泄漏速率224、用于特定數(shù)據(jù)類型的泄漏的項(xiàng)目126的估計(jì)的泄漏的項(xiàng)目計(jì)數(shù)228和/或用于特定數(shù)據(jù)類型的每單位時(shí)間的項(xiàng)目計(jì)數(shù)的估計(jì)的泄漏速率224。在一些實(shí)施例中,存儲(chǔ)器分析工具圖形用戶界面220顯示數(shù)據(jù)類型存儲(chǔ)器使用趨勢的圖形322。圖形標(biāo)度可以例如是線性或者對數(shù)的,并且可以隨時(shí)間繪制存儲(chǔ)器大小和/或數(shù)據(jù)項(xiàng)目計(jì)數(shù)。散點(diǎn)圖、條形圖和其它熟悉的圖形格式可以用來顯示由創(chuàng)新工具210獲得和處理的數(shù)據(jù)。

      在一些實(shí)施例中,系統(tǒng)包括由網(wǎng)絡(luò)連接的多個(gè)計(jì)算機(jī)。聯(lián)網(wǎng)接口設(shè)備可以使用可以在給定的計(jì)算機(jī)系統(tǒng)中存在的部件(如例如分組交換網(wǎng)絡(luò)接口卡、無線收發(fā)器或者電話網(wǎng)絡(luò)接口)來提供向網(wǎng)絡(luò)108的接入。然而,一個(gè)實(shí)施例也可以通過直接存儲(chǔ)器存取、可去除非易失性介質(zhì)或者其它信息存儲(chǔ)-取回和/或傳輸方式來傳達(dá)技術(shù)數(shù)據(jù)和/或技術(shù)指令,或者在計(jì)算機(jī)系統(tǒng)中的一個(gè)實(shí)施例可以在沒有與其它計(jì)算機(jī)系統(tǒng)通信的情況下操作。

      一些實(shí)施例在“云”計(jì)算環(huán)境和/或“云”存儲(chǔ)環(huán)境中操作,在該環(huán)境中沒有擁有但是按照需求提供計(jì)算服務(wù)。例如,其存儲(chǔ)器使用將被分析的程序120可以在聯(lián)網(wǎng)云中的一個(gè)或者多個(gè)設(shè)備/系統(tǒng)102上運(yùn)行,可以在云內(nèi)的更多其它設(shè)備上存儲(chǔ)和/或處理程序的存儲(chǔ)器使用數(shù)據(jù)132,并且存儲(chǔ)器分析工具210輸出可以配置更多其它云設(shè)備/系統(tǒng)102上的顯示器134。

      過程

      圖3在流程圖300中圖示了一些過程實(shí)施例。在各圖中示出或者以別的方式公開的計(jì)數(shù)過程可以在一些實(shí)施例中例如在腳本的控制或者之下由存儲(chǔ)器分析工具210自動(dòng)地執(zhí)行,或者以別的方式需要很少或者不需要同時(shí)活的用戶輸入。除非另有指示,也可以部分自動(dòng)地和部分手動(dòng)地執(zhí)行過程。在一個(gè)給定的實(shí)施例中,可以重復(fù)過程的零個(gè)或者更多個(gè)所示的步驟、可能有待操作于的不同參數(shù)或者數(shù)據(jù)。也可以在與在圖3中布局的由上至下順序不同的順序中完成在一個(gè)實(shí)施例中的步驟??梢源械?、以部分地重疊方式或者完全地并行來執(zhí)行步驟。流程圖300被遍歷以指示在過程期間執(zhí)行的步驟的順序可以從過程的一個(gè)執(zhí)行到過程的另一執(zhí)行而變化。流程圖遍歷也可以從一個(gè)過程實(shí)施例到另一過程實(shí)施例變化。步驟也可以被省略、組合、重新命名、重新分組或者以別的方式脫離所示流程,只要執(zhí)行的過程可操作并且符合至少一個(gè)權(quán)利要求。

      這里提供示例以幫助舉例說明本技術(shù)的各方面,但是在本文中給出的示例沒有描述所有可能實(shí)施例。實(shí)施例不限于這里提供的具體實(shí)現(xiàn)方式、布置、顯示、特征、方式或者場景。一個(gè)給定的實(shí)施例可以例如包括附加或者不同技術(shù)特征、機(jī)制和/或數(shù)據(jù)結(jié)構(gòu)并且可以以別的方式脫離這里提供的示例。

      一些實(shí)施例提供用于通過輔助檢測在具有處理負(fù)荷并且使用存儲(chǔ)器的軟件程序中的存儲(chǔ)器泄漏來改進(jìn)計(jì)算機(jī)(膝上型、智能電話、平板計(jì)算機(jī)、工作站、服務(wù)器盒、嵌入式系統(tǒng)等)的運(yùn)作的過程。在一些實(shí)施例中,過程包括獲得302存儲(chǔ)器使用數(shù)據(jù)132。這可以使用熟悉的技術(shù)(比如代碼儀表化、存儲(chǔ)器轉(zhuǎn)儲(chǔ)分析、存儲(chǔ)器分配器儀表化存儲(chǔ)器分配器監(jiān)視和/或垃圾收集監(jiān)視)而被實(shí)現(xiàn),這些技術(shù)適于提供用于感興趣的一個(gè)或者多個(gè)特定數(shù)據(jù)類型124的數(shù)據(jù)采樣202。存儲(chǔ)器使用采樣202共同地指定多個(gè)數(shù)據(jù)類型124,其中每個(gè)個(gè)別存儲(chǔ)器使用采樣指定在指定的采樣時(shí)間208用于數(shù)據(jù)類型中的至少一個(gè)數(shù)據(jù)類型的至少一個(gè)使用統(tǒng)計(jì)量204的值206。使用統(tǒng)計(jì)量的一些示例是存儲(chǔ)器大小(以字節(jié)、字、頁面、扇區(qū)或者另一熟悉的單位為單位)和項(xiàng)目計(jì)數(shù)(其中項(xiàng)目是程序120為其分配一段存儲(chǔ)器作為單位的對象、記錄、結(jié)構(gòu)、節(jié)點(diǎn)或者其它項(xiàng)目)。

      在一些實(shí)施例中,過程包括針對多個(gè)數(shù)據(jù)類型而計(jì)算地標(biāo)識(shí)304隨時(shí)間的相應(yīng)存儲(chǔ)器使用趨勢。這例如通過利用處理器處理存儲(chǔ)器使用數(shù)據(jù)的至少部分而被計(jì)算地實(shí)現(xiàn);本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,試圖用腦力或者用手標(biāo)識(shí)這些趨勢將是愚蠢和無益的努力。具體而言,可以(部分地或者全部地)通過在采樣202之間計(jì)算地插值以獲得代表趨勢的逐段(piecewise)線性函數(shù)或者另一函數(shù)的節(jié)段來實(shí)現(xiàn)趨勢標(biāo)識(shí)??梢?部分地或者全部地)通過計(jì)算地?cái)M合存儲(chǔ)器使用數(shù)據(jù)到線性或者逐段線性或者非線性曲線來實(shí)現(xiàn)趨勢標(biāo)識(shí)304。擬合可以例如使用線性或者非線性回歸與最小平方或者另一度量。最小平方本身包括各種選項(xiàng),例如,普通最小平方、廣義最小平方、百分比最小平方等等。此外,注意,異常采樣可以在它們沒有統(tǒng)計(jì)地顯著時(shí)被排除。

      在一些實(shí)施例中,過程包括計(jì)算地搜索306在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性??梢酝ㄟ^計(jì)算在多對或者其它多個(gè)元組的趨勢214之間的距離的協(xié)方差、相關(guān)性或者其它統(tǒng)計(jì)測量然后比較結(jié)果與預(yù)定閾值232和/或一些或者所有其它計(jì)算的統(tǒng)計(jì)測量來實(shí)現(xiàn)搜索306。例如,具有比用戶指定的閾值0.6更大的計(jì)算的相關(guān)性系數(shù)的任何一對或者其它元組的趨勢在一些實(shí)施例中被視為相關(guān)。作為另一示例,具有其絕對值比默認(rèn)但是可重配置的閾值0.4更大的計(jì)算的相關(guān)性系數(shù)的任何元組的趨勢214在一些實(shí)施例中被視為相關(guān)。作為另一示例,無論哪個(gè)匯集的多達(dá)N個(gè)趨勢214具有為利用給定的存儲(chǔ)器使用數(shù)據(jù)132標(biāo)識(shí)的所有趨勢214的給定的匯集而計(jì)算出的最大相關(guān)性系數(shù)(該系數(shù)的值可能是無論任何值)在一些實(shí)施例中被視為相關(guān)。在本文中,“預(yù)定”意味著在比較計(jì)算的統(tǒng)計(jì)測量之前指定。不同統(tǒng)計(jì)測量和/或不同閾值值定義不同趨勢相關(guān)性標(biāo)準(zhǔn)212。

      一些實(shí)施例基于計(jì)算的統(tǒng)計(jì)測量計(jì)算地將數(shù)據(jù)類型124分組308成存儲(chǔ)器使用趨勢相關(guān)的組216。因此,在給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)212的存儲(chǔ)器使用趨勢,而其趨勢沒有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的數(shù)據(jù)類型沒有在給定的存儲(chǔ)器使用趨勢相關(guān)的組中。可以在存儲(chǔ)器112中將組216例如表示為指針、索引、句柄或者其它趨勢214標(biāo)識(shí)符的列表或者陣列。

      一些實(shí)施例使用326分組308結(jié)果作為用于進(jìn)一步動(dòng)作的基礎(chǔ)。例如,一些實(shí)施例基于分組308結(jié)果來重新啟動(dòng)328已經(jīng)丟失太多存儲(chǔ)器的進(jìn)程120或者有丟失太多存儲(chǔ)器的趨勢的進(jìn)程。一些實(shí)施例顯示310關(guān)于數(shù)據(jù)類型分組的存儲(chǔ)器使用分析信息218。顯示310這一動(dòng)作可以配置顯示設(shè)備134(比如屏幕或者監(jiān)視器),但是“顯示”也涵蓋向日志文件erudite、向打印機(jī)傳輸或者跨網(wǎng)絡(luò)連接朝著另一設(shè)備102傳輸。一些實(shí)施例顯示310在向用戶104標(biāo)識(shí)為具有最多存儲(chǔ)器泄漏的組216中的數(shù)據(jù)類型124的數(shù)據(jù)類型名稱222。具體而言,一些實(shí)施例顯示310在向用戶104標(biāo)識(shí)為具有各種用戶定義的數(shù)據(jù)類型124的最多存儲(chǔ)器泄漏的組216中的數(shù)據(jù)類型124的數(shù)據(jù)類型名稱222。一些實(shí)施例顯示310用于特定數(shù)據(jù)類型的估計(jì)的泄漏大小226(即,估計(jì)的泄漏存儲(chǔ)器數(shù)量)作為該數(shù)據(jù)類型的項(xiàng)目126。一些實(shí)施例顯示310用于特定數(shù)據(jù)類型124的每單位時(shí)間的存儲(chǔ)器大小的估計(jì)的泄漏速率224。一些實(shí)施例顯示310用于特定數(shù)據(jù)類型124的估計(jì)的泄漏項(xiàng)目計(jì)數(shù)228。一些實(shí)施例顯示310用于特定數(shù)據(jù)類型的每單位時(shí)間的項(xiàng)目126計(jì)數(shù)的估計(jì)的泄漏速率224。一些實(shí)施例顯示310前述示例的組合。

      在一些實(shí)施例中,預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)212在并且僅在趨勢214具有超出預(yù)定相關(guān)性閾值232的相關(guān)性系數(shù)230時(shí)指定它們相關(guān)。在其它實(shí)施例中,趨勢相關(guān)性標(biāo)準(zhǔn)212在趨勢214具有超出預(yù)定閾值232的相關(guān)性協(xié)方差234時(shí)指定它們相關(guān)。在一些實(shí)施例中,趨勢相關(guān)性標(biāo)準(zhǔn)212指定閾值滿足條件的布爾組合,例如,具有大于X的Pearson乘積-瞬間相關(guān)性系數(shù)和大于Y的Spearman秩相關(guān)性系數(shù)二者,其中0<X,Y<1。

      在一些實(shí)施例中,用于數(shù)據(jù)類型124的使用統(tǒng)計(jì)量204包括以下各項(xiàng)中的至少一項(xiàng):指示數(shù)據(jù)類型的多少項(xiàng)目126被分配的計(jì)數(shù)238;指示數(shù)據(jù)類型的多少項(xiàng)目126被取消分配的計(jì)數(shù)238;指示多少存儲(chǔ)器112被指明為被分配給數(shù)據(jù)類型的項(xiàng)目126的存儲(chǔ)器大小236;指示多少被指明為被分配給數(shù)據(jù)類型的項(xiàng)目126的存儲(chǔ)器112被取消分配的存儲(chǔ)器大小236。存儲(chǔ)器112例如由存儲(chǔ)器管理器、垃圾收集器、堆測量數(shù)據(jù)結(jié)構(gòu)、工具儀表化和/或其它熟悉的機(jī)制指明為分配或者取消分配。

      在一些實(shí)施例中,計(jì)算地標(biāo)識(shí)304相應(yīng)的存儲(chǔ)器使用趨勢214例如包括以下各項(xiàng)中的至少一項(xiàng):使用最小平方來執(zhí)行313簡單線性回歸以將使用統(tǒng)計(jì)量204擬合到線性趨勢214,執(zhí)行312分段回歸以將使用統(tǒng)計(jì)量204擬合到逐段線性趨勢214,或者執(zhí)行312非線性回歸以將使用統(tǒng)計(jì)量204擬合到非線性趨勢214。為了幫助實(shí)現(xiàn)這些計(jì)算,例如可以在根據(jù)這里的教導(dǎo)而設(shè)計(jì)的程序工作流中使用熟悉的統(tǒng)計(jì)計(jì)算庫。在一些實(shí)施例中,計(jì)算地標(biāo)識(shí)相應(yīng)的存儲(chǔ)器使用趨勢包括將用于使用統(tǒng)計(jì)量涉及的程序120的處理負(fù)荷的使用統(tǒng)計(jì)量214歸一化318。

      在一些實(shí)施例中,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括以下各項(xiàng)中的至少一項(xiàng):確定314用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的Pearson乘積-瞬間相關(guān)性系數(shù),確定314用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的Pearson秩相關(guān)性系數(shù),確定314用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的Kendall秩相關(guān)性系數(shù),確定314用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的距離相關(guān)性,確定316用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的距離協(xié)方差或者確定316用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢214的Brownian距離協(xié)方差。

      在一些實(shí)施例中,兩個(gè)(或者更多個(gè))數(shù)據(jù)類型可以在它們的相應(yīng)趨勢214具有在預(yù)定閾值以上的相關(guān)性系數(shù)時(shí)被分組成存儲(chǔ)器使用趨勢相關(guān)的組216,即使趨勢具有不同增長速率。圖9圖示了顯示320用于兩個(gè)這樣的趨勢214的趨勢圖形322的一個(gè)示例。

      配置的介質(zhì)

      一些實(shí)施例包括配置的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112。介質(zhì)112可以包括盤(磁、光或者別的方式)、RAM、EEPROM或者其它ROM和/或其它可配置的存儲(chǔ)器,包括具體為計(jì)算機(jī)可讀介質(zhì)(有別于僅傳播的信號(hào))。配置的存儲(chǔ)介質(zhì)可以具體地是可去除存儲(chǔ)介質(zhì)114、比如CD、DVD或者閃存。可以可去除或者不可去除和可以是非易失性或者非易失性的通用存儲(chǔ)器可以被配置到如下實(shí)施例中,該實(shí)施例使用項(xiàng)目(比如存儲(chǔ)器使用趨勢214、趨勢相關(guān)性標(biāo)準(zhǔn)212、如這里描述的那樣操作的存儲(chǔ)器分析工具210和趨勢組(有效地也是數(shù)據(jù)類型組)216)這些項(xiàng)目以數(shù)據(jù)118和指令116的形式從可去除介質(zhì)114和/或另一來源(比如網(wǎng)絡(luò)連接)被讀取以形成配置的介質(zhì)。配置的介質(zhì)112能夠使計(jì)算機(jī)系統(tǒng)執(zhí)行如這里公開的用于按照特定數(shù)據(jù)類型或者數(shù)據(jù)類型組檢測和明存儲(chǔ)器泄漏的技術(shù)過程步驟。圖1至圖3因此幫助圖示了配置的存儲(chǔ)介質(zhì)實(shí)施例和過程實(shí)施例以及系統(tǒng)和過程實(shí)施例。具體而言,在圖3中圖示和/或這里以別的方式教導(dǎo)的過程步驟中的任何過程步驟可以用來幫助配置存儲(chǔ)介質(zhì)以形成配置的介質(zhì)實(shí)施例。

      附加示例

      以下提供附加細(xì)節(jié)和設(shè)計(jì)考慮。與這里的其它示例一樣,可以在一個(gè)給定的實(shí)施例中個(gè)別地和/或在組合中或者完全沒有使用描述的特征。

      本領(lǐng)域技術(shù)人員將理解,實(shí)施細(xì)節(jié)可以涉及專屬代碼(比如專屬API和專屬樣本程序),并且因此無需出現(xiàn)在每個(gè)實(shí)施例中。本領(lǐng)域技術(shù)人員也將理解,在討論細(xì)節(jié)時(shí)使用的程序標(biāo)識(shí)符和一些其它術(shù)語是實(shí)現(xiàn)方式專屬的,并且因此無需涉及每個(gè)實(shí)施例。然而,雖然未必地要求它們這里存在,但是提供這些細(xì)節(jié),因?yàn)樗鼈兛梢酝ㄟ^提供情境來幫助一些讀者和/或可以舉例說明這里討論的計(jì)數(shù)的許多可能實(shí)現(xiàn)方式中的少數(shù)實(shí)現(xiàn)方式。Microsoft Visual程序和/或歸檔的一些現(xiàn)有的、計(jì)劃的或者潛在的版本方面與這里描述的實(shí)施例中的一些實(shí)施例的方面一致或者以別的方式舉例說明這些方面(微軟公司的商標(biāo))。然而,將理解,Visual歸檔和/或?qū)崿F(xiàn)方式選擇未必地約束這樣的實(shí)施例的范圍,并且類似地,Visual和其它產(chǎn)品和/或它們的歸檔可以很好地包含落在這樣的實(shí)施例的范圍以外的特征(微軟公司的商標(biāo))。也將理解提供以下討論部分作為輔助未必是本領(lǐng)域技術(shù)人員的讀者,因此可以包含/或省略如下細(xì)節(jié),沒有嚴(yán)格地要求這些細(xì)節(jié)的以下記載支持本公開內(nèi)容。

      在一些示例中,一種用于存儲(chǔ)器泄漏檢測的方式基于由應(yīng)用120使用的對存儲(chǔ)器堆130的輕量級采樣和基于對所得存儲(chǔ)器使用數(shù)據(jù)132的統(tǒng)計(jì)分析。如圖4中所示,堆的輕量級采樣202(被稱為類型直方圖402)在生產(chǎn)機(jī)器404上由采樣代理406周期地收集。采樣由數(shù)據(jù)處理器模塊408核對以得到用于應(yīng)用進(jìn)程120及其個(gè)別類型124的存儲(chǔ)器趨勢信息214。這些趨勢214由存儲(chǔ)器分析輔助210統(tǒng)計(jì)地分析以斷定進(jìn)程120是否泄漏存儲(chǔ)器,其中如果是則標(biāo)識(shí)個(gè)別類型124中的哪些類型是泄漏類型410。輔助210也可以對于進(jìn)程120整體和對于個(gè)別類型124或者類型組216二者在存儲(chǔ)器大小236和數(shù)據(jù)項(xiàng)目計(jì)數(shù)238方面計(jì)算泄漏度量218,比如泄漏速率224。這樣的方式通過統(tǒng)計(jì)地確定進(jìn)程120中的哪些其它類型具有相似存儲(chǔ)器簡檔(以得到有關(guān)類型)來幫助向開發(fā)者104提供關(guān)于存儲(chǔ)器泄漏的情境的信息。在一些情況下,這一方式也可以通過將數(shù)據(jù)類型使用趨勢相關(guān)324到處理負(fù)荷128請求趨勢以找到哪些請求與泄漏有關(guān)來提供附加情境。在簡潔、可視報(bào)告中向用戶104呈現(xiàn)310這樣的信息218,該報(bào)告幫助用戶制定用于減少或者消除存儲(chǔ)器泄漏問題的動(dòng)作過程。

      這一方式可以視為具有三個(gè)部分。一個(gè)部分是收集輕量級類型直方圖數(shù)據(jù)。第二部分是統(tǒng)計(jì)分析數(shù)據(jù)以得到對設(shè)置情境有用的泄漏類型和其它信息。第三部分是向用戶呈現(xiàn)相關(guān)結(jié)果。以下進(jìn)一步討論每個(gè)部分。

      數(shù)據(jù)收集

      在數(shù)據(jù)收集階段中,在規(guī)律間隔收集存儲(chǔ)器堆130的輕量級采樣202并且做出一些處理以得到類型趨勢214。在這一示例中,輕量級采樣被稱為“類型直方圖”,因?yàn)樗鼈儼總€(gè)類型124的基本統(tǒng)計(jì)量,比如項(xiàng)目大小和項(xiàng)目計(jì)數(shù)。這形成分析的基礎(chǔ)。在圖12中示出了類型直方圖情境的一個(gè)示例。隨時(shí)間收集和存儲(chǔ)許多這樣的類型直方圖402。每個(gè)直方圖具有關(guān)于堆130在收集時(shí)間208的狀態(tài)的信息。注意,這一泄漏分析方式?jīng)]有依賴于具體收集計(jì)數(shù);任何提供原始使用數(shù)據(jù)132的機(jī)制可以用來收集它作為向分析的輸入。

      處理這一直方圖數(shù)據(jù)以得到類型趨勢,例如,關(guān)于具體類型的大小/計(jì)數(shù)在采樣時(shí)間段內(nèi)趨勢如何的信息。例如,圖12表格中的System.String可能具有在采樣時(shí)段內(nèi)的趨勢,如圖5中所示趨勢。在數(shù)據(jù)收集之后,具有用于在堆(或者其它興趣存儲(chǔ)器112)上具有實(shí)例(項(xiàng)目126)的一些或者所有類型124的類型趨勢。

      注意,在圖5-9中,沿著軸作為標(biāo)記符而示出的具體數(shù)值對于這里呈現(xiàn)的教導(dǎo)并不重要。在這些圖中示出的圖形線和其它函數(shù)的相對形狀可能對于呈現(xiàn)的目的而言頗為相同,即使使用不同數(shù)值標(biāo)記符。實(shí)際上,圖10和11包括樣式化的圖形,這些圖形使用短線段作為軸標(biāo)記符而不是使用數(shù)字。

      與用于存儲(chǔ)器泄漏分析的趨勢214運(yùn)作的一些技術(shù)效果將為本領(lǐng)域技術(shù)人員所清楚。趨勢信息一旦它的值被理解就相對地易于計(jì)算,并且它收集起來也相對地輕量級而對監(jiān)視的下層應(yīng)用120有最小影響。為將這一趨勢數(shù)據(jù)串行化到盤或者通過網(wǎng)絡(luò)108發(fā)送它支付相對低的成本。由于可以捕獲采樣時(shí)間208和進(jìn)程120的信息124、128,所以可以更易于在以后分析中連結(jié)這一數(shù)據(jù)與其它數(shù)據(jù)源。

      存儲(chǔ)器泄漏分析

      在以上概括的方式的這一部分中,工具210分析類型趨勢信息以找出哪些類型124泄漏并且找到向開發(fā)者提供附加情境以輔助調(diào)試的有關(guān)類型。

      關(guān)于找到泄漏類型,一些工具210取得類型趨勢信息、使用線性回歸以標(biāo)識(shí)擬合觀測的采樣的函數(shù)并且確定函數(shù)如何隨時(shí)間改變(增長指示泄漏)。作為以下示例,圖6圖示了使用最小平方計(jì)算以擬合System.String的圖5的觀測趨勢214以得到線函數(shù)作為擬合240的簡單線性回歸。擬合的函數(shù)240可以用作趨勢214。在負(fù)荷和請求類型在采樣間隔中近似地恒定時(shí),估計(jì)的線在閾值以上的正斜率(例如在0.18或者10度以上的斜率)可以指示存在泄漏。非泄漏趨勢有可能在采樣間隔內(nèi)略微地為正。但是在許多情況下,比在負(fù)荷和請求趨勢上的斜率更大的在使用趨勢上的斜率指示值得進(jìn)一步調(diào)查的存儲(chǔ)器泄漏可能性。工具210也可以計(jì)算關(guān)于泄漏的一些推斷的度量。擬合240的斜率是例如根據(jù)在水平軸上的單位而以每分鐘或者每采樣的字節(jié)數(shù)為單位的估計(jì)的泄漏速率224。泄漏速率乘以采樣時(shí)段的乘積給定泄漏的估計(jì)的大小226。擬合線的Y截距給定用于存儲(chǔ)器使用的估計(jì)的開始狀態(tài)。

      對于直方圖中的所有類型執(zhí)行這樣的分析提供用于那些類型124中的每個(gè)類型的泄漏速率224。泄漏速率可以被排序以標(biāo)識(shí)最多泄漏類型并且向開發(fā)者提供用于使哪些類型優(yōu)先開始具體調(diào)查的基礎(chǔ)。可以從調(diào)查中過濾掉有接近零泄漏速率和/或負(fù)泄漏速率的類型。這一方式可以顯著地縮減興趣類型124的集合,這可以使調(diào)查開發(fā)者的工作容易得多。

      本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,最小平方僅為可以應(yīng)用的一種線性回歸??梢詫τ诓煌愋偷内厔?例如非線性趨勢214)應(yīng)用其它回歸??梢栽u估線性回歸模型的組合以找到用于所分析的類型的良好或者最優(yōu)擬合240。也可以用計(jì)數(shù)或者大小完成這樣的分析。根據(jù)所分析的類型,其中之一或者二者可以令人感興趣的。一些變化解釋負(fù)荷128。一個(gè)實(shí)施例可以通過對于每秒的請求數(shù)歸一化318(例如,將采樣值除以在該時(shí)段的每秒請求數(shù))和/或通過在UI圖表322上疊加負(fù)荷信息并且因此用戶104可以看見負(fù)荷并且判決表觀泄漏是否為實(shí)際的(例如,可以預(yù)計(jì)有更高負(fù)荷的成比例使用大小按步進(jìn)增加并且排除它作為泄漏)來解釋負(fù)荷。

      有關(guān)類型

      在實(shí)踐中,在給定的情形中的最高泄漏類型中的許多泄漏類型經(jīng)常是用戶的定制類型使用和引用的系統(tǒng)類型。例如,知道System.String是最高泄漏類型可能無助于開發(fā)者確定知道泄漏位于何處。一種用于提供關(guān)于泄漏的更多情境的方式是與最高泄漏類型124一起標(biāo)識(shí)泄漏的其它有關(guān)類型。這一分組216可能向用戶示出原本不會(huì)冒泡到泄漏類型的列表的最高的類型124,因?yàn)樗鼈儧]有在與最高泄漏類型相同的每實(shí)例的速率或者大小泄漏。

      為了實(shí)現(xiàn)這一點(diǎn),一些實(shí)施例比較類型趨勢并且尋找在它們之間的相關(guān)性。一種用于這樣做的方式是例如使用Pearson-瞬間相關(guān)性系數(shù)或者Spearman秩系數(shù)以找出兩個(gè)趨勢如何接近地匹配并且使用相關(guān)性程度(或者缺乏相關(guān)性程度)作為用于找到有關(guān)類型124的基礎(chǔ)。高(絕對值)相關(guān)性系數(shù)230指示高關(guān)系而低(絕對值)系數(shù)指示低或者無關(guān)系。也就是說,在從+1到-1的系數(shù)范圍中,接近零的值代表低或者無關(guān)系,而更接近+1或者-1的值代表高關(guān)系(-1是完全地負(fù)相關(guān))。圖7圖示了如由類型的趨勢214A和214B的可視相似性確認(rèn)的接近地有關(guān)的類型的一個(gè)示例。這些趨勢之一是最高泄漏類型,而評估第二趨勢以查看它是否和如何有關(guān)。對照而言,圖8圖示了無關(guān)的兩個(gè)趨勢214C和214D的示例。作為更多另一示例,圖9圖示了用于作為有關(guān)類型的兩個(gè)數(shù)據(jù)類型124的趨勢214C和214E,即使它們的增長速率不同。

      根據(jù)這里的教導(dǎo)的一些示例使用這樣的分析以包括用于與最高泄漏類型有關(guān)(相關(guān))的類型的有關(guān)類型信息。因此,在用戶104關(guān)注最高泄漏類型(假如System.String)時(shí),他們也可以看見以相似方式泄漏的其它有關(guān)類型(假如定制的用戶定義類型,如Employee類型)。這一相關(guān)性可以由開發(fā)者用來拼接泄漏可能在代碼122中源于的地方。

      一個(gè)變化將有關(guān)類型聚類在一起并且示出最高泄漏聚類(也就是組216)而不是個(gè)別類型。這允許開發(fā)者關(guān)注整個(gè)泄漏組而不是個(gè)別類型,這可以提供更有用情境。

      有關(guān)請求

      對于web應(yīng)用120,也有時(shí)感興趣知道泄漏與哪個(gè)或者哪些請求更接近地關(guān)聯(lián)。負(fù)荷128請求412可以例如是HTTP請求、HTTPS請求或者其它web應(yīng)用或者web服務(wù)器請求。這不僅向調(diào)查開發(fā)者給出更多情境,它也向他們給出用于理解被任何改變所影響的用戶場景的良好起點(diǎn)。

      一個(gè)變化收集關(guān)于在處理類型直方圖之時(shí)處理的請求的信息。關(guān)于每個(gè)請求412的信息由數(shù)據(jù)處理器408變換成累積求和級數(shù),該累計(jì)求和級數(shù)是給定的請求序列的部分求和的序列。因此,如果{x,y,z}是原有請求412序列,則累計(jì)求和級數(shù)是{x,x+y,x+y+z}。累計(jì)求和級數(shù)是遞增級數(shù)。分析輔助210然后執(zhí)行相似相關(guān)性分析(如以上對于趨勢214描述的那樣)以找出請求412中的哪些請求最接近地匹配泄漏趨勢。這里的高相關(guān)性將指示泄漏與所討論的請求關(guān)聯(lián)。在泄漏趨勢與請求數(shù)目之間的適度地高的相關(guān)性將指示泄漏在共享部件中,這也是有用的調(diào)試信息。

      結(jié)果呈現(xiàn)

      一些實(shí)施例以簡潔的優(yōu)先化的形式呈現(xiàn)分析結(jié)果作為信息218以首先作用于最有影響的泄漏。這一顯示可以是以web報(bào)告或者在豐富客戶端(比如IDE 136)中的報(bào)告的形式。圖10圖示了用戶界面220的一個(gè)示例,該用戶界面具有菜單欄1002、用于總體存儲(chǔ)器使用的圖形322和用戶易于訪問最高泄漏類型的總列表(包括用戶類型124和系統(tǒng)類型124二者)以及最高泄漏用戶定義類型的列表。在實(shí)際顯示的這一樣式化的表示中,文本和數(shù)字由點(diǎn)劃線代表。例如在一個(gè)實(shí)際實(shí)施例中的泄漏速率將是實(shí)際值(例如,每小時(shí)83.64吉字節(jié)),并且最高泄漏類型將具有名稱222(例如System.Byte[]、Free、System.String或者在討論的情形中出現(xiàn)的無論任何名稱(實(shí)施例不限于由系統(tǒng)軟件或者累計(jì)求和級數(shù)庫提供的類型124))。可以在數(shù)據(jù)類型的名稱旁邊示出每個(gè)數(shù)據(jù)類型的泄漏的數(shù)量226。類型名稱的白名單和/或系統(tǒng)庫/匯編/對象模塊的列表可以用來在系統(tǒng)類型與用戶定義的類型之間區(qū)分。

      圖11圖示了在擴(kuò)展的格式1102中示出最高泄漏類型的信息218的圖10界面。在一些實(shí)施例中,擴(kuò)展的格式1102包括或者標(biāo)識(shí)以下各項(xiàng)中的一項(xiàng)或者多項(xiàng):有關(guān)用戶類型、有關(guān)系統(tǒng)類型。一些版本與每個(gè)有關(guān)類型的名稱、估計(jì)的泄漏大小和估計(jì)的泄漏實(shí)例計(jì)數(shù)一起示出用于該類型的相關(guān)性系數(shù)。在一些版本中,擴(kuò)展的信息的圖形322A伴隨有如下文本,該文本陳述數(shù)據(jù)類型的估計(jì)的泄漏大小、估計(jì)的泄漏實(shí)例計(jì)數(shù)、以每小時(shí)吉字節(jié)數(shù)為單位的泄漏速率和以每小時(shí)實(shí)例數(shù)為單位的泄漏速率。其它版本包括以直方圖、散點(diǎn)圖(例如有標(biāo)記為對象126的平均大小的對數(shù)標(biāo)度的水平軸和標(biāo)記為大小增加速率的對數(shù)標(biāo)度的豎軸)、餅形圖和其它呈現(xiàn)格式的形式對信息218的圖形呈現(xiàn)。一些版本以最大峰值和/或最相關(guān)的趨勢的形式將用戶首先引向最有用信息。

      附加技術(shù)結(jié)果

      本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,這里描述的方式可以僅涉及到輕量級數(shù)據(jù)收集、串行化和傳送,從而使得與完全存儲(chǔ)器轉(zhuǎn)儲(chǔ)比較,對計(jì)算環(huán)境的性能的影響小或者甚至微不足道。在延長的時(shí)間段內(nèi)采樣也可以具有校正誤差和給出更準(zhǔn)確結(jié)果這樣的結(jié)果、有別于往往離散、因此對在取得它時(shí)堆的狀態(tài)敏感的存儲(chǔ)器轉(zhuǎn)儲(chǔ)。有幫助的度量、如以每分鐘兆字節(jié)數(shù)和每分鐘實(shí)例(數(shù)據(jù)項(xiàng)目)數(shù)為單位的泄漏速率以及其它度量在許多情況下可用。這里描述的方式幫助開發(fā)者使哪些類型124優(yōu)先被調(diào)查尋找存儲(chǔ)器泄漏。為了附加診斷結(jié)果,這里描述的方式也可以與其它數(shù)據(jù)源(如傳入請求或者垃圾收集連結(jié))。這里描述的一些方式的結(jié)果提供用于來自數(shù)據(jù)類型(比如有關(guān)泄漏類型、對泄漏類型的聚類(分組))和有關(guān)請求的存儲(chǔ)器泄漏的情境。

      一些示例的附加陳述

      一種用于通過輔助對具有處理負(fù)荷并且使用存儲(chǔ)器的軟件程序中的存儲(chǔ)器泄漏的檢測來改進(jìn)計(jì)算機(jī)的運(yùn)作的計(jì)算過程包括在與一個(gè)或者多個(gè)步驟相互的各種組合中的各種步驟。

      可以被呈現(xiàn)的步驟是獲得包括存儲(chǔ)器使用采樣的存儲(chǔ)器使用數(shù)據(jù),這些存儲(chǔ)器使用采樣共同地指定多個(gè)數(shù)據(jù)類型。在一些情況下,每個(gè)存儲(chǔ)器使用采樣指定在指定的采樣時(shí)間用于數(shù)據(jù)類型中的至少一個(gè)數(shù)據(jù)類型的至少一個(gè)使用統(tǒng)計(jì)量的值。

      可以被呈現(xiàn)的步驟是通過利用處理器處理存儲(chǔ)器使用數(shù)據(jù)的至少部分,來針對多個(gè)數(shù)據(jù)類型而計(jì)算地標(biāo)識(shí)隨時(shí)間的相應(yīng)的存儲(chǔ)器使用趨勢。

      可以被呈現(xiàn)的步驟是計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性。

      可以被呈現(xiàn)的步驟是計(jì)算地將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組。在一些情況下,給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的存儲(chǔ)器使用趨勢。在一些情況下,其趨勢沒有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的數(shù)據(jù)類型不在給定的存儲(chǔ)器使用趨勢相關(guān)的組中。

      可以被呈現(xiàn)的步驟是顯示關(guān)于由分組步驟分組的數(shù)據(jù)類型的存儲(chǔ)器使用分析信息。

      在一些情況下,預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)在并且僅在趨勢具有超出預(yù)定相關(guān)性閾值的相關(guān)性系數(shù)時(shí)指定趨勢相關(guān)。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示數(shù)據(jù)類型的多少項(xiàng)目被分配的計(jì)數(shù)。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示數(shù)據(jù)類型的多少項(xiàng)目被取消分配的計(jì)數(shù)。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示多少存儲(chǔ)器被指明為被分配給數(shù)據(jù)類型的項(xiàng)目的存儲(chǔ)器大小。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示多少被指明為被分配給數(shù)據(jù)類型的項(xiàng)目的存儲(chǔ)器被取消分配的存儲(chǔ)器大小。

      在一些情況下,標(biāo)識(shí)相應(yīng)存儲(chǔ)器使用趨勢包括使用最小平方來執(zhí)行簡單線性回歸以將使用統(tǒng)計(jì)量擬合到線性趨勢。

      在一些情況下,標(biāo)識(shí)相應(yīng)存儲(chǔ)器使用趨勢包括執(zhí)行分段回歸以將使用統(tǒng)計(jì)量擬合到逐段線性趨勢。

      在一些情況下,標(biāo)識(shí)相應(yīng)存儲(chǔ)器使用趨勢包括執(zhí)行非線性回歸以將使用統(tǒng)計(jì)量擬合到非線性趨勢。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Pearson乘積-瞬間相關(guān)性系數(shù)。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Spearman秩相關(guān)性系數(shù)。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Kendall秩相關(guān)性系數(shù)。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的距離相關(guān)性。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的距離協(xié)方差。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Brownian距離協(xié)方差。Brownian距離協(xié)方差僅為距離協(xié)方差的一個(gè)示例。

      在一些情況下,計(jì)算地標(biāo)識(shí)相應(yīng)的存儲(chǔ)器使用趨勢包括將用于處理負(fù)荷的使用統(tǒng)計(jì)量歸一化。

      在一些情況下,計(jì)算地將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組包括對具有如下趨勢的兩個(gè)數(shù)據(jù)類型分組,這些趨勢具有在預(yù)定閾值以上的相關(guān)性系數(shù),即使趨勢具有不同增長速率。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示在向用戶被標(biāo)識(shí)為具有最多存儲(chǔ)器泄漏的組中的數(shù)據(jù)類型的數(shù)據(jù)類型名稱。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示在向用戶被標(biāo)識(shí)為具有用戶定義的數(shù)據(jù)類型的最多存儲(chǔ)器泄漏的組中的用戶定義的數(shù)據(jù)類型的數(shù)據(jù)類型名稱。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示用于特定數(shù)據(jù)類型的估計(jì)的泄漏大小。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示用于特定數(shù)據(jù)類型的以每單位時(shí)間的存儲(chǔ)器大小為單位的的估計(jì)的泄漏速率。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示用于特定數(shù)據(jù)類型的估計(jì)的泄漏項(xiàng)目計(jì)數(shù)。

      在一些情況下,顯示關(guān)于由分組步驟分組的損類型的存儲(chǔ)器使用分析信息包括顯示用于特定數(shù)據(jù)類型的以每單位時(shí)間的項(xiàng)目計(jì)數(shù)為單位的估計(jì)泄漏大小。

      一些示例提供一種被配置有數(shù)據(jù)和指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),這些指令在由至少一個(gè)處理器執(zhí)行時(shí),使得處理器執(zhí)行用于輔助對具有處理負(fù)荷并且使用存儲(chǔ)器的軟件中的存儲(chǔ)器泄漏的檢測的技術(shù)過程。

      可以被呈現(xiàn)的步驟是獲得包括存儲(chǔ)器使用采樣的存儲(chǔ)器使用數(shù)據(jù),這些存儲(chǔ)器使用采樣共同地指定多個(gè)數(shù)據(jù)類型。在一些情況下,每個(gè)存儲(chǔ)器使用采樣指定在指定的采樣時(shí)間用于數(shù)據(jù)類型中的至少一個(gè)數(shù)據(jù)類型的至少一個(gè)使用統(tǒng)計(jì)量的值。

      可以被呈現(xiàn)的步驟是通過利用處理器處理存儲(chǔ)器使用數(shù)據(jù)的至少部分,來針對多個(gè)數(shù)據(jù)類型而計(jì)算地標(biāo)識(shí)隨時(shí)間的相應(yīng)的存儲(chǔ)器使用趨勢。

      可以被呈現(xiàn)的步驟是計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性。

      可以被呈現(xiàn)的步驟是計(jì)算地將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組,從而使得給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)的存儲(chǔ)器使用趨勢,預(yù)定趨勢相關(guān)性標(biāo)準(zhǔn)在趨勢具有超出預(yù)定相關(guān)性閾值的相關(guān)性系數(shù)時(shí)指定趨勢相關(guān)。

      在一些情況下,預(yù)定相關(guān)性閾值在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.5的絕對值。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示數(shù)據(jù)類型的多少項(xiàng)目被分配的計(jì)數(shù)。

      在一些情況下,用于數(shù)據(jù)類型的使用統(tǒng)計(jì)量包括指示多少存儲(chǔ)器被指明為被分配給數(shù)據(jù)類型的項(xiàng)目的存儲(chǔ)器大小。

      在一些情況下,計(jì)算地標(biāo)識(shí)相應(yīng)存儲(chǔ)器使用趨勢包括執(zhí)行至少一個(gè)線性回歸。

      在一些情況下,計(jì)算地標(biāo)識(shí)相應(yīng)存儲(chǔ)器使用趨勢包括歸一化用于處理負(fù)荷的使用統(tǒng)計(jì)量。

      在一些情況下,計(jì)算地搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性包括以下各項(xiàng)中的至少一項(xiàng):確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Pearson乘積-瞬間相關(guān)性系數(shù),確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Spearman秩相關(guān)性系數(shù),確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Kendall秩相關(guān)性系數(shù),或者確定用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的距離相關(guān)性。

      可以被呈現(xiàn)的步驟是顯示在向用戶被標(biāo)識(shí)為具有最多存儲(chǔ)器泄漏的組中的數(shù)據(jù)類型的數(shù)據(jù)類型名稱。

      可以被呈現(xiàn)的步驟是顯示在向用戶被標(biāo)識(shí)為具有用戶定義的數(shù)據(jù)類型的最多存儲(chǔ)器泄漏的組中的用戶定義的數(shù)據(jù)類型的數(shù)據(jù)類型名稱。

      可以被呈現(xiàn)的步驟是顯示用于特定數(shù)據(jù)類型的估計(jì)的泄漏大小。

      可以被呈現(xiàn)的步驟是顯示用于特定數(shù)據(jù)類型的以每單位時(shí)間的存儲(chǔ)器大小為單位的估計(jì)泄漏速率。

      可以被呈現(xiàn)的步驟是顯示用于特定數(shù)據(jù)類型的估計(jì)的泄漏項(xiàng)目計(jì)數(shù)。

      可以被呈現(xiàn)的步驟是顯示用于特定數(shù)據(jù)類型的以每單位時(shí)間的項(xiàng)目計(jì)數(shù)為單位的估計(jì)的泄漏速率。

      一種存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng),可以被配置有存儲(chǔ)器分析輔助,該存儲(chǔ)器分析輔助用于通過輔助對具有處理負(fù)荷并且使用存儲(chǔ)器的軟件中的存儲(chǔ)器泄漏的檢測來改進(jìn)存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)本身在另一計(jì)算機(jī)系統(tǒng)運(yùn)作時(shí)的運(yùn)作。

      存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)通常地包括邏輯處理器和與邏輯處理器可操作地通信的存儲(chǔ)器。

      趨勢相關(guān)性標(biāo)準(zhǔn)可以駐留在存儲(chǔ)器中。

      一種存儲(chǔ)器分析工具可以駐留在存儲(chǔ)器中并且可以具有指令,這些指令由處理器了執(zhí)行以針對多個(gè)數(shù)據(jù)類型而標(biāo)識(shí)隨時(shí)間的相應(yīng)的存儲(chǔ)器使用趨勢,搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性,以及將數(shù)據(jù)類型分組成存儲(chǔ)器使用趨勢相關(guān)的組。在一些情況下,給定的存儲(chǔ)器使用趨勢相關(guān)的組中的所有數(shù)據(jù)類型具有滿足趨勢相關(guān)性標(biāo)準(zhǔn)的存儲(chǔ)器使用趨勢,并且其趨勢沒有滿足趨勢相關(guān)性標(biāo)準(zhǔn)的數(shù)據(jù)類型不在給定的存儲(chǔ)器使用趨勢相關(guān)的組中。

      存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)可以包括顯示器。存儲(chǔ)器分析工具可以包括軟件,該軟件顯示以下項(xiàng)目中的至少兩個(gè)項(xiàng)目:在向用戶被標(biāo)識(shí)為具有最多存儲(chǔ)器泄漏的組中的數(shù)據(jù)類型的數(shù)據(jù)類型名稱,在被標(biāo)識(shí)為具有用戶定義的數(shù)據(jù)類型的最多存儲(chǔ)器泄漏的組中的用戶定義的數(shù)據(jù)類型的數(shù)據(jù)類型名稱,用于特定數(shù)據(jù)類型的估計(jì)的泄漏大小,用于特定數(shù)據(jù)類型的以每單位時(shí)間的存儲(chǔ)器大小為單位的估計(jì)的泄漏速率,用于特定數(shù)據(jù)類型的估計(jì)的泄漏項(xiàng)目計(jì)數(shù),或者用于特定數(shù)據(jù)類型的以每單位時(shí)間的項(xiàng)目計(jì)數(shù)為單位的估計(jì)的泄漏速率。存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)可以具有顯示項(xiàng)目中的至少三個(gè)項(xiàng)目的存儲(chǔ)器分析工具。存儲(chǔ)器分析計(jì)算機(jī)系統(tǒng)可以具有顯示項(xiàng)目中的至少四個(gè)項(xiàng)目的存儲(chǔ)器分析工具。

      趨勢相關(guān)性標(biāo)準(zhǔn)可以包括在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.4的絕對值的相關(guān)性閾值。趨勢相關(guān)性標(biāo)準(zhǔn)可以包括在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.45的絕對值的相關(guān)性閾值。趨勢相關(guān)性標(biāo)準(zhǔn)可以包括在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.5的絕對值的相關(guān)性閾值。趨勢相關(guān)性標(biāo)準(zhǔn)可以包括在從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.55的絕對值的相關(guān)性閾值。趨勢相關(guān)性標(biāo)準(zhǔn)可以包括在范圍從-1到+1的相關(guān)性系數(shù)標(biāo)度上具有至少0.6的絕對值的相關(guān)性閾值。

      存儲(chǔ)器分析工具可以通過計(jì)算以下各項(xiàng)中的至少一項(xiàng)(或者在另一示例中的至少兩項(xiàng))來搜索在數(shù)據(jù)類型存儲(chǔ)器使用趨勢之間的相關(guān)性:用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Pearson乘積-瞬間相關(guān)性系數(shù)、用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Spearman秩相關(guān)性系數(shù)、用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的Kendall秩相關(guān)性系數(shù)、用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的統(tǒng)計(jì)地顯著相關(guān)性系數(shù)、用于數(shù)據(jù)類型存儲(chǔ)器使用趨勢的距離相關(guān)性。

      在一些示例中,存儲(chǔ)器分析工具包括顯示數(shù)據(jù)類型存儲(chǔ)器使用趨勢的圖形的圖形用戶界面和軟件。

      結(jié)論

      雖然這里將具體實(shí)施例明確地圖示和描述為過程、為配置的介質(zhì)或者為系統(tǒng),但是將認(rèn)識(shí)到,對一個(gè)類型的實(shí)施例的討論也廣義地延及其它實(shí)施例類型。例如,結(jié)合圖3對過程的描述也幫助描述配置的介質(zhì)并且?guī)椭枋鱿到y(tǒng)和制造品(如結(jié)合其它圖討論的系統(tǒng)和制造品)的技術(shù)效果和操作。并未遵循來自一個(gè)實(shí)施例的限制必然地被解讀到另一實(shí)施例中。具體而言,過程未必地限于在討論系統(tǒng)或者制造品(比如配置的存儲(chǔ)器)之時(shí)呈現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和布置。

      這里對某個(gè)特征X的實(shí)施例的引用和這里別處對具有某個(gè)特征Y的實(shí)施例的引用沒有從本公開內(nèi)容排除具有特征X和特征Y二者的實(shí)施例,除非這里明確地陳述這樣的排除。所有可能的否定權(quán)利要求限制在也可以明確地去除被聲明為一個(gè)實(shí)施例的部分的任何特征沒有包含在另一實(shí)施例中,即使沒有在這里的任何示例中給出該具體排除這一意義上在本公開內(nèi)容的范圍內(nèi)。術(shù)語“實(shí)施例”這里僅用作與“如這里以與適用法律一致的方式應(yīng)用的教導(dǎo)的過程、系統(tǒng)、制造品、配置的計(jì)算機(jī)可讀介質(zhì)和/或其它示例”的更方便形式。因而,一個(gè)給定的“實(shí)施例”可以包括這里公開的特征的任何組合,只要該實(shí)施例與至少一個(gè)權(quán)利要求一致。

      并且在各圖中示出的每個(gè)項(xiàng)目需要存在于每個(gè)實(shí)施例中。反言之,一個(gè)實(shí)施例可以包含沒有在各圖中明確地示出的項(xiàng)目。雖然這里在文本和附圖中用具體示例舉例說明一些可能性,但是實(shí)施例可以脫離這些示例。例如,示例的具體技術(shù)效果或者技術(shù)特征可以被省略、重新命名、不同地分組、重復(fù)、在硬件和/或軟件中不同地實(shí)例化或者是在示例中的兩個(gè)或者更多示例中出現(xiàn)的效果或者特征的混合。在一個(gè)位置示出的功能也可以在一些實(shí)施例中在不同位置被提供;本領(lǐng)域技術(shù)人員認(rèn)識(shí)到,可以在給定的實(shí)現(xiàn)方式中以各種方式定義功能模塊而未必地從被視為整體的交互模塊的匯集中省略希望的技術(shù)效果。

      已經(jīng)用標(biāo)號(hào)對各圖進(jìn)行了全篇引用。在與給定的標(biāo)號(hào)關(guān)聯(lián)的措詞中、在各圖中或者在文本中的任何表觀不一致應(yīng)當(dāng)被理解為簡單地拓寬由該標(biāo)號(hào)引用的內(nèi)容的范圍。給定的標(biāo)號(hào)的不同實(shí)例可以涉及不同實(shí)施例,即使使用相同標(biāo)號(hào)。

      如這里所用,比如“一個(gè)/一種”和“該”之類的術(shù)語包含一個(gè)或者多個(gè)指示的項(xiàng)目或者步驟。具體而言,在權(quán)利要求中,對項(xiàng)目的引用一般地意味著至少一個(gè)這樣的項(xiàng)目存在,而對步驟的引用意味著執(zhí)行步驟的至少一個(gè)實(shí)例。

      標(biāo)題僅為了方便;可以在其標(biāo)題指示給定的主題的章節(jié)以外找到關(guān)于該主題的信息。

      如提交的所有權(quán)利要求和說明書摘要是說明書的部分。

      盡管已經(jīng)在附圖中示出并且以上描述了示例性實(shí)施例,但是本領(lǐng)域普通技術(shù)人員將清楚,可以做出許多修改而沒有脫離在權(quán)利要求中闡述的原理和概念,并且這樣的修改無需涵蓋整個(gè)抽象概念。雖然用結(jié)構(gòu)特征和/或過程動(dòng)作特有的言語描述了主題內(nèi)容,但是將理解,在所附權(quán)利要求中定義的主題內(nèi)容未必地限于以上描述的具體技術(shù)特征或者動(dòng)作。沒有必要讓在給定的定義或者示例中標(biāo)識(shí)的每個(gè)裝置或者方面或者技術(shù)效果在每個(gè)實(shí)施例中存在或者被使用。實(shí)際上,公開描述的具體特征以及動(dòng)作和效果作為用于在實(shí)施權(quán)利要求時(shí)考慮的示例。

      沒有包容整個(gè)抽象想法、但是落入權(quán)利要求的含義和等效范圍內(nèi)的所有改變將在法律允許的完全程度上被涵蓋在它們的范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1