本文为性能优化系列的总纲,主要介绍性能调优专题计划、何为性能问题、性能调优方式及前面介绍的数据库优化、布局优化、Java(Android)代码优化、网络优化具体对应的调优方式。
1、调优专题博客计划
目前性能优化专题已完成以下部分:
性能优化第三篇——Java(Android)代码优化
性能优化第二篇——布局优化
性能优化第一篇——数据库性能优化
后续计划性能优化——诊断及工具(目前只有关于TraceView的介绍)、性能优化——内存篇、性能优化——JNI篇,性能优化——电量篇。
2、何为性能问题
在性能测试中存在两个概念:
(1). 响应时间
指从用户操作开始到系统给用户以正确反馈的时间。一般包括逻辑处理时间 + 网络传输时间 + 展现时间。对于非网络类应用不包括网络传输时间。
展现时间即网页或 App 界面渲染时间。
响应时间是用户对性能最直接的感受。
(2). TPS(Transaction Per Second)
TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。
通常所说的性能问题就是指响应时间过长、系统吞吐量过低。
对后台开发来说,也常将高并发下内存泄漏归为性能问题。
对移动开发来说,性能问题还包括电量、内存使用这两类较特殊情况。
3、性能调优方式
明白了何为性能问题之后,就能明白性能优化实际就是优化系统的响应时间,提高TPS。优化响应时间,提高TPS。方式不外乎这三大类:
(1) 降低执行时间
又包括几小类
a. 利用多线程并发或分布式提高 TPS
b. 缓存(包括对象缓存、IO 缓存、网络缓存等)
c. 数据结构和算法优化
d. 性能更优的底层接口调用,如 JNI 实现
e. 逻辑优化
f. 需求优化
(2) 同步改异步,利用多线程提高TPS
(3) 提前或延迟操作,错峰提高TPS
对于数据库优化、布局优化、Java代码部分优化、网络优化都可以归纳到上面的几种方式中。具体见:
收益匪浅
收益匪浅
Pingback: Android学习资源(持续更新中) | App Develop Notes
楼主写的真不错,受益匪浅!目前投了阿里Android开发的暑期实习生,过了电话1面等待二面中,期待去阿里能见识到各种牛人哈~!
哈哈,我已经不在阿里了,不过你啥时候想去阿里都可以找我
嗯嗯,期待更多精彩的文章!
这个专题的学习的确让自己受益匪浅啊!我已经通过了淘宝技术部的终面,感觉半只脚已经踏入阿里了!在此感谢您的精彩文章!
哈哈,恭喜恭喜,你面的哪个部门
我之前就是淘宝技术部的学长帮忙内推的,所以应该确定到时候就直接去淘宝技术部实习了。大体上应该就是淘宝吧,但是公司部门的划分我不是特别清楚。:)
哈哈,不错,小伙子好好干
这几天都不见楼主回复啊~~看来刚刚度假归来哈哈~~~ 最后貌似还要来一次部门交叉面试~~最后一道坎~~
哈哈,没事的,平常心,阿里的同事都很nice的,把自己的能力展现出来,同时不明白的可以请教或讨论。
可以举出一些具体的场景就更好了
有一些,不多 http://www.trinea.cn/android/android%e6%80%a7%e8%83%bd%e8%b0%83%e4%bc%98/
Pingback: 曾二昔佘
请问除了网络操作,还有哪些操作耗时较长?就是需要开子线程异步操作防止主线程阻塞的
网络,大文件,db数据很多,大量的计算,绘图(surfaceview)都有可能。不过对于一般的应用,文件,db都不会太大,绘图不复杂的话只关注网络就行了
Pingback: 性能优化之Java(Android)代码优化(转) - 移动端开发 - 开发者第2263313个问答
好全面,学习了
楼主写的很棒,持续关注中
嘿嘿,谢谢