Windows PDH庫在效能測試中的應用

2021-06-19 19:12:07 字數 954 閱讀 7311

相信大家都已經使用過了windows自帶的效能測試工具perfmon。perfmon能夠實時的抓取當前環境的硬體資訊,並直觀的展示出來。但是當你想在程式設計中利用這些資料,perfmon就不是那麼方便了。那麼windows是否提供了合適的api來完成這些功能呢?答案是肯定的,這就是performance data helper(pdh)庫。pdh庫提供了一組功能強大的介面,讓使用者能夠方便的獲取到包括cpu資訊,記憶體資訊,i/o資訊等等在內的效能資料。

使用pdh庫獲取效能資料的過程如下:首先,通過開啟乙個查詢(pdhopenquery()),然後在在該查詢中新增需要的計數器(pdhaddcounter()),然後在合適的時間點採集資料pdhcollectquerydata(),然後在從結構pdh_fmt_countervalue中得到資料(dhgetformattedcountervalue())。在使用完成後,還需要關閉該查詢。

在上面的過程中,我們需要定位到乙個具體的計數器,作為api的引數。執行環境的硬體資料和os資料的種類十分繁多,準確精煉的表示這些資料的意義是非常關鍵的。windows的做法是乙個被成為counter path的字串表示。顧名思義,這個字串非常類似於檔案系統的檔案路徑。counter path的語法如下:

\\computer\perfobject(parentinstance/objectinstance#instanceindex)\counter

其中,computer表示機器名或者ip位址,預設值為本機;perfobject表示效能物件,通常為處理器,記憶體等等;parentinstance,objectinstance和instanceindex是可選項,在物件有多個例項的時候用到;最後,counter表示相應的暫存器。例如:

\\127.0.0.1\processor\% processor time

該counter path表示本地的處理器的cpu利用率。將該字串作為引數傳遞給pdhaddcounter就可以將該計數器新增到查詢中去了。

mysql 效能壓測後調優 MySQL效能測試調優

mysql效能測試調優 作業系統 基本操作 檢視磁碟分割槽mount選項 mount 永久修改分割槽mount選項 系統重啟後生效 修改檔案 etc fstab 中對應分割槽的mount options列的值 sudo t ext4 o remount,noatime,errors remount ...

CPU效能壓測

有時候為了專案需求需要對cpu效能做乙個壓力測試,這裡提供一種方法。通過對圓周率位數進行計算進而確定cpu效能,根據定義預計執行時間,具體操作如下 time echo scale 1000 4 a 1 bc l q 通過該命令執行,如果3 4分鐘沒有出現結果,基本問題就可以定位在cpu上,這裡我通過...

MYSQL sysbench效能壓測

sysbench是基於luajit的可編寫指令碼的多執行緒基準測試工具。它最常用於資料庫基準測試,但也可以用於建立不涉及資料庫伺服器的任意複雜的工作負載。參考官方文件 二進位制安裝 rhel centos curl s sudo bash sudo yum y install sysbench ro...