




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
性能優(yōu)化,M了個(gè)J,面試題,你在項(xiàng)目中是怎么優(yōu)化內(nèi)存的??jī)?yōu)化你是從哪幾方面著手?列表卡頓的原因可能有哪些?你平時(shí)是怎么優(yōu)化的?遇到tableView卡頓嘛?會(huì)造成卡頓的原因大致有哪些?,CPU和GPU,在屏幕成像的過程中,CPU和GPU起著至關(guān)重要的作用CPU(CentralProcessingUnit,中央處理器)對(duì)象的創(chuàng)建和銷毀、對(duì)象屬性的調(diào)整、布局計(jì)算、文本的計(jì)算和排版、圖片的格式轉(zhuǎn)換和解碼、圖像的繪制(CoreGraphics)GPU(GraphicsProcessingUnit,圖形處理器)紋理的渲染,CPU,GPU,幀緩存,視頻控制器,屏幕,讀取,渲染,計(jì)算,顯示,在iOS中是雙緩沖機(jī)制,有前幀緩存、后幀緩存,屏幕成像原理,水平同步信號(hào)(HSync),垂直同步信號(hào)(VSync),卡頓產(chǎn)生的原因,CPU,GPU,VSync,VSync,VSync,VSync,VSync,卡頓解決的主要思路盡可能減少CPU、GPU資源消耗按照60FPS的刷幀率,每隔16ms就會(huì)有一次VSync信號(hào),卡頓優(yōu)化-CPU,盡量用輕量級(jí)的對(duì)象,比如用不到事件處理的地方,可以考慮使用CALayer取代UIView不要頻繁地調(diào)用UIView的相關(guān)屬性,比如frame、bounds、transform等屬性,盡量減少不必要的修改盡量提前計(jì)算好布局,在有需要時(shí)一次性調(diào)整對(duì)應(yīng)的屬性,不要多次修改屬性Autolayout會(huì)比直接設(shè)置frame消耗更多的CPU資源圖片的size最好剛好跟UIImageView的size保持一致控制一下線程的最大并發(fā)數(shù)量盡量把耗時(shí)的操作放到子線程文本處理(尺寸計(jì)算、繪制)圖片處理(解碼、繪制),卡頓優(yōu)化-GPU,盡量避免短時(shí)間內(nèi)大量圖片的顯示,盡可能將多張圖片合成一張進(jìn)行顯示GPU能處理的最大紋理尺寸是4096x4096,一旦超過這個(gè)尺寸,就會(huì)占用CPU資源進(jìn)行處理,所以紋理盡量不要超過這個(gè)尺寸盡量減少視圖數(shù)量和層次減少透明的視圖(alphaRun-Arguments)DYLD_PRINT_STATISTICS設(shè)置為1如果需要更詳細(xì)的信息,那就將DYLD_PRINT_STATISTICS_DETAILS設(shè)置為1,APP的啟動(dòng),APP的冷啟動(dòng)可以概括為3大階段dyldruntimemain,APP的啟動(dòng)-dyld,dyld(dynamiclinkeditor),Apple的動(dòng)態(tài)鏈接器,可以用來裝載Mach-O文件(可執(zhí)行文件、動(dòng)態(tài)庫(kù)等)啟動(dòng)APP時(shí),dyld所做的事情有裝載APP的可執(zhí)行文件,同時(shí)會(huì)遞歸加載所有依賴的動(dòng)態(tài)庫(kù)當(dāng)dyld把可執(zhí)行文件、動(dòng)態(tài)庫(kù)都裝載完畢后,會(huì)通知Runtime進(jìn)行下一步的處理,APP的啟動(dòng)-runtime,啟動(dòng)APP時(shí),runtime所做的事情有調(diào)用map_images進(jìn)行可執(zhí)行文件內(nèi)容的解析和處理在load_images中調(diào)用call_load_methods,調(diào)用所有Class和Category的+load方法進(jìn)行各種objc結(jié)構(gòu)的初始化(注冊(cè)O(shè)bjc類、初始化類對(duì)象等等)調(diào)用C+靜態(tài)初始化器和_attribute_(constructor)修飾的函數(shù)到此為止,可執(zhí)行文件和動(dòng)態(tài)庫(kù)中所有的符號(hào)(Class,Protocol,Selector,IMP,)都已經(jīng)按格式成功加載到內(nèi)存中,被runtime所管理,APP的啟動(dòng)-main,總結(jié)一下APP的啟動(dòng)由dyld主導(dǎo),將可執(zhí)行文件加載到內(nèi)存,順便加載所有依賴的動(dòng)態(tài)庫(kù)并由runtime負(fù)責(zé)加載成objc定義的結(jié)構(gòu)所有初始化工作結(jié)束后,dyld就會(huì)調(diào)用main函數(shù)接下來就是UIApplicationMain函數(shù),AppDelegate的application:didFinishLaunchingWithOptions:方法,APP的啟動(dòng)優(yōu)化,按照不同的階段dyld減少動(dòng)態(tài)庫(kù)、合并一些動(dòng)態(tài)庫(kù)(定期清理不必要的動(dòng)態(tài)庫(kù))減少Objc類、分類的數(shù)量、減少Selector數(shù)量(定期清理不必要的類、分類)減少C+虛函數(shù)數(shù)量Swift盡量使用structruntime用+initialize方法和dispatch_once取代所有的_attribute_(constructor)、C+靜態(tài)構(gòu)造器、ObjC的+loadmain在不影響用戶體驗(yàn)的前提下,盡可能將一些操作延遲,不要全部都放在finishLaunching方法中按需加載,安裝包瘦身,安裝包(IPA)主要由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中專外科考試真題及答案
- 2025年世界地理東亞試題及答案
- 成本控制措施執(zhí)行
- 虛擬現(xiàn)實(shí)在職業(yè)成長(zhǎng)教育中的應(yīng)用成果鑒定報(bào)告
- 建筑施工安全管理信息化在2025年的法律法規(guī)及標(biāo)準(zhǔn)體系報(bào)告
- 零售門店數(shù)字化供應(yīng)鏈協(xié)同創(chuàng)新研究報(bào)告001
- 2025年智能樓宇管理師(初級(jí))考試試卷:智能樓宇能源管理系統(tǒng)應(yīng)用
- 2025年注冊(cè)測(cè)繪師考試測(cè)繪項(xiàng)目管理與實(shí)施試卷
- 2025年智能樓宇管理師考試試卷(樓宇智能化系統(tǒng)測(cè)試與評(píng)估)
- 2025年裝飾裝修工(中級(jí))考試試卷:裝飾裝修施工現(xiàn)場(chǎng)質(zhì)量控制監(jiān)督
- 《財(cái)政政策》課件
- 鄉(xiāng)土中國(guó)考試題及答案
- 高空墜落安全教育培訓(xùn)
- DB5106∕T 29-2023 醫(yī)院志愿者服務(wù)規(guī)范
- 《智慧化稅費(fèi)申報(bào)與管理》課件-項(xiàng)目四 關(guān)稅的計(jì)算與繳納
- 雇傭保姆合同電子版(2025年版)
- 防暑降溫安全常識(shí)培訓(xùn)
- 預(yù)防壓瘡敷料的裁剪
- 體育場(chǎng)看臺(tái)座椅施工方案
- 老年人消毒護(hù)理與急救技術(shù)
- 數(shù)據(jù)中心列頭柜基礎(chǔ)知識(shí)
評(píng)論
0/150
提交評(píng)論