Android 高性能编码二:利用缓存提高TPS
来源:互联网 发布:用户画像常用算法 编辑:程序博客网 时间:2024/06/05 11:53
TPS(Transaction Per Second)
TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。
通常所说的性能问题就是指响应时间过长、系统吞吐量过低。
Android高性能编码一:多线程并发或分布式提高TPS
Android高性能编码二:利用缓存提高TPS
Android高性能编码三:数据结构和算法优化
Android高性能编码四:代码优化
本篇主要介绍利用缓存来提升性能
缓存主要包括对象缓存、IO 缓存、网络缓存、图片缓存等 。
1.对象缓存
gc执行的时候,系统是阻塞的,gc数据较大的时候,系统会很明显的卡顿。
a.listview对象缓存
listview快速滚动时,重复利用item,不必重新创建新的对象,也避免了对象的频繁销毁,减少了gc的数据的大小和时间。
b.调用频繁的对象设为变成员量,或保存到容器中,避免频繁的创建和销毁。
c.在方法体中,如果频繁使用某一成员变量,不妨新建一个局部变量对象引用,栈里面的局部变量调用肯定比堆要快一些
d.AOT,Ahead Of Time,体现了一种以空间换时间的思维,Android的此类应用不胜枚举,主要的有ThreadLocal、ART虚拟机技术,以空间换时间。
2.IO缓存
IO调用,比如文件读写,是比较耗费性能的,频繁的读写肯定是不行的,需要对读写操作做一下改进,比如设置buffer,等buffer满的时候再进行读写,可以有效的减少读写的次数。
另外,内存的读写速度比硬盘sd卡的读写快得多,IO不缓存直接读写,内存必须要等待硬盘,这样浪费了性能,降低了TPS。
3.网络缓存
a.比较流行的网络框架一般都有线程池,并且缓存网络调用,短时间内的多次网络调用,返回第一次调用的结果,用户对此没有感觉。
4.文件缓存
a.图片三级缓存
内存、SD卡、网络三级缓存,减少不必要的图片请求,从速度最快的内存中查找bitmap对象,如果没从sd卡中decode,实在不行再从网络拉数据流。
b.数据离线缓存
保存最后一次网络调用的数据到sd卡或者file,第一次进入APP时,可以先显示缓存的数据,然后在网络调用不是很忙碌时再请求。对于实时性要求不高、重要性低的数据可以采用这种策略。
- Android 高性能编码二:利用缓存提高TPS
- Android 高性能编码一:多线程并发或分布式提高TPS
- 利用缓存提高小型站点性能
- 利用缓存读取文件提高性能
- Android缓存提高性能的方法
- 利用ASP.NET的三种缓存提高站点性能
- 利用ASP.NET的三种缓存提高站点性能
- 利用ASP.NET的三种缓存提高站点性能
- 利用ASP.NET的三种缓存提高站点性能
- 利用Cache缓存数据提高大数据量访问性能
- 利用ASP.NET的三种缓存提高站点性能
- Android利用多线程提高程序性能
- 用asp.net缓存提高站点性能(二)
- Android高性能编码最佳实践
- Android 高性能编码-IOC模式
- Android高性能编码四:代码优化
- http缓存提高性能
- http缓存提高性能
- 因环境变量设置问题引起的command not found
- 判断是不是PE文杰
- ftp详解
- 【自考学习】计算机网络——协议
- 本地调试HTML和CSS的方法
- Android 高性能编码二:利用缓存提高TPS
- ZOJ-The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple-A~B
- Codeforces Round #410 (Div. 2) D. Mike and distribution 思维
- Spacemacs 使用
- jquery笔记-api
- Hibernate 中MappingException:Unknown entity的问题解决方案
- Linux后台执行脚本
- SparkSQL On Yarn with Hive,操作和访问Hive表
- tomcat中有wtpwebapps和webapp