关于Hippy2.0 的性能与调用流程分析

361 阅读1分钟

LoadImage.png

上图是Hippy2.0图片加载的类关系图,以及调用流程图

LoadImageTimer.png

上图是Hippy2.0图片加载的调用链 ,部分代码是公司封装后的,如果没有可以忽略,了解流程才是最重要的,而且这里对于部分流程了解的可能不是非常细,与实际情况可能存在误差,这里主要关注时间

HippyViewTimer.png

上图是Hippy2.0 在4.4机器调用时间的总结,通过日志发现他还是有不少缺陷的,

Hippy3.0CreateNode.png

上图是Hippy3.0 的调用流程 ,相较于2.0 做了非常多的优化,

问题一

Hippy2.0 在4.4 盒子上 创建 120个 子条目 耗时统计 start --> 14:40:51.998 end-->14:40:54.303 共耗时-->2.3秒

Hippy3.0 在4.4 盒子上 创建 120 个 子条目 耗时统计 start -->16:13:51.730 end-->16:13:52.134 共耗时-->0.4秒

问题二

Hippy 2.0 在createNode 的过程中还伴随着 deleteNode 操作,既然需要删除为什么还要创建呢,而且在RcycyclerView 的 createNode 如果item 的子节点比较多,就会导致 createNode 遍历次数程指数上升,非常的不合理,而现在3.0 createNode 只会创建 item 的个数的子节点,不受item 子节点影响,大大的提速

TvRecyclerViewCreate-Hippy_2_0_.png

TvRecyclerViewTimer-View__.png

上面两张图片是我通过Hippy2.0源码分析了他的调用链,不能保证完全准确,也应该差不了多少