Android-Ptr-Comparison icon indicating copy to clipboard operation
Android-Ptr-Comparison copied to clipboard

非常有价值的对比测试

Open zhuchen1109 opened this issue 9 years ago • 8 comments

非常感谢你的总结,对每个库流畅度上分析的非常深入,还给出了解决方案,赞! 我最大的收获是这篇文章对性能优化实践方面的帮助。 请教一个问题,文中提到用systrace截取下拉1s的数据,使用systrace如何精准的截取想要操作的时间区间呢?是通过代码打点嘛还是其他方法? 谢谢!

zhuchen1109 avatar Dec 17 '15 04:12 zhuchen1109

是这样的,命令行到sdk/platform-tools/systrace下,输入systrace命令: python systrace.py --time=1 -o mynewtrace.html sched gfx view wm 然后马上开始你的操作,它会在1秒钟之后停止截取并输出文件。

这条命令意思就是:

  • --time=1 监视接下来1秒的操作
  • -o mynewtrace.html 文件存储到mynewtrace.html
  • 检测Graphic, View, WindowManager,并输出Task名字

具体可以看参考3:systrace-doc

desmond1121 avatar Dec 17 '15 05:12 desmond1121

分析的太好了

BlakeWL avatar Dec 17 '15 07:12 BlakeWL

@BlakeWL 谢谢,有什么建议随时交流:)

desmond1121 avatar Dec 17 '15 08:12 desmond1121

@desmond1121 原文“通过捕捉如下图中的操作持续1秒钟的systrace进行性能分析”,看gif图是1秒内快速上下滑动,这是代码控制频率的嘛,还是手动操作的?

zhuchen1109 avatar Dec 17 '15 09:12 zhuchen1109

是手动的,也可以通过代码。手动与代码各有得失(当然,手动非常简单),在重点看systrace中的各项时间分布,而不重点看具体时间时,我觉得手动足够展示出各个库的区别了。而时间分布确实是我本次考察的重点,因为各个开源库顶部视图不同,代码复杂程度也不同,只能通过trace时间分布的合理性来判断性能。

desmond1121 avatar Dec 17 '15 09:12 desmond1121

分析的挺好. SwipeRefreshLayout Google作者 也没有你这么细心.

ronanhardiman avatar Dec 19 '15 01:12 ronanhardiman

@ronanhardiman 过奖了 这些库都是不错的,不过再好的东西也会有缺点,只要有心去发掘并改进就好了:)

desmond1121 avatar Dec 19 '15 02:12 desmond1121

@desmond1121 作者你好,我看代码的时候也留意到了这个View.bringToFront();方法,市面上很多下拉刷新的库都照搬这一句代码,请问你现在知道这有作用了吗?

TellH avatar Feb 28 '16 06:02 TellH