去芜存菁,avoid donig unnecessary work.
link
过度绘制
过度绘制(Overdraw)是指对不可见的部分也进行绘制的情况,如下图左侧,在开发者设置里可以打开查看开关。一般解决过度绘制的方法是减少布局深度,去除无用背景。
Draw with care
在编写自定义控件时,可以使用canvas.cliprect(..)
方法来使不显示的View不进行绘制。
多重条件搜索
比如要搜索同时满足 A & B & C 三个条件下的结果,有两种方法
- 把ABC三个条件同时传入,一步搜索出结果
- 先搜A,得到结果集后,在结果集中搜索B,最后在B的结果集中搜索C
不要想当然地以为一定是1更高效,实际操作时要根据搜索服务的特征来选择两者中的一种进行。2也是一种Culling
的思想,逐层深入,抽丝剥茧。
(视频里是用的Mc Collins大叔的照片来举例的,很搞笑)
提升用户体验
在使用地理定位等实时服务时,消减那些用户不需关心的信息,比如用户居住在A地,那就无需把B地的实时状况推送给用户,使用地图软件中的实时路况查看就是这样,只需要请求并展示当前屏幕范围内的区域路况,而不是全市乃至全省、全国。