溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用圖片和數(shù)據(jù)緩存技術(shù)提升App性能(第4章) 之一

發(fā)布時間:2020-07-27 01:37:47 來源:網(wǎng)絡(luò) 閱讀:817 作者:iKingLai 欄目:移動開發(fā)

在本章,你會學(xué)到以下東西:

  • 網(wǎng)絡(luò)和文件IO處理如何影響app性能

  • 和緩存算法相關(guān)的一般問題和技術(shù)

  • iPhone緩存技術(shù)中的特定問題

           1)    你應(yīng)該緩存什么

           2)    你應(yīng)該什么時候緩存

           3)    如何實(shí)現(xiàn)緩存

           4)    你應(yīng)該在哪里緩存數(shù)據(jù)和圖片

  • 內(nèi)存消耗和性能之間的權(quán)衡


對于如今大多數(shù)的apps,開發(fā)者通常從他們自己的服務(wù)器加載數(shù)據(jù)或者從第三方服務(wù)獲取數(shù)據(jù)。比較少的apps會將數(shù)據(jù)存儲在文件系統(tǒng)中,然后在必要的時候加載顯示給用戶。幾乎沒有apps不使用網(wǎng)絡(luò)或文件IO。因此,理解這些處理類型產(chǎn)生的影響,能夠幫助你更簡單的定位和解決問題。


網(wǎng)絡(luò),文件,內(nèi)存處理時的不同性能


讓我們看一下從文件系統(tǒng)加載一張圖片到內(nèi)存和從一臺給定的服務(wù)器加載到內(nèi)存花費(fèi)了多少時間。當(dāng)然,這個結(jié)果取決于服務(wù)器處理請求的速度,網(wǎng)絡(luò)的速度,服務(wù)器到測試機(jī)的距離。但是,我想要說明一個重要的概念,通過網(wǎng)絡(luò)加載一張圖片要比從文件系統(tǒng)中加載慢的多,從文件系統(tǒng)中加載要比圖片本身就在內(nèi)存中慢的多。我是基于加載一張50kb的圖片來進(jìn)行性能測試的。下面是測試的結(jié)果:


文件加載時間:0.001147

網(wǎng)絡(luò)加載時間:4.160634


從文件系統(tǒng)加載圖片花了1ms,而從網(wǎng)絡(luò)加載花了4s -- 巨大的差別!1ms對于性能幾乎不會產(chǎn)生什么影響;但是,如果需要同時加載10-20張圖片,其中有些圖片尺寸比較大 -- 可能超過幾百 kbs。這些圖片總的加載時間將會超過數(shù)秒鐘。



如何確定瓶頸


從文件或網(wǎng)絡(luò)加載有兩個主要問題。

  • 在app顯示圖片之前用戶需要等很長一段時間。這個時間會根據(jù)圖片的數(shù)量而增加。如果UI在運(yùn)行時需要加載很多圖片,比如像UITableView,用戶必須等待很長的時間,當(dāng)他們想滾動查看更多信息的時候。

  • 它可能會阻塞UI,這樣用戶就不能和UI恰當(dāng)?shù)倪M(jìn)行交互。第6章也會介紹到這些。


因?yàn)閺奈募?網(wǎng)絡(luò)加載 data/p_w_picpaths 花的時間比從內(nèi)存中加載花的時間多,而這個加載過程通常是性能的瓶頸,如果你的apps必須等待從網(wǎng)絡(luò)返回?cái)?shù)據(jù),或其他必須等待的地方返回?cái)?shù)據(jù)。所以當(dāng)你遇到性能問題時,你首先要測試的就是文件或網(wǎng)絡(luò)加載數(shù)據(jù)。像在第2章看到的,你可以使用 System Activity和File Activity觀察數(shù)據(jù)加載過程。圖4-1顯示了UI的這些性能測試指標(biāo)。

使用圖片和數(shù)據(jù)緩存技術(shù)提升App性能(第4章) 之一

圖4-1顯示的file activities包括了加載和寫文件/目錄,還有讀文件屬性。圖4-2展示了每一個activity的更多細(xì)節(jié),能夠幫助你查看哪種類型的file activities運(yùn)行的比較頻繁。


使用圖片和數(shù)據(jù)緩存技術(shù)提升App性能(第4章) 之一


圖4-3和4-4顯示了更多關(guān)于System Usage的細(xì)節(jié),它更加通用,覆蓋了更多的數(shù)據(jù)類型。如圖4-4,有很多plist和nib的activities。


今天暫時介紹到這里,后續(xù)敬請期待。。。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI