1,梳理優化方案
衡量main()函式執行之前的耗時
對於衡量main()之前也就是time1的耗時,蘋果官方提供了一種方法,即在真機除錯的時候,勾選dyld_print_statistics選項(如果想獲取更詳細的資訊可以使用dyld_print_statistics_details),如下圖:
優化方案:
main()執行之後
objective-c專案因為有main檔案,所以我麼直接可以通過新增**獲取:
main()函式中記錄當前時間didfinishlaunchingwithoptions用當前時間減去記錄時間
優化方案:
盡量使用純**編寫,減少xib的使用;
啟動階段的網路請求,是否都放到非同步請求;
一些耗時的操作是否可以放到後面去執行,或非同步執行等。
2,分步驟測試優化
測量當前啟動時間
main函式後的啟動時間
—0.236194
—0.263245
—0.314452
測試三組資料如下:
—15.486538
—17.160071
—16.820162
發現的問題
1,啟動後警告
解決方案:查詢後發現初始化三方庫的函式放到子執行緒,移到主線程後,該ui警告消失,啟動後卡頓的問題解決。
2,啟動前警告,jpush存在問題
原jpush版本為2.1.8 公升級到3.2.1之後,執行緒問題解決
最新啟動時間為
繼續優化中···
APP 啟動時間測試 adb命令
1 概念 冷啟動 當啟動應用時,後台沒有該應用的程序,這時系統會重新建立乙個新的程序分配給該應用,這個啟動方式就是冷啟動。熱啟動 當啟動應用時,後台已有該應用的程序 例 按back鍵 home鍵,應用雖然會退出,但是該應用的程序是依然會保留在後台,可進入任務列表檢視 所以在已有進 程的情況下,這種啟...
Linux 核心啟動時間分析
1.首先修改kernel的bootargs,在bootargs中新增以下內容 printk.time yinitcall debug 我使用的bootargs修改後如下 setenv bootargs root dev mtdblock2 rootfstype yaffs2 init init co...
linux系統啟動時間分析
sudo apt get install bootchart pybootchartgui pngquant 安裝bootchart時會執行以下操作 update initramfs generating boot initrd.img 3.14.18 031418 generic 由乙個執行在in...