OS X(10.6および10.7)のCocoa/Objective-CでGPU使用率を取得する標準的な方法はありますか?OS XでGPU使用率をプログラムで取得
答えて
私が知る限り、これを直接行うためのCarbon関数はありません。おそらく、おそらくMach APIを使ってカーネルに問い合わせることです。
This example on Apple Dev. Libraryをご利用ください。
パフォーマンスモニタリング辞書が公開されていないため、GPUとRAMの使用を楽しんでください。ディスクリートGPUでは動作しません。私のMBPはNVIDIA gpuを持っていますが、ATIでも動作するはずですが、私はよく分かりません。
#include <CoreFoundation/CoreFoundation.h>
#include <Cocoa/Cocoa.h>
#include <IOKit/IOKitLib.h>
int main(int argc, const char * argv[])
{
while (1) {
// Get dictionary of all the PCI Devicces
CFMutableDictionaryRef matchDict = IOServiceMatching(kIOAcceleratorClassName);
// Create an iterator
io_iterator_t iterator;
if (IOServiceGetMatchingServices(kIOMasterPortDefault,matchDict,
&iterator) == kIOReturnSuccess)
{
// Iterator for devices found
io_registry_entry_t regEntry;
while ((regEntry = IOIteratorNext(iterator))) {
// Put this services object into a dictionary object.
CFMutableDictionaryRef serviceDictionary;
if (IORegistryEntryCreateCFProperties(regEntry,
&serviceDictionary,
kCFAllocatorDefault,
kNilOptions) != kIOReturnSuccess)
{
// Service dictionary creation failed.
IOObjectRelease(regEntry);
continue;
}
CFMutableDictionaryRef perf_properties = (CFMutableDictionaryRef) CFDictionaryGetValue(serviceDictionary, CFSTR("PerformanceStatistics"));
if (perf_properties) {
static ssize_t gpuCoreUse=0;
static ssize_t freeVramCount=0;
static ssize_t usedVramCount=0;
const void* gpuCoreUtilization = CFDictionaryGetValue(perf_properties, CFSTR("GPU Core Utilization"));
const void* freeVram = CFDictionaryGetValue(perf_properties, CFSTR("vramFreeBytes"));
const void* usedVram = CFDictionaryGetValue(perf_properties, CFSTR("vramUsedBytes"));
if (gpuCoreUtilization && freeVram && usedVram)
{
CFNumberGetValue((CFNumberRef) gpuCoreUtilization, kCFNumberSInt64Type, &gpuCoreUse);
CFNumberGetValue((CFNumberRef) freeVram, kCFNumberSInt64Type, &freeVramCount);
CFNumberGetValue((CFNumberRef) usedVram, kCFNumberSInt64Type, &usedVramCount);
NSLog(@"GPU: %.3f%% VRAM: %.3f%%",gpuCoreUse/(double)10000000,usedVramCount/(double)(freeVramCount+usedVramCount)*100.0);
}
}
CFRelease(serviceDictionary);
IOObjectRelease(regEntry);
}
IOObjectRelease(iterator);
}
sleep(1);
}
return 0;
}
専用のgpuデータと控えめなgpuデータの両方を取得する方法はありませんか? –
いいえ、控えめなGPUはパフォーマンスデータを公開していませんが、ATIもそれを公開していないこと、VRAMの使用だけは公開していますが、GPUの使用については何も発見していません:/ –
もう一度、 2つ以上のGPU? 私はアイデアを持っていませんが、ハードウェアはありません。 –
- 1. CPU使用率OS Xインターフェイス
- 2. OS Xでテストドライブ用のCouchDBを取得
- 3. OS Xでプログラムで画面解像度を取得
- 4. OS Xコマンドラインアプリケーションの絶対パスをプログラムで取得する
- 5. Mac OS XでEclipseバージョンを取得
- 6. CUDAでのGPU使用率が低い
- 7. Mac OS XでOpenGlを使用するCプログラムをコンパイル
- 8. OS Xボード-ID情報を取得する方法をプログラム
- 9. JavaからOSのCPU使用率を取得する方法
- 10. IOServiceGetMatchingServicesを使用したOS Xストレージデバイスリストの取得
- 11. OS X/macOSプロセスのメモリ使用量を取得する方法
- 12. C++プログラムでOS Xのプロセス開始時間を取得する方法
- 13. Mac OS XでLinuxプログラムをコンパイルする
- 14. OS XでアプリケーションのCPU使用率を制御する方法は?
- 15. Mac OS Xでvirtualenvを使用
- 16. SymfonyをMac OS Xで使用
- 17. MAC OS XでPEARを使用
- 18. OS XでAndroidのadbシェルを使用
- 19. OS XでSceneKitを使用したスムーズアニメーション
- 20. OS Xハイライトされたテキストを取得
- 21. Mac OS Xで「自動プロキシ検出」モードでプロキシアドレスを取得
- 22. OS X El Capitanでlibsslを使用してCプログラムをコンパイルするには?
- 23. のMac OS X NodeJS:Macのポートを使用して、MAC OS X上
- 24. CudaがGPUの負荷率を取得する
- 25. OS Xスクリーンセーバー効率的なピクセル操作
- 26. mac os x macbooksのバッテリー寿命をプログラム的に取得する方法は?
- 27. OS Xのデリゲートの使用
- 28. スクリーンの平均色をリアルタイムで取得する(Mac OS X)
- 29. テストビルドでOS Xアプリストアの領収書を取得する
- 30. OS X(C、Cocoa)でCPUアーチストリングを取得する
プログラムでGPUの使用方法を知りましたか?私は同じ問題に直面しています。 – Andrea3000
@ Andrea3000:まだ答えを待っていません... – houbysoft