问:性能优化从哪些方面着手:
答:
a). 平台相关的方面:了解底层或者系统的原理,更合理的使用API;
b). 代码逻辑算法方面:合理的写代码,做到优化代码结构,合理设计算法,避免资源的浪费;
c). 并发方面:
i、响应的及时性:
① 可以合理使用缓存,提高响应速度;
② 尽量不适用锁(在锁和忙等待以及是否需要等待等方面进行思考);
ii、可伸缩性:
① 是否涉及到线程安全,在考虑是否使用锁;
② 优化锁的粒度,尽量细粒化锁(类似于 ConcurrentHashMap使用的分段锁);
③ 合理的使用锁(如:独占锁 和 共享锁 以及 双端队列里面的Stealing work的应用);
iii、避免死锁:
① 整理代码逻辑,避免相反顺序的锁使用;(这种是死锁发生的根本原因)
② 在使用锁的时候,进行锁设计,并进行文档化管理;(别以为把代码中的锁写得满天飞,才可以展示自己的牛逼!!!平淡才是真.....haha~~)
网友评论