ローカル データベース管理システムでいくつかのベンチマークを実行しようとしています。次のような情報を表示する GUI を考え出す必要があります。
- 各コアのCPU使用率
- メモリ使用量
- HDD I/O
- ..等
Vb.netは使用しませんが、必要に応じて p/invoke またはネイティブ コードを使用できます
次のコードは次のとおりです。情報を取得できる限り
Set objCimv2 = GetObject("winmgmts:root\cimv2")
Set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
' Add items to the SWbemRefresher
' Without the SWbemRefreshableItem.ObjectSet call,
' the script will fail
Set objMemory = objRefresher.AddEnum _
(objCimv2, _
"Win32_PerfFormattedData_PerfOS_Memory").ObjectSet
Set objDiskQueue = objRefresher.AddEnum _
(objCimv2, _
"Win32_PerfFormattedData_PerfDisk_LogicalDisk").ObjectSet
Set objQueueLength = objRefresher.AddEnum _
(objCimv2, _
"Win32_PerfFormattedData_PerfNet_ServerWorkQueues").ObjectSet
' Initial refresh needed to get baseline values
objRefresher.Refresh
intTotalHealth = 0
' Do three refreshes to get data
For i = 1 to 3
WScript.Echo "Refresh " & i
For each intAvailableBytes in objMemory
WScript.Echo "Available megabytes of memory: " _
& intAvailableBytes.AvailableMBytes
If intAvailableBytes.AvailableMBytes < 4 Then
intTotalHealth = intTotalHealth + 1
End If
Next
For each intDiskQueue in objDiskQueue
WScript.Echo "Current disk queue length " & "Name: " _
& intDiskQueue.Name & ":" _
& intDiskQueue.CurrentDiskQueueLength
If intDiskQueue.CurrentDiskQueueLength > 2 Then
intTotalHealth = intTotalHealth + 1
End If
Next
For each intServerQueueLength in objQueueLength
WScript.Echo "Server work queue length: " _
& intServerQueueLength.QueueLength
If intServerQueueLength.QueueLength > 4 Then
intTotalHealth = intTotalHealth + 1
End If
Wscript.Echo " "
Next
If intTotalHealth > 0 Then
Wscript.Echo "Unhealthy."
Else
Wscript.Echo "Healthy."
End If
intTotalHealth = 0
Wscript.Sleep 5000
' Refresh data for all objects in the collection
objRefresher.Refresh
Next
C#、asp.net webforms、フレームワーク 4.0 - 4.02 を使用して、リアルタイム ハードウェア (現在のバージョンは Windows 7 x64) の情報と統計にアクセスするための優れた API を探しています。今のところ私が知っているのは、「プロセス」を操作してアクセスする方法だけですが、この投稿で必要なバインドはしていません。