【iOS】冷啟動(dòng)優(yōu)化--刪除不用的類和圖片

寫在前面:

之前(很久以前)產(chǎn)品跑來說,我們這個(gè)app啟動(dòng)很慢驰坊,需要優(yōu)化下....就有了這篇文章坞笙。關(guān)于這塊的原理梅猿,隨便搜一下就有很多
參考

具體實(shí)現(xiàn)

我們羅列一下需要優(yōu)化的點(diǎn):

1. pre-main():從按下桌面的圖標(biāo)到main函數(shù)獲得控制權(quán)之前的時(shí)間鞋邑。

動(dòng)態(tài)庫加載越多诵次,啟動(dòng)越慢账蓉。
ObjC類,方法越多逾一,啟動(dòng)越慢铸本。
ObjC的+load越多,啟動(dòng)越慢遵堵。
C的constructor函數(shù)越多箱玷,啟動(dòng)越慢。
C++靜態(tài)對(duì)象越多鄙早,啟動(dòng)越慢汪茧。

重新梳理架構(gòu),減少動(dòng)態(tài)庫限番、ObjC類的數(shù)目,減少Category的數(shù)目
定期掃描不再使用的動(dòng)態(tài)庫呀舔、類弥虐、函數(shù)

2. after-main():main函數(shù)獲得控制權(quán)之后,到看到首頁展示媚赖。

didFinishLaunchingWithOptions里面要做很多初始化的東西霜瘪,關(guān)于這一點(diǎn),我的iOS 小伙伴已經(jīng)做過處理了惧磺。主要是把初始化的東西颖对,按照輕重緩急的順序,分布處理磨隘。

針對(duì)第一點(diǎn)

優(yōu)化前一共用了

Total pre-main time: 323.61 milliseconds (100.0%)
         dylib loading time:  29.05 milliseconds (8.9%)//加載動(dòng)態(tài)庫
        rebase/binding time:  39.22 milliseconds (12.1%)//指針重定位
            ObjC setup time:  42.80 milliseconds (13.2%)//ObjC類初始化
           initializer time: 212.42 milliseconds (65.6%)
           slowest intializers :
             libSystem.B.dylib :  15.74 milliseconds (4.8%)//在初始化耗費(fèi)的212.42ms中缤底,用時(shí)最多的初始化是libSystem.B.dylib占了4.8%
   libBacktraceRecording.dylib :   7.29 milliseconds (2.2%)//debug用的一個(gè)追溯庫
    libMainThreadChecker.dylib :  11.15 milliseconds (3.4%)//debug時(shí)候檢查線程的,比如你在后臺(tái)線程操作了UI番捂,這個(gè)庫就會(huì)在你的控制臺(tái)打印警告信息
          libglInterpose.dylib :  97.03 milliseconds (29.9%)
         libMTLInterpose.dylib :  20.23 milliseconds (6.2%)
                    DaZhuanJia :  80.18 milliseconds (24.7%)

優(yōu)化后:

//也許是Debug模式的原因吧个唧,這個(gè)數(shù)據(jù)的波動(dòng)性很大
Total pre-main time: 283.67 milliseconds (100.0%)
         dylib loading time:  44.52 milliseconds (15.6%)
        rebase/binding time:  45.97 milliseconds (16.2%)
            ObjC setup time:  28.03 milliseconds (9.8%)
           initializer time: 164.95 milliseconds (58.1%)
           slowest intializers :
             libSystem.B.dylib :   3.66 milliseconds (1.2%)
    libMainThreadChecker.dylib :  28.64 milliseconds (10.0%)
          libglInterpose.dylib :  53.12 milliseconds (18.7%)
         libMTLInterpose.dylib :  19.33 milliseconds (6.8%)
                    DaZhuanJia :  78.86 milliseconds (27.8%)

先刪除項(xiàng)目中不用的類和圖片

  • 使用CATClearProjectTool找出未被引用到的類(!I柙ぁ徙歼!記得自己一個(gè)個(gè)文件確認(rèn)好沒有使用在刪除,不要偷懶一鍵刪除)
  • 使用LSUnusedResources刪除不用的圖片
    我差不多刪除了300個(gè)文件鳖枕。魄梯。。還不算pod里的

然后就是不用的方法和分類的歸并

其實(shí)這部分我們能做的主要就是減少+load()方法里的事情宾符,關(guān)于刪除沒有使用到的方法問題酿秸,我暫時(shí)還沒有解決。

總結(jié)

其實(shí)這種類型的優(yōu)化吸奴,是一個(gè)日積月累的過程允扇。只有業(yè)務(wù)穩(wěn)定了缠局,項(xiàng)目中的類才能好好的安排下,不然就是過一段時(shí)間又可以刪除300個(gè)文件了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末考润,一起剝皮案震驚了整個(gè)濱河市狭园,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糊治,老刑警劉巖唱矛,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異井辜,居然都是意外死亡绎谦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門粥脚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窃肠,“玉大人颖系,你說我怎么就攤上這事削樊。” “怎么了倡鲸?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵树灶,是天一觀的道長纤怒。 經(jīng)常有香客問我,道長天通,這世上最難降的妖魔是什么泊窘? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮像寒,結(jié)果婚禮上烘豹,老公的妹妹穿的比我還像新娘。我一直安慰自己萝映,他們只是感情好吴叶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著序臂,像睡著了一般蚌卤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奥秆,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天逊彭,我揣著相機(jī)與錄音,去河邊找鬼构订。 笑死侮叮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悼瘾。 我是一名探鬼主播囊榜,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼审胸,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了卸勺?” 一聲冷哼從身側(cè)響起砂沛,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曙求,沒想到半個(gè)月后碍庵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悟狱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年静浴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挤渐。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡苹享,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挣菲,到底是詐尸還是另有隱情富稻,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布白胀,位于F島的核電站,受9級(jí)特大地震影響抚岗,放射性物質(zhì)發(fā)生泄漏或杠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一宣蔚、第九天 我趴在偏房一處隱蔽的房頂上張望向抢。 院中可真熱鬧,春花似錦胚委、人聲如沸挟鸠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艘希。三九已至,卻和暖如春硅急,著一層夾襖步出監(jiān)牢的瞬間覆享,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工营袜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撒顿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓荚板,卻偏偏與公主長得像凤壁,于是被迫代替她去往敵國和親吩屹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容