今天與Android開發組長聊瞭如何作好性能優化,發現狀況是繞開不幹或傻幹,所以談了如下幾點,歡迎潑水。性能優化
- 不要先入爲主,認爲無法優化;
- 不要先去優化,而要評測;
- 最好使用自動工具,手工打日誌時不要費神幹體力活記上下文信息;
- 就算幹體力活也要幹閉眼都能幹的活;
- 不要手工看日誌,要利用Excel圖表呈現,按Tab分列輸出日誌;
- 不要急於實現,先想要怎樣使用,即便領導催得急也要考慮方法是否有效,綜合考慮短時間和長期收益;
- 先考慮機制、應用場景,不要先考慮如何實現;
- 不要本身傻幹,更不要帶着你們傻幹,能不幹少幹最好,好方法永遠是懶人想出來的;
- 仍是不要急於實現,先考慮功能,再分包出去,即便分爲本身;
- 砍柴不誤磨刀工,花時間寫自動播放機制,讓平板少啓動幾回、多跑一會;
- 不要用百度,用googlestable.com,不要輸中文和全句(結果你懂的),應輸入英文關鍵字,分清是在可行性分析仍是編碼實現,可別掉進知識和垃圾的海洋;
- 先廣撒網、數據分析過濾,圖表呈現問題,逐級精寫日誌,鎖定問題點;
- 使用腳本批量清除日誌語句,由於已經將寫各類日誌簡化爲一種「TimeLog.d();」,不論開始、中間和結尾。
初期安排:函數
- 有一個類 TimeLog,只有一個函數 d(),在要記日誌的地方只須要寫
TimeLog.d();
,不用區分函數名(從調用堆棧取)、開始、分區、結束(序號自增),二分法、三分法、N分法都行。
- 讓你們分頭廣撒日誌,可能有問題的地方都狂加
TimeLog.d();
,寧肯錯殺三千不放過一個。
- 在平板上跑一次,記錄大量日誌,每行日誌按Tab分列,第一個字符是Tab以便與普通日誌區分(下句見分曉)。
- 將日誌文本複製到Excel,去掉第一列,那些都是普通日誌,而後複製到UltraEdit將多餘空行所有替換掉,而後複製到Excel,如今是規整的表格了。
- 在PPT中利用自動圖表工具,將Excel數據複製到圖表,生成多線圖表,性能問題一目瞭然了。
- 對於偶發問題,須要多跑幾回,最好寫點狂跑代碼,讓日誌記錄多飛一會。根據問題點,再來次精寫日誌,仍是
TimeLog.d();
,讓出問題的語句暴露。
後續固然是針對問題最嚴重的語句作優化了,相互分享才能改進質量,造些實用工具類是避免問題分散的方法。工具