objective-c - GPU[@"PerformanceStatistics"] 中的键是什么意思?
问题描述
我在 iPhone 设备上的 iOS 应用程序中从 IOKit 获取 GPU 信息,并获得 GPU 信息的 @"PerformanceStatistics" 值,我很困惑这里的键值是什么意思:
{
CommandBufferRenderCount = 1;
"Device Utilization %" = 0;
"Renderer Utilization %" = 0;
SplitSceneCount = 0;
TiledSceneBytes = 217088;
"Tiler Utilization %" = 0;
agpTextureCreationBytes = 0;
agprefTextureCreationBytes = 16384;
contextGLCount = 0;
finishGLWaitTime = 0;
freeToAllocGPUAddressWaitTime = 0;
gartMapInBytesPerSample = 16384;
gartMapOutBytesPerSample = 0;
gartUsedBytes = 30801920;
hardwareWaitTime = 0;
iosurfaceTextureCreationBytes = 0;
oolTextureCreationBytes = 0;
recoveryCount = 0;
stdTextureCreationBytes = 0;
textureCount = 521;
}
解决方案
我知道这个问题有点老了,但如果有人问同样的问题,你可以通过阅读苹果官方关于这个主题的开发者文档来了解其中的大部分含义:https ://developer.apple.com/library /archive/documentation/GraphicsImaging/Conceptual/OpenGLDriverMonitorUserGuide/Glossary/Glossary.html
至于未列出的,大多数都是不言自明的,而且命名恰当。大多数现代 iOS 和 macOS 驱动程序都会为您计算 GPU 和硬件引擎(例如视频、渲染器和平铺引擎)的使用情况。如果在 Xcode 的性能工具之外需要这些值,则可以从 Objective-C 和 C++ 中查询这些值。
考虑到一般人不需要这种级别的信息,我可以问一下为什么你需要这个而不是使用 XCode 附带的性能分析工具?
编辑:大多数搜索上述信息的人通常都在寻找获取 macOS 或 iOS 的整个系统的 GPU 使用率的方法。如果您或其他任何人需要自定义代码来获取此信息,请参阅以下链接:
以编程方式获取 OS X 中的 GPU 百分比使用率 https://gist.github.com/chockenberry/2afe4d0f1f9caddc81de
公开的 GPU 驱动程序的确切信息因一个 GPU 到另一个 GPU 以及操作系统版本而异。第一个链接通过 C/C++ 代码演示了获取 GPU 使用情况和其他统计数据是多么简单。第二个链接包含不同 GPU 可以生成的各种示例。当然,请参阅每个链接底部的注释,因为这些属性名称可能会发生变化。
最后,如果您的 GPU 没有直接公开 GPU 使用统计信息,那么计算它的唯一可能方法是查询 hardwareWaitTime 的值(这是 GPU 忙碌多长时间的纳秒时间)并比较该时间使用 GPU 时钟速度(我还不知道如何以编程方式获取此类信息):GPUusage = hardwareWaitTime/GPUClockSpeed in nanohertz。
希望这可以帮助。
推荐阅读
- c# - Unity Container exception – You cannot have more than one dynamic module in each dynamic assembly in this version of the runtime
- android - 如何在不同的重组中保持 Lottie 动画进度
- vb.net - 按空间分割 vb.net
- android - 如何使内联函数在kotlin中用作侦听器时自行删除
- sharepoint - GCC 高的电子签名解决方案
- amazon-web-services - 如何创建安全规则来限制 ping 请求的来源?
- python - 在python中的条件下找到eqal项时拆分字符串列表
- android - 从 Firebase 获取数据 - FIRESTORE DB
- python - 如何在 django 中使用 Json 字段存储波斯字符?
- javascript - HTML 的三元 Javascript (Angular)