1. 程式人生 > >效能優化的思考

效能優化的思考

問:效能優化從哪些方面著手:

答:

a). 平臺相關的方面:瞭解底層或者系統的原理,更合理的使用API;

b). 程式碼邏輯演算法方面:合理的寫程式碼,做到優化程式碼結構,合理設計演算法,避免資源的浪費;

c). 併發方面:

i、響應的及時性:

① 可以合理使用快取,提高響應速度;

② 儘量不適用鎖(在鎖和忙等待以及是否需要等待等方面進行思考);

ii、可伸縮性:

① 是否涉及到執行緒安全,在考慮是否使用鎖;

② 優化鎖的粒度,儘量細粒化鎖(類似於 ConcurrentHashMap使用的分段鎖);

③ 合理的使用鎖(如:獨佔鎖 和 共享鎖 以及 雙端佇列裡面的Stealing work的應用);

iii、避免死鎖:

① 整理程式碼邏輯,避免相反順序的鎖使用;(這種是死鎖發生的根本原因)

② 在使用鎖的時候,進行鎖設計,並進行文件化管理;(有的哥們根本就是瞎搞,以為把程式碼中的鎖寫得滿天飛,才可以展示自己的牛逼!!!)