以编程方式获取 OS X 中的 GPU 使用百分比

2024-02-09

是否有标准方法可以在 OS X(10.6 和 10.7)上的 Cocoa/Objective-C 中获取 GPU 使用百分比?


享受它吧,GPU 和 RAM 使用情况,在谨慎的 GPU 上不起作用,顺便说一句,因为它不会公开性能监控字典。我的 MBP 有 NVIDIA gpu,应该也可以在 ATI 上运行,但我不确定 100%

#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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式获取 OS X 中的 GPU 使用百分比 的相关文章

  • excel 2010刷新BackgroundQuery中运行时错误1004

    我正在尝试用 vba 编写一个脚本 用于将多个文本文件导入 Excel 一张纸 然后将它们绘制在一张图表上 我面临一个问题刷新后台查询命令并出现 1004 运行时错误 我怎样才能解决它 谢谢 埃亚勒 这是我的代码 Sub fring1 Di
  • CoreMediaIO,错误更新的属性 kCMIODevicePropertyDeviceIsRunningSomewhere

    当某些进程开始使用相机时 我需要接收一个事件 我通过 CMIOObjectGetPropertyData 完成此操作 但它不能正常工作 只有第一次访问时才是正确的值 我还尝试使用 CMIOObjectAddPropertyListenerB
  • UIButton 图像未更改/更新

    首先 我对 Objective C 还很陌生 并且仍在尝试尽可能多地学习 所以请耐心等待 现在我有一个以编程方式创建的 UIButton 按下按钮时 将显示一个 UIActionSheet 其中包含 相机 选择照片 或 取消 选项 然后 按
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • 创建类似于邮件应用程序菜单的 iPhone 弹出菜单

    当您想要回复消息时 我想创建一个类似于邮件应用程序中的弹出菜单 我在多个应用程序中看到过这一点 所以我不确定框架中是否内置了某些内容或一些示例代码 在 Swift 中创建操作表 代码已使用 Swift 5 进行测试 从 iOS 8 开始 U
  • TOpenDialog/NSOpenPanel 无法在沙盒 Delphi 应用程序中工作

    Firemonkey 应用程序中的 TOpenDialog 似乎存在问题 该应用程序已针对 Mac Appstore 进行沙箱处理 我使用XE3 但它也存在于XE2中 我其实在这里找到了一份QC报告 但仍然没有解决 http qc emba
  • NSDictionary 上的 NSPredicate

    我试图根据字母表在表格视图中创建部分 并在这些部分下按字母顺序对我的条目进行排序 我已经收集了 bandArrayIndex 中 bandArray 每个条目的第一个字母 现在我尝试使用 NSPredicate 来计算每个字母有多少个 我正
  • Mac OS X 下的 JavaFX:系统菜单和模态窗口

    我目前面临 Mac OS X 下的 JavaFX 菜单和模式对话框的问题 我正在使用该方法 MenuBar setUseSystemMenuBar true 为了将系统菜单栏用于我的应用程序菜单 这工作正常 但如果模式对话框打开 菜单不会被
  • 最小的 iOS 蓝牙管理器示例

    我一直在构建一个最小的示例 用于使用 iOS 5 0 中的 BluetoothManager 私有框架来检测附近的蓝牙设备 使用此问题中找到的答案 寻找触手可及的通用蓝牙设备 https stackoverflow com question
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 强制 Apache HTTPD 以 32 位运行

    我通过从二进制文件 以及 ppc 部分 中剥离 32 位架构 以 64 位模式运行 Apache HTTPD 我这样做是为了使其与 python 和 mysql 更加兼容 然而 我有另一台机器需要它以 32 位模式运行 它仍然保留所有四种原
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 如何在 OS X 上使用 OpenSSL 1.0.1 编译 PHP 5.5.19

    我已经安装了 OpenSSL 1 0 1j usr local ssl现在我尝试使用此版本的 OpenSSL 编译 PHP 5 5 19 这是我的配置过程 export CFLAGS arch x86 64 export CXXFLAGS
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后

