iOS面試題:App啟動(dòng)過(guò)慢枕荞,你可能想到的因素有哪些柜候?

1. App啟動(dòng)過(guò)程

  1. 解析Info.plist
  • 加載相關(guān)信息,例如如閃屏
  • 沙箱建立躏精、權(quán)限檢查
  1. Mach-O加載
  • 如果是胖二進(jìn)制文件渣刷,尋找合適當(dāng)前CPU類(lèi)別的部分
  • 加載所有依賴(lài)的Mach-O文件(遞歸調(diào)用Mach-O加載的方法)
  • 定位內(nèi)部、外部指針引用矗烛,例如字符串辅柴、函數(shù)等
  • 執(zhí)行聲明為attribute((constructor))的C函數(shù)
  • 加載類(lèi)擴(kuò)展(Category)中的方法
  • C++靜態(tài)對(duì)象加載、調(diào)用ObjC的 +load 函數(shù)
  1. 程序執(zhí)行
  • 調(diào)用main()
  • 調(diào)用UIApplicationMain()
  • 調(diào)用applicationWillFinishLaunching

2瞭吃、影響啟動(dòng)性能的因素

  1. main()函數(shù)之前耗時(shí)的影響因素
  • 動(dòng)態(tài)庫(kù)加載越多碌嘀,啟動(dòng)越慢。
  • ObjC類(lèi)越多歪架,啟動(dòng)越慢
  • C的constructor函數(shù)越多股冗,啟動(dòng)越慢
  • C++靜態(tài)對(duì)象越多,啟動(dòng)越慢
  • ObjC的+load越多和蚪,啟動(dòng)越慢
  1. main()函數(shù)之后耗時(shí)的影響因素
  • 執(zhí)行main()函數(shù)的耗時(shí)
  • 執(zhí)行applicationWillFinishLaunching的耗時(shí)
  • rootViewController及其childViewController的加載止状、view及其subviews的加載

另外參考一下今日頭條的啟動(dòng)優(yōu)化方案

針對(duì)于今日頭條這個(gè)App我們可以?xún)?yōu)化的點(diǎn)如下:

  • 純代碼方式而不是storyboard加載首頁(yè)UI。
  • 對(duì)didFinishLaunching里的函數(shù)考慮能否挖掘可以延遲加載或者懶加載攒霹,需要與各個(gè)業(yè)務(wù)方pm和rd共同check 對(duì)于一些已經(jīng)下線的業(yè)務(wù)怯疤,刪減冗余代碼。
  • 對(duì)于一些與UI展示無(wú)關(guān)的業(yè)務(wù)剔蹋,如微博認(rèn)證過(guò)期檢查旅薄、圖片最大緩存空間設(shè)置等做延遲加載。
    對(duì)實(shí)現(xiàn)了+load()方法的類(lèi)進(jìn)行分析泣崩,盡量將load里的代碼延后調(diào)用少梁。
  • 上面統(tǒng)計(jì)數(shù)據(jù)顯示展示feed的導(dǎo)航控制器頁(yè)面(NewsListViewController)比較耗時(shí),對(duì)于viewDidLoad以及viewWillAppear方法中盡量去嘗試少做矫付,晚做凯沪,不做。

更多:iOS面試題合集

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末买优,一起剝皮案震驚了整個(gè)濱河市妨马,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杀赢,老刑警劉巖烘跺,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脂崔,居然都是意外死亡滤淳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)砌左,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脖咐,“玉大人铺敌,你說(shuō)我怎么就攤上這事∑ㄉ茫” “怎么了偿凭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)派歌。 經(jīng)常有香客問(wèn)我弯囊,道長(zhǎng),這世上最難降的妖魔是什么胶果? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任常挚,我火速辦了婚禮,結(jié)果婚禮上稽物,老公的妹妹穿的比我還像新娘。我一直安慰自己折欠,他們只是感情好贝或,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锐秦,像睡著了一般咪奖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酱床,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天羊赵,我揣著相機(jī)與錄音,去河邊找鬼扇谣。 笑死昧捷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罐寨。 我是一名探鬼主播靡挥,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鸯绿!你這毒婦竟也來(lái)了跋破?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓶蝴,失蹤者是張志新(化名)和其女友劉穎毒返,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體舷手,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拧簸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聚霜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狡恬。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡珠叔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弟劲,到底是詐尸還是另有隱情祷安,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布兔乞,位于F島的核電站汇鞭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏庸追。R本人自食惡果不足惜霍骄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淡溯。 院中可真熱鬧读整,春花似錦、人聲如沸咱娶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膘侮。三九已至屈糊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琼了,已是汗流浹背逻锐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雕薪,地道東北人昧诱。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像所袁,于是被迫代替她去往敵國(guó)和親鳄哭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

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

  • 背景 一個(gè)項(xiàng)目做的時(shí)間長(zhǎng)了纲熏,啟動(dòng)流程往往容易雜亂妆丘,庫(kù)也用的越來(lái)越多,APP的啟動(dòng)時(shí)間也會(huì)慢慢變長(zhǎng)局劲。本次將針對(duì)iOS...
    醬油瓶2閱讀 3,518評(píng)論 0 12
  • 如何優(yōu)化iOS App的啟動(dòng)性能 第一部分科普了一些和App啟動(dòng)性能相關(guān)的前置知識(shí)第二部分主要講如何定制啟動(dòng)性能的...
    百事小武閱讀 663評(píng)論 0 2
  • 前言 最近和公司iOS小組伙伴討論準(zhǔn)備對(duì)各自手上的產(chǎn)品做一次優(yōu)化勺拣,確實(shí)對(duì)比很多產(chǎn)品來(lái)看,(支付寶鱼填,淘寶药有,幾乎1~2...
    Cingjin閱讀 1,810評(píng)論 0 7
  • 一排排,一列列 都一樣 短松也哀挽悲傷 不見(jiàn)生長(zhǎng) 最終的歸宿就在這一小方 天地之間再無(wú)牽掛的一小方 火苗變得異常玄...
    斕喬閱讀 403評(píng)論 0 6
  • 流蘇:一直不求甚解地喜歡尼采的作品,感覺(jué)他的作品像一句句箴言愤惰,很有趣味苇经。但讀海德格爾的《尼采》,卻覺(jué)得有些乏味晦澀...
    雨幕流蘇閱讀 553評(píng)論 2 4