高性能应用开发——性能指标

178 阅读2分钟

性能指标
1、运行内存(RAM)。运存大小包括最小值、平均值、峰值。最小值决定应用能使用的硬件配置,高平均值和峰值会导致更多的其他应用在进入后台之后被杀掉。
如果应用存在内存泄露,意味着随着时间的流逝应用占用的运存会一直增加,由于每个APP能分配到的运存是有上限的,这可能导致因为内存达到上限而被杀掉
2、耗电量
3、初始化时间
4、执行速度。必要的处理都应尽可能短的时间内完成
5、响应速度。尽可能快的响应用户的交互
6、本地存储。从本地存储中载入和同步数据应该迅速、便捷。这需要设计本地缓存的内容、数据结构、更新同步的频率等
7、网络环境和带宽。应用需要很好的支持高低带宽下稳定网络、弱网、无网环境,提供用户合理的交互,如进度条和错误信息提示,而不让用户长时间等待。设计不同带宽环境下的应用,优化对带宽的使用
8、数据刷新。有的应用需要从服务器周期性的刷新数据。刷新的频率和每次传输的数据量决定了刷新需要的数据传输总量
9、崩溃率。应用的崩溃率应控制在5‱以内
10、其他指标:互操作性、多用户支持、单点登录、安全性

应用的生命周期方法 1、应用进入前台:applicationDidBecomeActive: 2、应用进入后台:applicationDidEnterBackground: 3、应用低内存警告:applicationDidReceiveMemoryWarning:

埋点和日志的区别
1、埋点会发送到服务器,日志则是记录在设备本地
2、埋点主要用于对关键性能指标进行聚合分析,日志则是用于追踪不同应用的细节信息

cocoaLumberjack日志级别
1、error不可恢复的错误信息
2、warn可恢复的错误信息
3、info非错误信息
4、debug调试信息,少量细节信息
5、verbose所有细节信息

- (void)setupLogger {
#if DEBUG
 [DDLog addLogger:[DDASLLogger sharedInstance]];
#endif

 DDFileLogger fileLogger = [[DDFileLogger alloc] init];
 fileLogger.rollingFrequency = 60 * 60 * 24;
 fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
 [DDLog addLogger:fileLogger];
 
// 开发阶段输出所有细节信息,内部测试阶段输出少量细节信息,上线后只输出错误信息
#if DEBUG
 static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
#elif DAILYBUILD
 static const DDLogLevel ddLogLevel = DDLogLevelDebug;
#else
 static const DDLogLevel ddLogLevel = DDLogLevelWarn;
#endif

- (void)func {
 DDVerbose(@"xxx");
 DDError(@"xxx");
}