可被示為與操作系統(tǒng)分開。這可能是為了示出為應用提供各支持函數(shù)的虛擬機,諸如過程虛擬機。在其他實施例中,虛擬機可以是可包括其自己的內部操作系統(tǒng)并可模擬整個計算機系統(tǒng)的系統(tǒng)虛擬機。
[0056]貫穿本說明書和權利要求書,術語“執(zhí)行環(huán)境”包括操作系統(tǒng)和可具有或可不具有可容易標識的“虛擬機”或其他支持軟件的其他系統(tǒng)。
[0057]貫穿本說明書,在對附圖的整個描述中,相同的附圖標記表示相同的元素。
[0058]當元素被稱為被“相連接”或“相耦合”時,這些元素可被直接連接或耦合在一起,或者也可存在一個或多個中間元素。相反,當元素被稱為被“直接連接”或“直接耦合”時,不存在中間元素。
[0059]本主題可被體現(xiàn)為設備、系統(tǒng)、方法、和/或計算機程序產(chǎn)品。因此,本主題的部分或全部可以用硬件和/或軟件(包括固件、常駐軟件、微碼、狀態(tài)機、門陣列等)來具體化。此外,本主題可以采用計算機可使用或計算機可讀存儲介質上的計算機程序產(chǎn)品的形式,介質中收錄了供指令執(zhí)行系統(tǒng)使用或結合指令執(zhí)行系統(tǒng)一起使用的計算機可使用或計算機可讀的程序代碼。在本文檔的上下文中,計算機可使用或計算機可讀介質可以是可包含、儲存、通信、傳播、或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設備使用或結合指令執(zhí)行系統(tǒng)、裝置或設備一起使用的任何介質。
[0060]計算機可使用或計算機可讀介質可以是,例如,但不限于,電、磁、光、電磁、紅外、或半導體系統(tǒng)、裝置、設備或傳播介質。作為示例而非限制,計算機可讀介質可包括計算機存儲介質和通信介質。
[0061]計算機存儲介質包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術來實現(xiàn)的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備、或能用于存儲所需信息且可以由指令執(zhí)行系統(tǒng)訪問的任何其他介質。注意,計算機可使用或計算機可讀介質可以是其上打印有程序的紙張或另一合適的介質,因為程序可以經(jīng)由例如對紙張或其他介質的光學掃描而電子地捕獲,隨后如有必要被編譯、解釋,或以其他合適的方式處理,并隨后存儲在計算機存儲器中。
[0062]當本主題在計算機可執(zhí)行指令的一般上下文中具體化時,該實施例可包括由一個或多個系統(tǒng)、計算機、或其他設備執(zhí)行的程序模塊。一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等。通常,程序模塊的功能可在各個實施例中按需進行組合或分布。
[0063]圖1是示出示例力導向圖的實施例100的圖示。實施例100是力導向圖以及各種控件的示例,該力導線圖可在與彼此的消息傳遞關系中顯示對象,該各種控件可被用于查看具有數(shù)據(jù)集序列的該圖。
[0064]實施例100的力導向圖可解說在消息傳遞環(huán)境內傳遞的消息。作為這種環(huán)境的示例,獨立計算元素可處理應用的諸部分。在處理期間,每個計算元素可向另一計算元素傳遞包含數(shù)據(jù)、指令或其他元素的消息。在這種環(huán)境中,力導向圖可被用來可視化各計算元素以及所述元素之間的活動。在許多情況下,力導向圖可被用來標識執(zhí)行期間的瓶頸或其他異常。
[0065]實施例100的力導向圖可示出應用執(zhí)行期間的一個時間段。在這些實施例中,應用的執(zhí)行可隨時間被跟蹤器且力導向圖可示出應用如何行動。實施例100的力導向圖可用新收集的數(shù)據(jù)被周期性地更新,這可視覺地示出該應用的各操作。
[0066]實施例100的力導向圖可示出應用的各操作。在一些實施例中,力導向圖可示出各離散時間段處的設備或應用的系統(tǒng)狀態(tài)。示出系統(tǒng)狀態(tài)的圖的一個示例可包括表示存儲器對象、函數(shù)、輸入/輸出設備、存儲器存儲設備、或其他硬件或軟件對象的狀態(tài)的節(jié)點。在一些實施例中,力導向圖可示出兩個時間段之間可能發(fā)生的活動。這種圖的示例可包括函數(shù)或進程以及在各進程間傳遞的消息。
[0067]力導向圖可示出由各條邊連接的節(jié)點102、104、106和108。邊112連接節(jié)點102和104。邊114連接節(jié)點102和106,而邊116連接節(jié)點102和108且邊118連接節(jié)點106和104。還示出了附加節(jié)點和邊。
[0068]可通過施加用邊連接兩個節(jié)點的引力,并同時向各節(jié)點一般性地施加斥力來計算力導向圖。在許多實施例中,力導向圖可以可交互方式來顯示,以使得用戶可以能夠通過點擊和拖動對象或通過某種其他機制來擾動該圖。在引入擾動時,交互式圖可顯示各節(jié)點和邊改變位置。
[0069]實施例100的力導向圖可顯示附加數(shù)據(jù)元素。例如,各節(jié)點的相對大小、形狀和顏色可被配置成指示節(jié)點的不同性質。在另一示例中,邊可使用粗細度、顏色和其他視覺元素來顯示性質。
[0070]當力導向圖顯示應用的執(zhí)行時,節(jié)點可表示計算元素。計算元素可以是進程、線程、處理器、設備、或可向其他元素傳遞消息的其他元素。在這種圖中,邊可表示在計算元素之間傳遞的消息。
[0071]表示計算元素的節(jié)點可被修改以反映附加數(shù)據(jù)。例如,節(jié)點的顏色或形狀可被修改以顯示計算元素的編組。在實施例100的示例中,圖例126示出應用到節(jié)點的不同顏色或圖案以及所述圖案的含義。表示來自庫A 120的計算元素的節(jié)點可包括節(jié)點102和108。表示來自庫B 122的計算元素的節(jié)點可包括節(jié)點104和106。節(jié)點110可表示核心進程124。
[0072]編組可反映各對象的不同共享性質。例如,節(jié)點可按照庫、代碼模塊、或其他組來編組,且這種編組可幫助開發(fā)者理解程序流。在另一示例中,節(jié)點可按存儲器消耗來編組,其中表示消耗大量數(shù)據(jù)的計算元素的那些節(jié)點被編組在一起,或者其中引用特定存儲器對象組的計算元素被編組在一起。在另一示例中,在特定進程調度器上操作的進程或函數(shù)可被顯示為組。在又一示例中,可能與一存儲器域有關的節(jié)點可被編組。
[0073]在一些實施例中,圖例可作為圖的一部分來顯示。圖例可具有顏色、形狀、或其他視覺元素和相應標簽。在一些實施例中,圖例可具有選擇機制,藉由該選擇機制,用戶可以能夠使用下拉菜單或其他選擇工具來選擇一編組。在一些此類實施例中,用戶可以能夠選擇一個視覺效果以對應于一個編組,而另一視覺效果可對應于另一編組。例如,圖例可被用來按照要通過表示每個域的形狀示出的存儲器域來配置編組,而與特定服務有關的節(jié)點可按照顏色編組。
[0074]圖例126可具有用于選擇要被顯示的編組的選擇工具。切換按鈕136可打開下拉列表,該下拉列表可包含若干選項。在實施例100的情況中,選項可包括按照處理器138、存儲器域140、調度器142、以及服務144的編組。服務144選擇當前被選擇,如由星星所指示。當用戶選擇一不同編組時,可通過改變顏色、形狀或其他視覺元素來向各節(jié)點應用該編組。
[0075]各節(jié)點的大小可反映計算元素的不同方面。例如,大小可表示特定元素執(zhí)行的計算量、該元素被調用的次數(shù)、該元素處理的數(shù)據(jù)量、或其他因素。在一些情況下,特定顏色可被應用到接收來自外部源的輸入數(shù)據(jù)的元素,而一不同顏色可被應用到傳送輸出數(shù)據(jù)的元素。
[0076]類似地,可修改邊來顯示消息的各方面。例如,消息可被聚集來顯示沿特定路徑的消息數(shù)目、消息的頻率、消息的數(shù)據(jù)有效載荷、以及消息的方向性以及其他特性。對應于消息的邊可使用不同的粗細度、顏色、或其他視覺元素來修改以示出所聚集的參數(shù)中的一個或多個參數(shù)。
[0077]應用的操作可產(chǎn)生可隨時間傳遞的許多消息。這種與時間有關的數(shù)據(jù)可使用數(shù)據(jù)集的時間序列來顯示,其中每個數(shù)據(jù)集可反映在一時間段該應用的狀態(tài)或者作為在一時間間隔期間傳遞的消息的聚集。
[0078]在一些實施例中,跟蹤系統(tǒng)可從活躍應用收集消息傳遞信息并將所收集的數(shù)據(jù)存儲在數(shù)據(jù)庫中。聚集器可分析該數(shù)據(jù)庫來概括針對個體時間間隔的消息傳遞活動。在一些情況下,這種概括可由跟蹤系統(tǒng)執(zhí)行而不將消息傳遞數(shù)據(jù)存儲在獨立的數(shù)據(jù)庫中。
[0079]可通過更新力導向圖內的數(shù)據(jù)來在該力導向圖中顯示經(jīng)聚集的數(shù)據(jù)。在力導向圖的許多可視化中,可更新數(shù)據(jù)集,從而使得力導向圖用更新后的數(shù)據(jù)重新定位自身。
[0080]力導向圖可實時反映應用的操作。在這種實施例中,跟蹤器系統(tǒng)可收集來自計算環(huán)境的消息傳遞數(shù)據(jù)并聚集該數(shù)據(jù)以供呈現(xiàn)??砂匆恢芷陂g隔(諸如每秒)更新該數(shù)據(jù),隨后將該數(shù)據(jù)傳送到顯示力導向圖的系統(tǒng)。力導向圖可被更新且隨著每次更新改變,從而允許用戶實時或近實時地可視化應用的操作。
[0081]當在這種實施例中數(shù)據(jù)集可被收集并存儲時,控制面板用戶界面可允許用戶瀏覽和查看各數(shù)據(jù)集。例如,反轉按鈕128可使得按照相反的次序來顯示較舊的數(shù)據(jù)集。播放按鈕130和暫停按鈕132可開始和停止更新力導向圖。快進按鈕134可使得回放按照比正常速度更快的速度進行。
[0082]圖2是顯示可收集并在圖中顯示消息傳遞數(shù)據(jù)的計算環(huán)境的實施例200的圖示。實施例200示出可呈遞實施例100以及其他實施例中描述的操作的硬件組件。
[0083]圖2的圖示出了系統(tǒng)的功能組件。在一些情況下,組件可以是硬件組件、軟件組件、或者硬件和軟件的組合。一些組件可以是應用級軟件,而其他組件可以是執(zhí)行環(huán)境級組件。在一些情況下,一個組件到另一組件的連接可以是緊密連接,其中兩個或更多個組件在單個硬件平臺上操作。在其他情況下,連接可通過跨長距離的網(wǎng)絡連接來進行。每個實施例都可使用不同的硬件、軟件、以及互連架構來實現(xiàn)所描述的功能。
[0084]實施例200示出了可具有硬件平臺204和各軟件組件的設備202。示出的設備202表示常規(guī)的計算設備,但是其它實施例可具有不同配置、架構、或組件。
[0085]在許多實施例中,優(yōu)化服務器202可以是服務器計算機。在一些實施例中,優(yōu)化服務器202仍然還可以是臺式計算機、膝上型計算機、上網(wǎng)本計算機、平板或平板式計算機、無線手機、蜂窩電話、游戲控制臺或任何其他類型的計算設備。在一些情況下,優(yōu)化服務器202可被部署在計算群集、云計算環(huán)境、或其他硬件平臺上。
[0086]硬件平臺204可以包括處理器208、隨機存取存儲器210、以及非易失性存儲212。硬件平臺204還可包括用戶接口 214和網(wǎng)絡接口 216。
[0087]隨機存取存儲器210可以是包含可由處理器208快速訪問的數(shù)據(jù)對象和可執(zhí)行代碼的存儲。在許多實施例中,隨機存取存儲器210可具有將存儲器210連接到處理器208的尚速總線。
[0088]非易失性存儲212可以是在關閉設備202之后持久保持的存儲。非易失性存儲212可以是任何類型的存儲設備,包括硬盤、固態(tài)存儲器設備、磁帶盒、光學存儲、或其他類型的存儲。非易失性存儲212可以是只讀、或能夠讀/寫。在一些實施例中,非易失性存儲212可以是基于云的網(wǎng)絡存儲或可通過網(wǎng)絡連接訪問的其他存儲。
[0089]用戶接口 214可以是能夠顯示輸出并且從用戶接收輸入的任何類型的硬件。在許多情況下,輸出顯示可以是圖形顯示監(jiān)視器,但是輸出設備可包括燈光和其他視覺輸出、音頻輸出、動力致動器輸出、以及其他輸出設備。常規(guī)輸入設備可包括鍵盤和定點設備,諸如鼠標、指示筆、跟蹤球、或其他定點設備。其他輸入設備可包括各種傳感器,包括生物測定輸入設備、音頻和視頻輸入設備、以及其他傳感器。
[0090]網(wǎng)絡接口 216可以是到另一計算機的任何類型的連接。在許多實施例中,網(wǎng)絡接口 216可以是有線以太網(wǎng)連接。其他實施例可包括基于各種通信協(xié)議的有線或無線連接。
[0091]軟件組件206可包括操作系統(tǒng)218,各種應用244和服務可在操作系統(tǒng)218上操作。操作系統(tǒng)可在執(zhí)行例程和硬件組件204之間提供抽象層,并且可包括與各個硬件組件直接通信的各種例程和功能。
[0092]實施例200