美文网首页琴梨梨的小教室琴梨梨的日常
合并重复代码,提高代码效率

合并重复代码,提高代码效率

作者: 琴梨梨 | 来源:发表于2018-08-25 10:26 被阅读23次

写在前面:如果你不在乎半秒甚至小于半秒的性能提升,你大可以不看这篇文章,这篇文章写给希望冲刺极限速度的开发者

很多开发者都经常为自己的app速度比竞品慢而苦恼,明明逻辑已经尽可能简化了,速度还是不够快,有时候记录启动速度就是死活慢那么几十毫秒,实际上通过合并重复代码,我们完全可以有效提高app速度

我们以下面这一段代码为例(图片版见图1)

合并重复代码,提高代码效率

    move-object v3, p0

    invoke-virtual {v3}, Lkha/prog/root/help;->getWindow()Landroid/view/Window;

    move-result-object v3

    invoke-virtual {v3}, Landroid/view/Window;->getDecorView()Landroid/view/View;

    move-result-object v3

    const/16 v4, 0x2000

    invoke-virtual {v3, v4}, Landroid/view/View;->setSystemUiVisibility(I)V

    invoke-virtual {p0}, Landroid/app/Activity;->getWindow()Landroid/view/Window;

    move-result-object p0

    const/4 p1, -0x1

    invoke-virtual {p0, p1}, Landroid/view/Window;->setStatusBarColor(I)V

这段代码的含义是设置白底黑字的亮色状态栏,我们来分析一下哪里可以优化

1,第一行把p0移动到v3后,这个变量只在第二行使用了一次,就被覆盖了,那么我们可以删除第一行,把第二行的v3直接改成p0,减少了一次移动变量

2,第二行和第八行的的意义其实一样,因为这个activity顶部直接.super Landroid/app/Activity,引用父类方法和直接对自身引用效果一致,也就是说第二行得到的p3和第八行得到的p0是一样的,那么我们很明显不需要重复两次一样的操作。所以我们先把第八行删除。由于第二行得到的v3很快又被覆写了,所以第三行移动结果到v3改成v5(因为v5尚未被使用),然后第四行本来调用v3的改成v5,第十一行本来调用的p0这里也要改成v5,最后把已经废弃的第九行也删除

这样我们就得到了下面优化后的代码(图片版见图2)

合并重复代码,提高代码效率

    invoke-virtual {p0}, Lkha/prog/root/help;->getWindow()Landroid/view/Window;

    move-result-object v5

    invoke-virtual {v5}, Landroid/view/Window;->getDecorView()Landroid/view/View;

    move-result-object v3

    const/16 v4, 0x2000

    invoke-virtual {v3, v4}, Landroid/view/View;->setSystemUiVisibility(I)V

    const/4 p1, -0x1

    invoke-virtual {v5, p1}, Landroid/view/Window;->setStatusBarColor(I)V

优化后的代码显著短了很多,执行效果却完全一样,因为少了一些不必要的重复步骤,这一段新代码会取得更高的速度(琴梨梨自己测试提升在40ms左右,对于本来130ms左右的启动时间提升已经挺大了)

相关文章

  • 合并重复代码,提高代码效率

    写在前面:如果你不在乎半秒甚至小于半秒的性能提升,你大可以不看这篇文章,这篇文章写给希望冲刺极限速度的开发者 很多...

  • 前端知识体系5.性能优化

    1.前端性能优化思路: 建立完善的开发规范,提高代码的渲染效率及可维护性。 压缩代码,合并代码,减少文件体积 减少...

  • 适配器模式的介绍及应用

    我在本文中将适配器模式的应用于提高UITableView和UICollectionView代码效率减少重复代码上。...

  • 提高代码执行效率的几个小技巧

    提高代码执行效率的几个小技巧 提高代码执行效率的几个小技巧

  • Git Flow

    介绍 git 最强大的就是其分支功能,但是如何使用分支才能更有效的提高开发效率,减少因为代码合并代码的问题。需要一...

  • 非常规思维

    拒绝重复且很慢的人工,找程序员编简单代码,提高办事效率

  • Style的用法

    当布局样式有很多重复的时候,可以写成style,提高代码重用率,提高效率。

  • Web前端开发规范

    一、为何要遵循开发规范? 1. 为了写出高质量,高效率的代码。 2. 提高代码的重复利用率。 3. 让你的代码阅读...

  • C#代码复用

    复用代码,是一种节省重复代码编译的手法,不仅可以提高开发效率,也为代码的维护提供了更加高效,实用的途径。 在C#中...

  • 比butterKnife更简洁的注解框架

    一、框架简介: Annotation特点就是使代码更加简洁,降低代码的耦合性,提高代码的编译效率,提高开发...

网友评论

  • 琴梨梨:本文目前仅发表于酷安/葫芦侠3楼/简书
    禁止任何形式搬运,对对对我说的就是某些csdn用户

本文标题:合并重复代码,提高代码效率

本文链接:https://www.haomeiwen.com/subject/giiwiftx.html