• 25个增强iOS应用程序性能的提示和技巧(高级篇)(2)


    25个增强iOS应用程序性能的提示和技巧(高级篇)(2)

    2013-04-16 14:56 破船之家 beyondvincent 字号:T | T
    一键收藏,随时查看,分享好友!

    在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的局限性,有时候要想获得良好

    AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>>


    25) 尽量避免Date格式化
    如果有许多日期需要使用NSDateFormatter,那么需要小心对待了。如之前(重用花销很大的对象)所提到的,无论什么时候,都应该尽量重用NSDateFormatters。

    然而,如果你需要更快的速度,那么应该使用C来直接解析日期,而不是NSDateFormatter。Sam Soffes写了一篇文章,其中提供了一些解析ISO-8601格式日期字符的串代码。你只需要简单的调整一下其中的代码就可以满足自己特殊的需求了。

    这听起来不错把——不过,你相信这还有更好的一个办法吗?

    如果你自己能控制处理日期的格式,那么可以选择 Unix timestamps(http://en.wikipedia.org/wiki/Unix_time)。Unix timestamps是一个简单的整数,代表了从新纪元时间(epoch)开始到现在已经过了多少秒,通常这个新纪元参考时间是00:00:00 UTC on 1 January 1970。

    你可以很容易的见这个时间戳转换为NSDate,如下所示:

    1. - (NSDate*)dateFromUnixTimestamp:(NSTimeInterval)timestamp { 
    2.     return [NSDate dateWithTimeIntervalSince1970:timestamp]; 

    上面这个方法比C函数还要快!

    注意:许多网络APIs返回的时间戳都是毫秒,因此需要注意的是在将这个时间戳传递给dateFromUnixTimestamp之前需要除以1000。

    何去何从?
    强烈建议对程序性能优化感兴趣的读者看看下面列出来的WWDC视频。在看视频之前,你需要注册一个Apple ID(注册后就可以观看所有WWDC2012的视频):

    #406: Adopting Automatic Reference Counting
    #238: iOS App Performance: Graphics and Animations
    #242: iOS App Performance: Memory
    #235: iOS App Performance: Responsiveness
    #409: Learning Instruments
    #706: Networking Best Practices
    #514: OpenGL ES Tools and Techniques
    #506: Optimizing 2D Graphics and Animation Performance
    #601: Optimizing Web Content in UIWebViews and Websites on iOS
    #225: Up and Running: Making a Great Impression with Every Launch
    下面这些视频来自WWDC 2011 ,也非常有用:

    #308: Blocks and Grand Central Dispatch in Practice
    #323: Introducing Automatic Reference Counting
    #312: iOS Performance and Power Optimization with Instruments
    #105: Polishing Your App: Tips and tricks to improve the responsiveness and performance
    #121: Understanding UIKit Rendering

  • 相关阅读:
    十四、自定义构建购物计算组件&表单组件
    从微信小程序到鸿蒙js开发【04】——list组件
    HarmonyOS应用开发-Component体系介绍(一)
    HarmonyOS单模块编译与源码导读
    烧录失败导致boot无法加载的解决措施,再也不怕烧成砖了
    从微信小程序到鸿蒙js开发【03】——fetch获取数据&简单天气预报
    抛弃床的温暖,只为了它丨云库一款跑在鸿蒙系统上的应用丨篇二
    swift 弹窗
    Swift字符串常用操作总结
    swift 随机数
  • 原文地址:https://www.cnblogs.com/piaojin/p/5443214.html
Copyright © 2020-2023  润新知