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  

  • 相关阅读:
    ural 1110,快速幂
    ural 1109,NYOJ 239,匈牙利算法邻接表
    CodeBlocks养眼的colour theme
    UVa 10047,独轮车
    UVa 10054,欧拉回路
    UVa 11624,两次BFS
    hiho一下,第115周,FF,EK,DINIC
    Poj(1220),hash
    2013 Asia Regional Changchun I 题,HDU(4821),Hash
    UVa 213,World Finals 1991,信息解码
  • 原文地址:https://www.cnblogs.com/beddup/p/5351287.html
Copyright © 2011-2022 走看看