GPU [@“ PerformanceStatistics”]中的键是什么意思?

时间:2019-05-29 13:13:16

标签: objective-c iokit

我从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;
}

1 个答案:

答案 0 :(得分:0)

我知道这个问题有点老了,但是如果有人问同样的事情,您可以通过阅读有关此主题的苹果官方开发人员文档来了解其中的大部分含义:https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGLDriverMonitorUserGuide/Glossary/Glossary.html

对于未列出的那些,大多数都是自我解释并恰当地命名。大多数现代的iOS和macOS驱动程序都会为您计算GPU和硬件引擎(例如视频,渲染器和切片引擎)的使用情况。如果在Xcode的性能工具之外还需要这些值,可以从Objective-C和C ++中查询。

考虑到普通人并不需要此信息,请问为什么您需要此信息而不是使用XCode附带的性能分析工具?

编辑:大多数搜索以上信息的人经常在寻找获取macOS或iOS整个系统的GPU使用率的方法。如果您或其他任何人需要自定义代码来获取此信息,请参见以下链接:

Programmatically get GPU percent usage in OS X https://gist.github.com/chockenberry/2afe4d0f1f9caddc81de

所公开的来自GPU驱动程序的确切信息,从一个GPU到下一个GPU以及操作系统版本都不同。第一个链接通过C / C ++代码演示了获取GPU使用情况和其他统计数据的简单程度。第二个链接包含不同GPU可以生成的内容的各种示例。当然,请参阅每个链接底部的注释,因为这些属性名称可能会更改。

最后,如果您的GPU没有直接公开GPU使用情况统计信息,那么唯一的计算方法是查询hardwareWaitTime的值(这是GPU忙了多长时间的时间,以纳秒为单位),并且将时间与GPU时钟速度进行比较(我尚不知道如何以编程方式获取此类信息):GPUusage =硬件等待时间/纳秒的GPUClockSpeed。

希望这会有所帮助。