KMCGeigerCounter 0.3.0

KMCGeigerCounter 0.3.0

测试测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2018 年 9 月

Kevin Conner 维护。



KMCGeigerCounter

该工具是一个帧率计,当您的动画掉帧时,它会像盖革计数器一样发出咔哒声。

盖革计数器可以检测看不见的粒子,并警告您您看不见的东西。掉帧并不是看不见的,但很难区分 55 和 60 fps。KMCGeigerCounter 使得每个掉帧都显而易见。

  • 如果您不是一直在平滑地动画,您会听到嘈杂、刺耳的噪音。
  • 如果您的应用程序以平滑的 60 fps 运行,您偶尔会听到下降到 59 和 58 的声音。
  • 您将听到来自偶尔 CPU 峰值掉帧的声音,例如自定义表格视图单元进入屏幕并需要布局时。

仪器显示两个数字

  • 过去一秒钟内掉落的帧数
  • 过去一秒钟内绘制的帧数

如果您过去一秒钟至少掉落了三帧,则仪器将变为橙色。

安装

pod 'KMCGeigerCounter'

或者将以下文件复制到您的项目中

  • KMCGeigerCounter.h
  • KMCGeigerCounter.m
  • KMCGeigerCounter.aiff

如果您不使用 CocoaPods,您可能需要在 Link Binary With Libraries 构建阶段添加此框架

  • AudioToolbox.framework

使用方法

在您的 UIApplicationDelegate 中,启用此工具

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // …
    [self.window makeKeyAndVisible];

    [KMCGeigerCounter sharedGeigerCounter].enabled = YES;
}

构建并运行您的应用。浏览您的应用并侦听点击。

已知的标识问题

iOS上的卡顿可分为两种类型,我将它们称为CPU和GPU卡顿。CPU卡顿发生在主线程活动延迟准备层树时,例如当Auto Layout评估一组复杂的约束时。可以通过观察主线程上定期安排的事件的交付时间轻松测量CPU卡顿。GPU卡顿发生在层树绘制开销很大时,例如当存在过多的混合层。由于iOS的特性,GPU卡顿发生在负责绘制的系统进程中。我还没有找到一种在不影响应用帧率的情况下测量它们的方法。总结一下,如今只能通过此库检测CPU卡顿。幸运的是,更强大的iOS设备使得GPU卡顿比过去少得多,您始终可以使用Core Animation工具来准确测量它们。

注意

请务必关闭静音模式,否则您将听不到任何声音。

在发布到应用商店之前,您应该删除KMCGeigerCounter。它可能对电池寿命不利。

iOS模拟器不会模拟设备性能,因此请考虑仅在设备构建时启用此工具

#if !TARGET_IPHONE_SIMULATOR
[KMCGeigerCounter sharedGeigerCounter].enabled = YES;
#endif