計算機系統及通過計算機系統執行的性能監控方法【專利摘要】本發明實施例公開計算機系統及性能監控方法。所述計算機系統包括:存儲單元和處理單元,其中,多個任務在所述處理單元的控制下進行切換;所述處理單元用于在任務切換被執行的位置提供回調函數,且當第一任務切換發生時重置性能監控單元的用于外部訪問計數的計數器,當第二任務切換發生時,從所述計數器讀取計數值記錄到所述存儲單元的日志中作為所述第一任務的記錄,并在這之后為所述第二任務重置所述計數器;其中,所述日志中在一預定時間段對應所述第一任務的記錄被求和來分析所述第一任務的性能,由此確定對一個特定事件所述第一任務的外部訪問的性能。本發明實施例可精確地確定在一個給定時間段內所選擇的任務的發生及性能。【專利說明】計算機系統及通過計算機系統執行的性能監控方法[0001]本發明要求申請日為2015年2月2日,專利號為62/110,678的美國臨時專利的優先權,該美國專利的全部內容均包含在本發明中。【
技術領域:
】[0002]本發明涉及計算機
技術領域:
,尤其涉及一種計算機系統及通過計算機系統執行的性能監控方法。【【
背景技術:
】】[0003]近些年,性能監控單元(PerformanceMonitoringUnits,PMU)已被廣泛地應用在高端處理器中。性能監控單元主要以硬件方式建立在處理器內部以測試所述處理器的性能參數,為獲取性能信息,所述性能監控單元中的一個或多個計數器(counter)對計算機系統中的多個事件進行計數。而這些計數器的操作受控制寄存器(controlregister)所管理。通常情況下,可通過軟件對所述控制寄存器和所述計數器進行讀寫,因此,用戶可通過向所述控制寄存器中寫入參數來選擇計算機系統中將被監控的事件(events)以及指定所述計數器被使能的條件。[0004]有了性能監控單元,可依靠處理器所提供的支持(也即硬件)來測量指令周期(instruct1ncycle)、高速緩存命中(cachehits)、高速緩存未命中(cachemisses)、分支錯誤(branchmisses)及其他很多的參數。在這類測量中,累積一個給定時間段內所發生的事件的總數量并在該給定時間段結束時一起進行報告。所述性能控制寄存器用于對所期望的事件進行計數,并且在所述監控期結束后這些寄存器的值(values)可被讀取。[0005]當前,所讀取的值僅有助于確定或提供一個給定時間段內所發生的事件的總數或所選擇的事件的發生,沒有信息可精確地確定在一個給定時間段內所選擇的任務(task)的發生。【【
發明內容】】[0006]本發明提供計算機系統及通過計算機系統執行的性能監控方法。[0007]本發明提供的一種計算機系統,可包括:存儲單元;處理單元,包括用于監控多個任務的性能監控單元;其中,所述多個任務在所述處理單元的控制下進行切換;其中,所述處理單元用于在任務切換被執行的位置提供回調函數,且當用于將任務的執行切換為所述多個任務的第一任務的第一任務切換發生時重置所述性能監控單元的用于外部訪問計數的計數器,以及,當用于將任務的執行從所述多個任務的所述第一任務切換為第二任務的第二任務切換發生時,從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的值記錄到所述存儲單元中的日志中作為所述第一任務的記錄,以及,在該次所述第一任務的記錄產生之后為所述第二任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在一預定時間段對應所述第一任務的記錄被求和來分析所述第一任務在所述預定時間段內的性能,由此確定對一個特定事件所述第一任務的外部訪問的性能。[0008]另外,本發明提供的一種通過計算機系統所執行的性能監控方法,所述計算機系統包括處理單元和存儲單元,其中所述處理單元包括用于監控多個任務的性能監控單元,所述方法包括:通過所述處理單元在任務切換被執行的位置提供回調函數;當用于將任務的執行切換為所述多個任務的第一任務的第一任務切換發生時,通過所述處理單元重置所述性能監控單元的用于外部訪問計數的計數器;當用于將任務的執行從所述多個任務的所述第一任務切換為第二任務的第二任務切換發生時,通過所述處理單元從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的值記錄到所述存儲單元中的日志中作為所述第一任務的記錄;以及,在該次所述第一任務的記錄產生后為所述第二任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在一預定時間段對應所述第一任務的所述記錄被求和來分析所述第一任務在所述預定時間段內的性能,由此確定對一個特定事件所述第一任務的外部訪問的性能。[0009]通過上述所提供的方案,本發明實施例可精確地確定在一個給定時間段內所選擇的任務的發生及性能。【【附圖說明】】[0010]圖1為依據本發明的一個實施例的計算機系統的功能單元的結構示意圖。[0011]圖2為依據本發明的一個實施例的任務的性能監控的方法的流程圖。[0012]圖3為依據本發明的一個實施例的在一個預定時間段內對一個特定事件的執行流程。[0013]圖4為依據本發明的一個實施例的對應于圖3的執行流程的日志的結構示意圖。[0014]圖5為依據本發明的另一個實施例的在一預定時間段內一特定事件的執行流程示意圖。[0015]圖6為依據本發明的另一個實施例的對應于圖5的執行流程的日志的結構示意圖。[0016]圖7為依據本發明的另一個實施例的在一個預定時間段內的一個日志的示意圖。【【具體實施方式】】[0017]接下面的描述為本發明預期的最優實施例。這些描述用于闡述本發明的大致原則而不應用于限制本發明。本發明的保護范圍應在參考本發明的權利要求的基礎上進行認定。[0018]圖1為依據本發明的一個實施例的計算機系統100的功能單元的結構示意圖。在一些實施例中,計算機系統100可為一個臺式電腦或一個移動設備,例如,可為移動電話、智能手機、便攜式媒體播放器(PortableMediaPlayer,PMP)、掌上游戲機、平板計算機、或者筆記本電腦等。計算機系統100至少可包括處理單元110、存儲單元120以及顯示裝置130。處理單元110可包括一處理器和其他信號處理電路。所述處理器可為中央處理單元(CentralProcessingUnit,CPU)、微控制單元(Micro-ControlUnit,MCU)、數字信號處理器(DigitalSignalProcessor,DSP),諸如此類,它們用于提供數據處理和計算的功能。處理單元110可進一步包括性能監控單元112用于對多個任務(task)進行性能監控。更具體而言,所述處理單元110可裝載并執行一系列來自于所述存儲單元120的指令和/或程序代碼來控制所述處理單元110、所述存儲單元120以及所述顯示裝置130的操作來執行本發明的方法,包括:在執行任務切換(taskswitch)的位置提供回調函數(callbackfunct1n);當用于將任務的執行切換為第一任務的第一任務切換發生時,重置(reset)所述性能監控單元的用于外部訪問計數的計數器;當用于將任務的執行從所述第一任務切換為第二任務的第二任務切換發生時,從所述性能監控單元(用于執行任務監控)的用于外部訪問計數的計數器讀取計數值并將所讀取的值記錄到存儲單元中的日志中作為所述第一任務的記錄,并在所述第一任務的記錄產生后為所述第二任務重置所述性能監控單元的用于外部訪問計數的計數器。所述回調函數的第一個作用為當任務切換或任務之間的內容切換發生時,從所述用于外部訪問計數的計數器(例如,從所述性能監控單元的總線讀/寫寄存器)中讀取計數值并將讀取的值記錄到日志122中作為在被切換的第一任務(也即,任務的執行是從所述第一任務切換為另外的第二任務)期間已經發生的事件的數量。所述回調函數的第二個作用為在任務的切換的過程中(也即,任務自所述第一任務切換為所述下一任務)為下一個將要切換到的任務重置所述計數器(也即,將所述性能監控單元的總線讀/寫寄存器的值清空為O)。[0019]所述存儲單元120可為非易失性存儲器(non-volatilestoragemedium),例如,只讀存儲器(Read-OnIyMemory,ROM)、閃存(Flashmemory)、磁性錄音帶(magnetictape)、硬盤(harddisk);或者,所述存儲單元120可為易失性存儲器,例如,隨機存取存儲器(RandomAccessMemory,RAM);或者,所述存儲單元120可為上述存儲器的任何組合以用于存儲數據,例如指令、程序代碼,用戶簽名信息等。存儲單元120可存儲操作系統(未圖示)的程序代碼,例如LINUX、UNIX、0SX、Android、1S或WINDOWS操作系統,或者嵌入式操作系統,例如嵌入在操作系統中的VxWorks。所述操作系統可執行程序用來處理基本的系統服務和執行硬件相關的任務。顯示裝置130可為液晶顯示器(Liquid-CrystalDisplay,LCD)、發光二極管(Light-EmittingD1de,LED)顯不器、電子紙顯不器(ElectronicPaperDisplay,EPD)等用于提供顯示功能。在一些實施例中,所述顯示裝置還可集成有觸摸感應裝置(未圖示)。所述觸摸感應裝置包括一個觸摸感應表面,所述觸摸感應表面包括位于至少一個維度上的多個傳感器用于檢測至少一個物體(輸入工具)在所述觸摸感應表面或接近所述觸摸感應表面的接觸和/或移動,所述物體例如為一支筆(鋼筆或鐵筆)或人手。[0020]盡管未進行圖示,所述計算機系統100還可包括其他的功能單元,例如無線通信單元,輸入/輸出裝置,例如,按扭(button)、鍵盤(keyboard)、或鼠標等,并且本發明不限于此。所述無線通信單元負責提供有線或無線網絡接入,因此,所述計算機系統100可連接至互聯網或連接至建立在所述互聯網上的特定的服務器。所述有線網絡接入可包括以太網連接,不對稱數字用戶線(AsymmetricDigitalSubscriberLine,ADSL),電纜連接(cableconnect1n),諸如此類。所述無線網絡接入可包括到無線局域網(WirelessLocalAreaNetwork,WLAN)的連接,寬帶碼分多址移動通信系統(WCDMA),碼分多址連接2000網絡系統(⑶MA-2000),時分-同步碼分多址接入系統(TD-SCDMA),微波接入全球互通系統(WiMAX),長期演進系統(LTE),長期演進高級系統(LTE-A),或者時分長期演進系統(TD-LTE)。所述無線通信單元可包括射頻單元(RF)和基帶單元。具體地,所述基帶單元可包括多個硬件裝置用于執行基帶信號處理,包括模數/數模轉換(ADC/DAC),增益調整,調φ?」/解調,編碼/解碼,等等,所述射頻單元可接收射頻無線信號,將接收的射頻無線信號轉換為由基帶單元處理的基帶信號,或者至所述基帶單元接收基帶信號并將接收的基帶信號轉換為射頻無線信號用于后續發送。所述射頻單元也可包括多個硬件裝置用于執行射頻信號轉換,例如包括一個混頻器用于將所述無線通信系統的射頻中的振蕩的載波與所述基帶信號相乘,其中,使用在無線保真技術中的射頻可為2.4GHz或5GHz,使用在藍牙技術中的射頻可為2.402?2.480GHz,或者依據其他使用的無線技術,射頻可為其他取值。[0021]圖2為依據本發明的一個實施例的任務的性能監控(performancemonitoring)的方法的流程圖。在此實施例中,所述方法可應用于圖1所示的計算機系統100并由所述計算機系統100的處理單元110所執行。[0022]首先,在步驟S202,在處理單元執行任務切換的位置提供一個回調函數。所述執行任務切換的位置表示本發明中的當一個任務切換發生時所述處理單元110將要在任務之間執行一個上下文切換(contextswitch)來將執行一個任務切換為執行另一個任務的位置。因此,每當任務切換發生時,所述處理單元110可執行所述回調函數。具體地,當用于將任務的執行由第一任務Tl切換為第二任務T2的第二任務切換發生時,或者當用于將任務的執行由第二任務T2切換回第一任務Tl的第三任務切換發生時,執行所述回調函數。[0023]然后,在步驟S204,當用于將任務的執行切換為第一任務Tl的第一任務切換發生時,所述處理單元110根據所述回調函數重置所述性能監控單元的用于外部訪問計數的計數器。更詳細而言,重置所述性能監控單元112的用于外部訪問計數的計數器表示將所述計數器的計數值清空并設置計數值為O。在一個實施例中,所述性能監控單元112的用于外部訪問計數的計數器為所述性能監控單元112的一個總線讀/寫寄存器,每當執行一次總線讀/寫操作,該總線讀/寫寄存器便計數一次。基于所述性能監控單元的所述用于外部訪問計數的計數器的計數值,可測量對一個特定任務的外部訪問的帶寬或性能。更具體而言,由于計數器被重置了,計數器的計數值被設置為0,在第一任務Tl的執行過程中,所述計數器開始計數并在每次總線讀/寫操作發生時將計數器加I。[0024]隨后,在步驟S206,當用于將任務的執行由所述第一任務Tl切換為所述第二任務T2的第二任務切換發生時,所述處理器110根據所述回調函數將所述性能監控單元112的用于外部訪問計數的所述計數器的計數值讀取出來并將所述讀取的值記錄到所述存儲單元120的一個日志122中作為所述第一任務的一個記錄。[0025]在步驟S208,在所述日志122產生之后,為了所述第二任務,所述處理器110根據所述回調函數將所述性能監控單元112的用于外部訪問計數的所述計數器進行重置。在此之后,如果一個軟件工程師或調試員想要分析一個預定時間段內(例如,I毫秒,10毫秒或其他時間段)的所有任務的任務性能,在步驟S210,可基于上述所提及的步驟產生一個預定時間段內的日志122,并且所述預定時間段內的所述日志122中的每一個任務的記錄被求和來分析在所述預定時間段內每一個任務的性能,以便確定針對一個特定事件每一個任務的外部訪問的性能。例如,在所述預定時間段內的所述日志中的所述第一任務Tl的所有的記錄被求和來分析所述預定時間段內所述第一任務的性能,以便確定針對一個特定事件所述第一任務Tl的外部訪問的性能。[0026]圖3為依據本發明的一個實施例的在一個預定時間段內對一個特定事件的執行流程。在該實施例中,假設有三個任務Tl,T2和T3在包括一個處理核心或CPU的處理單元中被切換。如圖3所示,所述執行流程示出了所述多個任務按照Tl到Τ2,再到Tl,最后到Τ3的順序被執行,其中,任務Tl被執行了兩次,而所述任務T2和T3被執行了一次,其中,TiNj表示對所述任務Ti的第j次外部訪問的計數值(在該實施例中,該第TiNj記錄的是所述特定事件發生的次數)。例如,TlNl表示對第一任務Tl的第一計數值。T2N1表示對第二任務T2的第一計數值,T1N2表示對第一任務Tl的第二計數值,T3N1表示對第三任務T3的第一計數值。[0027]圖4為依據本發明的一個實施例的對應于圖3的執行流程的日志的結構示意圖。如圖4所示,在日志300中示出了任務Tl被執行了兩次,其中,TiNj表示對所述任務Ti的第j次外部訪問的計數值。例如,TlNl表示對第一任務Tl的第一計數值。T2N1表示對第二任務T2的第一計數值,T1N2表示對第一任務Tl的第二計數值,T3N1表示對第三任務T3的第一計數值,以此類推。可通過將日志300中與任務Tl相關的計數值求和的方式來計算任務Tl期間已經發生的事件的總數TNl,也即,TNl=T1N1+T1N2,因為在日志300中對任務Tl有兩個記錄。可通過將日志300中與任務T2相關的計數值求和的方式來計算任務T2期間已經發生的事件的總數TN2,也即,TN2=T2N1,因為在日志300中對任務T2僅有一個記錄。可通過將日志300中與任務T3相關的計數值求和的方式來計算任務T3期間已經發生的事件的總數TN3,也即,TN3=T3N1,因為在日志300中對任務T3僅有一個記錄。隨后,軟件工程師可根據所有任務期間發生的事件的總數從這些任務中選擇任務用于優化。例如,當TlNl,T2N1,T1N2以及T3N1的值分別為2,5,1,4,由于任務T2期間發生的事件的總數相比其他任務而言為最大值,因此為了優化,任務T2將被選擇來被重寫或重設計。[0028]在一些實施例中,處理單元110還可包括兩個或更多的處理核心或CPU,并且,當用于在每一個處理核心或CPU中將任務的執行切換為第一任務的第四任務切換發生時,所述處理單元110還用于重置所述性能監控單元112的所述用于外部訪問計數的計數器;以及,當用于在每一個處理核心或CHJ中將任務的執行由所述第一任務切換為第二任務的第五任務切換發生時,所述處理單元110還用于從所述性能監控單元112的所述用于外部訪問計數的計數器中讀取計數值并將讀取的計數值記錄到日志122中作為所述第一任務的記錄;以及,在所述日志被產生后,為每一個處理核心或CPU中的所述第二任務重置所述性能監控單元的用于外部訪問計數的所述計數器。所有處理核心的所述第一任務在所述預定時間段內在所述日志122中的記錄可被求和來分析所述第一任務在所述預定時間段內的性能,以便確定對一個特定事件的所述第一任務的外部訪問性能。[0029]圖5為依據本發明的另一個實施例的在一預定時間段內一特定事件的執行流程示意圖。在此實施例中,假設有四個任務TI,T2,T3以及T4在具有兩個處理核心或CPU(CPUO和CPU1)的處理單位中被切換。如圖5所示,所述執行流程示出了在CPUO中,所述多個任務按照TI到T2,再到TI,再到T3的順序被執行,而在CPU2中,所述多個任務按照T4到TI,再到T4,最后到T2的順序被執行。其中,TiNjCk表示在CPUk中對所述任務Ti的外部訪問的第j計數值。[0030]圖6為依據本發明的另一個實施例的對應于圖5的執行流程的日志的結構示意圖。如圖6所示,日志400中示出任務TI在CPUO中被執行了兩次而在CPUl中被執行了一次,并且,其中,TiNjCk表示在CPUk中對所述任務Ti的第j次外部訪問的計數值。例如,TINlCO,T2N1C0,T1N2C0以及T3N1C0分別表示在CPUO中對任務Tl的第一計數值,在CPUO中對任務T2的第一計數值,在CPUO中對任務TI的第二計數值以及在CPUO中對任務T3的第一計數值。類似的,了4~1(:1,1'1附(:134似(:1以及了2~1(:1分別表示在0?1]1中對任務了4的第一計數值,在CPUl中對任務Tl的第一計數值,在CPUl中對任務T4的第二計數值以及在CPUl中對任務T2的第一計數值。通過將日志中與任務Ti相關的計數值求和來計算所有CPU中任務Ti期間已發生的事件的總數。例如,可通過將日志400中與任務Tl相關的計數值求和來計算所有CPU中(也即,CI3UO和CPUl)任務Tl期間已發生的事件總數TN1’,也即,ΤΝΓ=T1N1C0+T1N2C0+TlNlCl,因為在日志400中,在CPUO中對任務Tl有兩條記錄而在CPUl中對任務Tl有一條記錄。在一個實施例中,可通過將記錄在所述日志中的與每一個CPU中的任務Ti相關的計數值求和來計算每一個CPU中任務Ti期間已發生的事件的總數。例如,可通過將日志400中與CPUO中的任務TI相關的計數值求和來計算CPUO中任務TI期間已發生的事件的總數TNIO”,也即,TN10”=T1N1C0+T1N2C0,而可通過將日志400中與CPUl中的任務Tl相關的計數值求和來計算CPUl中任務Tl期間已發生的事件的總數TN11”,也即,TNlI”=TlNlCl,因為在日志400中,有兩條對CPUO中的任務Tl的記錄而有一條對CPUl中的任務Tl的記錄。隨后,軟件工程師根據單個CPU中或所有CPU中所有任務期間已發生的事件的總數來從這些任務中選擇任務用于優化。[0031]根據本發明的另一個實施例,可確定在預定時間段內函數調用(funct1ncall)的次數、子程序的數量或者模塊的數量來對每一個任務提供基于函數的分析。例如,在一個實施例中,所述第一任務可包括多個函數調用且所述處理單元110可用于為每一個函數調用提供標簽(tag)。具體而言,所述處理單元110在第二任務切換發生之前的每次函數調用被執行時為第一函數調用產生所述標簽以用于對所述第一函數調用計數,并讀取為所述第一函數調用的發生進行計數的計數值,以及當所述第二任務切換發生時將所述讀取的值記錄到所述存儲單元的日志中作為所述第一函數調用的一個記錄。[0032]圖7為依據本發明的另一個實施例的在一個預定時間段內的一個日志的示意圖。在此實施例中,假設任務Tl和任務T2在包括有一個處理核心或CPU的處理單元中被切換,且任務Tl包括兩個函數調用FCO和FC1。如圖7所示,日志500中示出任務Tl被執行了I次,其中TiNjFml表示第j次外部訪問任務Ti且第1+1次執行或調用函數調用FCm時的計數值。例如,T1N1F00和T1N1F10分別表示第I次外部訪問任務Tl且第I次調用函數調用FCO時的計數值和第I次外部訪問任務Tl且第I次調用函數調用FCl時的計數值,而T1N1F01表示第I次外部訪問任務Tl且第2次執行或調用函數調用FCO時的計數值。類似的,任務Tl中的每一個函數調用期間發生的事件的總數可通過將日志中與所述任務Tl的所述函數調用相關的計數值進行求和的方式來計算。由此,軟件工程師可根據任務Tl中的所有函數調用期間已發生的事件總數來從這些所有的函數調用中選擇一個函數調用用于任務Tl的進一步優化。[0033]因此,根據本發明的非計算機可讀存儲介質,計算機系統及相關的對任務的性能監控的方法,在任意一個預定時間段內發生在每一個任務中的外部訪問事件的數量可精確地確定,因此,可為任務性能優化(performanceoptimizat1n)提供有用的信息。此外,本發明的方法可被包括一個或多個處理核心的處理單元所執行用于對任意預定時間段內任一個處理核心或所有處理核心中的每一個任務發生的外部訪問的次數進行計數,以發現開銷瓶頸(overheadbottleneck)的任務,以便調整和增強用于任務執行和調試的整體系統性能。[0034]本發明所描述的任務的性能監控的方法的實施例,或者所述實施例的特定方面或特定部分,可實施于邏輯電路中,或者可以程序代碼(也即,指令)的形式內嵌于有形的媒介(例如,軟盤、只讀光盤、硬盤、或者其他任意的機器可讀存儲介質)中,其中,當所述程序代碼被設備(例如,智能電話、移動電話、或者類似設備)裝載并執行,所述設備變為實施本發明的一個裝置。本發明所揭露的方法也可表現為程序代碼的形式而在傳輸媒介(例如,電線或電纜,光纖,或其他傳輸形式)之間被傳送,其中,當所述程序代碼被一個設備接收、裝載并執行,所述設備變為實施本發明的一個裝置。當實施于一個通用處理器上,所述程序代碼連同所述處理器形成一個運作類似于特定邏輯電路的獨立的裝置。[0035]雖然本發明已經通過舉例的方式以及根據優選實施例作了描述,但應當理解的是本發明不限于此。本領域技術人員還可以做各種變化和修改而不脫離本發明的范圍和精神。[0036]權利要求書中用以修飾元件的“第一”、“第二”等序數詞的使用本身未暗示任何優先權、優先次序、各元件之間的先后次序、或所執行方法的時間次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)的不同元件。[0037]本發明雖以較佳實施例揭露如上,然其并非用以限定本發明的范圍,任何本領域技術人員,在不脫離本發明的精神和范圍內,當可做些許的更動與潤飾,因此本發明的保護范圍當視權利要求所界定者為準。【主權項】1.一種計算機系統,其特征在于,包括:存儲單元;處理單元,包括用于監控多個任務的性能監控單元;其中,所述多個任務在所述處理單元的控制下進行切換;其中,所述處理單元用于在任務切換被執行的位置提供回調函數,且當用于將任務的執行切換為所述多個任務的第一任務的第一任務切換發生時重置所述性能監控單元的用于外部訪問計數的計數器,以及,當用于將任務的執行從所述多個任務的所述第一任務切換為第二任務的第二任務切換發生時,從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的計數值記錄到所述存儲單元中的日志中作為所述第一任務的記錄,以及,在該次所述第一任務的記錄產生之后為所述第二任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在一預定時間段對應所述第一任務的記錄被求和來分析所述第一任務在所述預定時間段內的性能,由此確定對一個特定事件所述第一任務的外部訪問的性會K。2.如權利要求1所述的計算機系統,其特征在于,所述處理單元還用于:當用于將任務的執行從所述第二任務切換回所述第一任務的第三任務切換發生時從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的計數值記錄到所述存儲單元中的日志中作為所述第二任務的記錄,以及,在該次第二任務的記錄產生之后為所述第一任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在所述預定時間段內對應所述第二任務的所述記錄被求和來分析所述第二任務在所述預定時間段內的性能,由此確定對所述特定事件所述第二任務的外部訪問的性能。3.如權利要求1所述的計算機系統,其特征在于,所述第一任務還包括多個函數調用,所述處理單元還用于:為每一個所述函數調用提供一個標簽,并在第二任務切換發生之前的每次函數調用被執行時為第一函數調用產生所述標簽以用于對所述第一函數調用的發生計數,以及當所述第二任務切換發生時讀取為所述第一函數調用的發生進行計數的計數值并將所述讀取的計數值記錄到所述存儲單元的日志中作為所述第一函數調用的一個記錄。4.如權利要求1所述的計算機系統,其特征在于,所述處理單元還包括多個處理核心,且所述處理單元進一步用于:當用于在每一個處理核心中將任務的執行切換為第一任務的第四任務切換發生時,重置所述性能監控單元的所述用于外部訪問計數的計數器;以及,當用于在每一個處理核心中將任務的執行由所述第一任務切換為第二任務的第五任務切換發生時,從所述性能監控單元的所述用于外部訪問計數的計數器中讀取計數值并將讀取的計數值記錄到所述日志中作為所述第一任務的記錄;以及,在該次第一任務的記錄產生之后為每一個處理核心中的所述第二任務重置所述性能監控單元的用于外部訪問計數的所述計數器;其中,所有處理核心的所述第一任務在所述預定時間段內在所述日志中的記錄可被求和來分析所述第一任務在所述預定時間段內的性能,以便確定對應特定事件所述第一任務的外部訪問的性能。5.如權利要求1所述的計算機系統,其特征在于,所述性能監控單元的所述用于外部訪問計數的計數器為所述性能監控單元的總線讀/寫寄存器。6.如權利要求1所述的計算機系統,其特征在于,所述處理單元還用于:當所述第一任務的所述求和的結果大于所述第二任務的所述求和的結果時,選擇所述第一任務進行優化。7.—種通過計算機系統執行的性能監控方法,所述計算機系統包括處理單元和存儲單元,其中所述處理單元包括用于監控多個任務的性能監控單元,其特征在于,所述方法包括:通過所述處理單元在任務切換被執行的位置提供回調函數;當用于將任務的執行切換為所述多個任務的第一任務的第一任務切換發生時,通過所述處理單元重置所述性能監控單元的用于外部訪問計數的計數器;當用于將任務的執行從所述多個任務的所述第一任務切換為第二任務的第二任務切換發生時,通過所述處理單元從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的計數值記錄到所述存儲單元中的日志中作為所述第一任務的記錄;以及,在該次所述第一任務的記錄產生后為所述第二任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在一預定時間段對應所述第一任務的所述記錄被求和來分析所述第一任務在所述預定時間段內的性能,由此確定對一個特定事件所述第一任務的外部訪問的性能。8.如權利要求7所述的方法,其特征在于,還包括:當用于將任務的執行從所述第二任務切換回所述第一任務的第三任務切換發生時,通過所述處理單元從所述性能監控單元的所述用于外部訪問計數的計數器讀取計數值并將所讀取的計數值記錄到所述存儲單元中的日志中作為所述第二任務的記錄,以及,在該次所述第二任務的記錄產生之后,通過所述處理單元為所述第一任務重置所述性能監控單元的所述用于外部訪問計數的計數器;其中,所述日志中在所述預定時間段內對應所述第二任務的所述記錄被求和來分析所述第二任務在所述預定時間段內的性能,由此確定對所述特定事件所述第二任務的外部訪問的性能。9.如權利要求7所述的方法,其特征在于,所述第一任務還包括多個函數調用,所述方法還包括:通過所述處理單元為每一個所述函數調用提供一個標簽;在第二任務切換發生之前的每次函數調用被執行時,通過所述處理單元為第一函數調用產生所述標簽以用于對所述第一函數調用的發生計數;以及,當所述第二任務切換發生時,通過所述處理單元讀取為所述第一函數調用的發生進行計數的計數值并將所述讀取的計數值記錄到所述存儲單元的日志中作為所述第一函數調用的一個記錄。10.如權利要求7所述的方法,其特征在于,所述處理單元還包括多個處理核心,且所述方法還包括:當用于在每一個處理核心中將任務的執行切換為第一任務的第四任務切換發生時,通過所述處理單元重置所述性能監控單元的所述用于外部訪問計數的計數器;當用于在每一個處理核心中將任務的執行由所述第一任務切換為第二任務的第五任務切換發生時,通過所述處理單元從所述性能監控單元的所述用于外部訪問計數的計數器中讀取計數值并將讀取的計數值記錄到所述日志中作為所述第一任務的記錄;在該次所述第一任務的記錄產生之后,通過所述處理單元為每一個處理核心中的所述第二任務重置所述性能監控單元的用于外部訪問計數的所述計數器;其中,所有處理核心的所述第一任務在所述預定時間段內在所述日志中的記錄可被求和來分析所述第一任務在所述預定時間段內的性能,以便確定對應特定事件所述第一任務的外部訪問的性能。【文檔編號】G06F11/34GK105843731SQ201610018626【公開日】2016年8月10日【申請日】2016年1月12日【發明人】喬夢麟,曾柏坤【申請人】聯發科技股份有限公司