您好,登錄后才能下訂單哦!
在本章,你將學到下面這些內容:
模擬器和真機測試環境的不同。
內存管理是如何影響一個app的性能。
檢測app的工具和技術包括:
1)基本的測試內存和性能的工具。
2)測試內存管理方面比較復雜的工具,比如內存泄露和bad access。
3)測試計算過程中性能方面比較復雜的工具,比如電池,文件加載,顯示信息等。
如何把你的程序分割成更小的部分,這樣能夠更簡單的定位性能的瓶頸。
為了提升性能,你需要非常小心的運行測試來查看問題出現在哪里。為了執行一個有用的測試,你需要知道程序或代碼段可能運行慢的原因。
在一開始,你應該注意兩種基本的選擇:模擬器和真機環境,內存優化和性能優化之間的平衡。
首先,你需要知道模擬器和真機環境的不同。
模擬器和真機
iPhone應用性能的主要問題是他們運行在一個受限的,處理慢的環境中。iPhone模擬器開發環境比真機環境要更快;事實上,模擬器的環境跟在mac機器上運行它一樣快。
因此,你可能會非常的驚訝,當你的程序在模擬器上運行比較快,而在真機上比較慢。我觀察到很多人抱怨在手機網絡上應用比較慢。在某些情況下確實如此。但是,在很多情況下app的性能可能會下降很多,由于代碼實現本身,而不是網絡的問題。因此,用基本的工具何標準環境仔細的測試你的app,會使得你的app在性能和用戶體驗上更加自信。
為了演示模擬器和真機的不同,我在模擬器和真機上測試了一個程序,結果讓人吃驚。
在模擬器上花了0.5秒完成了主要的計算。
在真機上同樣的計算花了7秒。
程序很簡單:我用兩個數組中進行一個簡單的測試,每個數組有1000個元素。然后,代碼循環這兩個數組,發現兩個數相同就打印“hello”。在真實環境中,你可能不需要在一個數組中處理1000個元素或你可能不會選擇循環一個數組來找到相同的數。但是,這不是重點。我主要是為了演示真機比模擬器運行慢的多。
這引出了我在本書中將會多次提到的一個非常重要的點:你總是需要在模擬器和真機上同時測試。那為什么不只是在真機上測試呢?因為模擬器有以下優點:
在模擬器上運行比較快,這意味著可以減少開發者被耽誤的時間。
比較好測試內存泄露和內存分配問題。
內存和性能
內存和性能是不同的。內存通常是指隨機存儲器,它代表了你使用了多少存儲空間,以及你還剩多少存儲空間。性能是指你運行一個指定的功能你的app有多快。
內存可能會對性能產生巨大的影響。當你的設備有更多的RAM和更多的存儲空間,你可以預加載和緩存更多的數據。相比文件存儲和網絡,RAM訪問是非常快的。通過在RAM上預加載和緩存更多的數據,在很多情況下你可以顯著的提升你的程序性能。例如,如果你的app是一個游戲,需要加載很多圖片,你可以在必要的時候預加載和顯示他們。從RAM中加載比從文件中加載要快10倍。
但是,內存使用好并不意味著性能就好。有一些app不需要使用很多內存;因此,如果你只是優化內存,性能可能并不會提升。反之就不好了:一個app為了達到一個比較好的性能而使用了所有的內存,很快app就會把內存耗盡。
因此,你應該總是要對內存和運行時性能進行仔細的測試,確保在內存使用和運行時性能有一個好的權衡。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。