在本章,你會學到以下東西:
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供棲霞網(wǎng)站建設、棲霞做網(wǎng)站、棲霞網(wǎng)站設計、棲霞網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、棲霞企業(yè)網(wǎng)站模板建站服務,10余年棲霞做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。網(wǎng)絡和文件IO處理如何影響app性能
和緩存算法相關的一般問題和技術
iPhone緩存技術中的特定問題
1) 你應該緩存什么
2) 你應該什么時候緩存
3) 如何實現(xiàn)緩存
4) 你應該在哪里緩存數(shù)據(jù)和圖片
內存消耗和性能之間的權衡
對于如今大多數(shù)的apps,開發(fā)者通常從他們自己的服務器加載數(shù)據(jù)或者從第三方服務獲取數(shù)據(jù)。比較少的apps會將數(shù)據(jù)存儲在文件系統(tǒng)中,然后在必要的時候加載顯示給用戶。幾乎沒有apps不使用網(wǎng)絡或文件IO。因此,理解這些處理類型產(chǎn)生的影響,能夠幫助你更簡單的定位和解決問題。
網(wǎng)絡,文件,內存處理時的不同性能
讓我們看一下從文件系統(tǒng)加載一張圖片到內存和從一臺給定的服務器加載到內存花費了多少時間。當然,這個結果取決于服務器處理請求的速度,網(wǎng)絡的速度,服務器到測試機的距離。但是,我想要說明一個重要的概念,通過網(wǎng)絡加載一張圖片要比從文件系統(tǒng)中加載慢的多,從文件系統(tǒng)中加載要比圖片本身就在內存中慢的多。我是基于加載一張50kb的圖片來進行性能測試的。下面是測試的結果:
文件加載時間:0.001147
網(wǎng)絡加載時間:4.160634
從文件系統(tǒng)加載圖片花了1ms,而從網(wǎng)絡加載花了4s -- 巨大的差別!1ms對于性能幾乎不會產(chǎn)生什么影響;但是,如果需要同時加載10-20張圖片,其中有些圖片尺寸比較大 -- 可能超過幾百 kbs。這些圖片總的加載時間將會超過數(shù)秒鐘。
如何確定瓶頸
從文件或網(wǎng)絡加載有兩個主要問題。
在app顯示圖片之前用戶需要等很長一段時間。這個時間會根據(jù)圖片的數(shù)量而增加。如果UI在運行時需要加載很多圖片,比如像UITableView,用戶必須等待很長的時間,當他們想滾動查看更多信息的時候。
它可能會阻塞UI,這樣用戶就不能和UI恰當?shù)倪M行交互。第6章也會介紹到這些。
因為從文件/網(wǎng)絡加載 data/p_w_picpaths 花的時間比從內存中加載花的時間多,而這個加載過程通常是性能的瓶頸,如果你的apps必須等待從網(wǎng)絡返回數(shù)據(jù),或其他必須等待的地方返回數(shù)據(jù)。所以當你遇到性能問題時,你首先要測試的就是文件或網(wǎng)絡加載數(shù)據(jù)。像在第2章看到的,你可以使用 System Activity和File Activity觀察數(shù)據(jù)加載過程。圖4-1顯示了UI的這些性能測試指標。
圖4-1顯示的file activities包括了加載和寫文件/目錄,還有讀文件屬性。圖4-2展示了每一個activity的更多細節(jié),能夠幫助你查看哪種類型的file activities運行的比較頻繁。
圖4-3和4-4顯示了更多關于System Usage的細節(jié),它更加通用,覆蓋了更多的數(shù)據(jù)類型。如圖4-4,有很多plist和nib的activities。
今天暫時介紹到這里,后續(xù)敬請期待。。。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。