zoukankan      html  css  js  c++  java
  • iOS 开发 - 改善APP的流畅度 (绘制股票行情)

    这几天做了一个查看股票行情的app.

    完成之后,当k线比较多的时候,app 对于捏合、拖动手势的反应不太流畅,

    主要原因是drawRect: 干的活太多, 竟然需要40ms+, fps 自然不高

    最后按照下面这些原则,进行调整修改,流畅度提高不少,大多数的绘制时间控制在了10ms左右

    总结如下:

    1. 尽量不要实现drawRect(每次调用该方法时,都要为backing store分配内存,非常消耗CPU)

    2. 避免在drawRect:中进行耗费大量CPU资源的工作

    2. 尽量少调用setNeedsDisplay:(视图内容变化时才调用)

    3. 考虑使用setNeedDisplayInRect: , 传入drawRect:的rect越小,stoke,fill的时间越少, 即使drawRect:是根据视图边界绘制的)

    4. 充分利用GPU的资源,直接设置layer的border,shadow,corner,gradient等属性, GPU将会处理这些属性(相反如果GPU紧张,CPU空闲,应由CPU处理,可在drawRect:中实现)

    5. 如果绘制很多东西到一个视图时,可尝试开启drawsAsynchronusly,那么GPU会将视图内容绘制到backing store中,但是开启后,内存会增加,因此需要评估开启前后性能的变化,谨慎使用。

    代码:https://github.com/beddup/TradeTraining/tree/master  

  • 相关阅读:
    PATA 1071 Speech Patterns.
    PATA 1027 Colors In Mars
    PATB 1038. 统计同成绩学生(20)
    1036. 跟奥巴马一起编程(15)
    PATA 1036. Boys vs Girls (25)
    PATA 1006. Sign In and Sign Out (25)
    读取web工程目录之外的图片并显示
    DOS命令
    java连接oracle集群
    servlet
  • 原文地址:https://www.cnblogs.com/beddup/p/5351287.html
Copyright © 2011-2022 走看看