随机推荐

  • 在 Reactjs 中的 EsLint“react / jsx-props-no-spreading”错误中禁用

    安装 EsLint 后 我 出现的错误之一如下 禁止传播 propeslint react jsx props no spreading 我想在 EsLint 配置中创建一条规则来忽略此错误 但我发现的示例不起作用 这是创建全局异常的格式
  • 正则表达式 Windows 路径验证器

    我试图找到一个针对 Javascript 的 Windows 文件路径验证 但似乎没有一个能够满足我想要的要求 所以我决定自己构建它 要求如下 路径不能为空 可能以 x x 开头 后跟文件名 无文件 需要延期 文件名不能包含以下特殊字符 文
  • PHP:可以包含 file_exists() 说不存在的文件

    在我的脚本中 我设置了包含路径 以便应用程序的另一部分也可以包含文件 检查文件是否存在 然后包含它 但是 在我设置包含路径后 file exists 报告该文件不存在 但我仍然可以包含相同的文件
  • PHP 中静态属性的神奇 __get getter

    public static function get value 不起作用 即使它起作用 碰巧我已经需要神奇的 get getter 作为同一个类中的实例属性 这可能是一个是或否的问题 那么 有可能吗 不 这是不可能的 引用 get 的手册
  • 使用 DataContractJsonSerializer 生成轻量级 JSON

    我正在尝试使用 Net 3 5 中的 C 和 DataContractJsonSerializer 生成 JSON 问题是我不知道如何构建适合我需要的结果的结构 我尝试使用哈希表 列表对象和数组列表来重现 PHP 的关联数组 但无法弄清楚如
  • PHP和MySql中的上传大小问题

    我正在通过 PHP 将文件上传到 MySql DB 我能够上传最大 1MB 的文件 通过反复试验发现 大小超过 1 MB 的文件不会上传 PHP中mysql error 函数打印的MySql错误为 MySQL服务器消失了 有人可以帮我解决这
  • 如何从集合中获取用户自己的数据?

    如何从集合中获取用户自己的数据 登录成功后 auth login除承载令牌外 不返回用户相关信息 So 如何仅请求已登录用户的数据来自一个集合 在使用 GraphQL 时 如果我知道我的用户 ID 我可以通过这种方式过滤我的结果 但我不认为
  • Highcharts 热图带来意想不到的结果

    按照他们网站上的示例 我 大部分 成功地混合了两个示例来显示热图 http www highcharts com demo heatmap http www highcharts com demo heatmap http www high
  • Android Studio 抛出“无方法签名”错误,指向 build.gradle:app

    尝试通过 Android Studio 运行 Kotlin 应用程序后出现此错误 A problem occurred evaluating project app gt No signature of method build 4blex
  • 我可以在 PHP 中混合使用 MySQL API 吗?

    我已经在网上搜索过 到目前为止我所看到的是你可以使用mysql and mysqli 在一起的意思 or
  • 未定义:proto.ProtoPackageIsVersion3

    I get pb go 21 11 undefined proto ProtoPackageIsVersion3我想要版本 2 我安装了protoc from https github com google protobuf release
  • 使用 jQuery 选择带有冒号的 ID

    我正在为一个网站开发一个预先编写的模块 我需要使用 id 来定位一个元素test two 现在 这个元素中有一个冒号 因此 jQuery 可以理解地将 two 视为伪类 有没有办法用 jQuery 来定位这个元素 另外 无法更改 ID 相信
  • 使用 CGBitmapInfo 和 CGI​​mageAlphaInfo 进行按位运算

    我在执行按位运算时遇到问题CGImageAlphaInfo and CGBitmapInfo在斯威夫特 特别是 我不知道如何移植这个 Objective C 代码 bitmapInfo kCGBitmapAlphaInfoMask bitm
  • 在 Eclipse 编辑器中更改 java 关键字的颜色

    如何改变java关键字的颜色 就像 Eclipse java 编辑器中的 package public class 等 我讨厌默认的紫色 谢谢 在 Eclipse 中 窗口 gt 首选项 gt Java gt 编辑器 gt 语法着色 gt
  • 用于多标签分类的 keras 自定义指标

    我在用着sigmoid and binary crossentropy用于多标签分类 例如 标签为y true就好像 1 0 1 0 0 以及标签y pred就好像 0 8 0 3 0 9 0 0 如何设置 Keras 自定义度量函数 以便
  • 从 Date() 获取 Unix 时间戳

    我可以将 unix 时间戳转换为Date 对象通过把long值转化为Date 构造函数 例如 我可以将其作为new Date 1318762128031 但在那之后 我怎样才能从Date object getTime http docs o
  • 与 preg_match_all 和以重复字符结尾的模式重叠匹配

    我想做一些类似于问题的事情preg match all 如何获得 所有 组合 甚至重叠的 https stackoverflow com questions 22454032 preg match all how to get all co
  • 如何将“复合设计模式”与 Ninject 结合使用

    验证规则合约 public interface IValidationRule bool IsValid 具体验证规则 public class MyClass IValidationRule public bool IsValid ret
  • 如何制作散点图动画

    我正在尝试制作散点图的动画 其中点的颜色和大小在动画的不同阶段发生变化 对于数据 我有两个带有 x 值和 y 值的 numpy ndarray data shape ntime npoint x shape npoint y shape n
  • 以编程方式获取 OS X 中的 GPU 使用百分比

    是否有标准方法可以在 OS X 10 6 和 10 7 上的 Cocoa Objective C 中获取 GPU 使用百分比 享受它吧 GPU 和 RAM 使用情况 在谨慎的 GPU 上不起作用 顺便说一句 因为它不会公开性能监控字典 我的