溫馨提示×

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

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

性能測(cè)試的示例分析

發(fā)布時(shí)間:2021-03-04 15:01:26 來源:億速云 閱讀:130 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下性能測(cè)試的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

  如何正確的測(cè)量而不是猜測(cè)這點(diǎn)很重要。根據(jù)性能相關(guān)的知識(shí)寫出代碼不同于倉(cāng)促的優(yōu)化。前者很好,后者實(shí)際上就是在浪費(fèi)時(shí)間。

那該如何測(cè)量呢?

  第一步就是確保在真實(shí)環(huán)境下測(cè)試你的程序。

  當(dāng)你開始做一些性能方面的工作時(shí),一定要在真機(jī)上測(cè)試,而不是模擬器。模擬器雖然是加快開發(fā)效率的一把利器,但它不能提供準(zhǔn)確的真機(jī)性能參數(shù)。

  模擬器運(yùn)行在你的Mac上,然而Mac上的CPU往往比iOS設(shè)備要快。相反,Mac上的GPU和iOS設(shè)備的完全不一樣,模擬器不得已要在軟件層面(CPU)模擬設(shè)備的GPU,這意味著GPU相關(guān)的操作在模擬器上運(yùn)行的更慢,尤其是使用CAEAGLLayer來寫一些OpenGL的代碼時(shí)候。

  這就是說在模擬器上的測(cè)試出的性能會(huì)高度失真。如果動(dòng)畫在模擬器上運(yùn)行流暢,可能在真機(jī)上十分糟糕。如果在模擬器上運(yùn)行的很卡,也可能在真機(jī)上很平滑。你無法確定。

  性能測(cè)試一定使用發(fā)布配置

  另一件重要的事情就是性能測(cè)試一定要用發(fā)布配置,而不是調(diào)試模式。因?yàn)楫?dāng)用發(fā)布環(huán)境打包的時(shí)候,編譯器會(huì)引入一系列提高性能的優(yōu)化,例如去掉調(diào)試符號(hào)或者移除并重新組織代碼。你也可以自己做到這些,例如在發(fā)布環(huán)境禁用NSLog語(yǔ)句。你只關(guān)心發(fā)布性能,那才是你需要測(cè)試的點(diǎn)。

  最后,最好在你支持的設(shè)備中性能最差的設(shè)備上測(cè)試:如果基于iOS6開發(fā),這意味著最好在iPhone3GS或者iPad2上測(cè)試。如果可能的話,測(cè)試不同的設(shè)備和iOS版本,因?yàn)樘O果在不同的iOS版本和設(shè)備中做了一些改變,這也可能影響到一些性能。例如iPad3明顯要在動(dòng)畫渲染上比iPad2慢很多,因?yàn)殇秩?倍多的像素點(diǎn)(為了支持視網(wǎng)膜顯示)。

  為了做到動(dòng)畫的平滑,你需要以60FPS(幀每秒)的速度運(yùn)行,以同步屏幕刷新速率。通過基于NSTimer或者CADisplayLink的動(dòng)畫你可以降低到30FPS,而且效果還不錯(cuò),但是沒辦法通過CoreAnimation做到這點(diǎn)。如果不保持60FPS的速率,就可能隨機(jī)丟幀,影響到體驗(yàn)。

  你可以在使用的過程中明顯感到有沒有丟幀,但沒辦法通過肉眼來得到具體的數(shù)據(jù),也沒法知道你的做法有沒有真的提高性能。你需要的是一系列精確的數(shù)據(jù)。

  你可以在程序中用CADisplayLink來測(cè)量幀率,然后在屏幕上顯示出來,但應(yīng)用內(nèi)的FPS顯示并不能夠完全真實(shí)測(cè)量出CoreAnimation性能,因?yàn)樗鼉H僅測(cè)出應(yīng)用內(nèi)的幀率。我們知道很多動(dòng)畫都在應(yīng)用之外發(fā)生(在渲染服務(wù)器進(jìn)程中處理),但同時(shí)應(yīng)用內(nèi)FPS計(jì)數(shù)的確可以對(duì)某些性能問題提供參考,一旦找出一個(gè)問題的地方,你就需要得到更多精確詳細(xì)的數(shù)據(jù)來定位到問題所在。蘋果提供了一個(gè)強(qiáng)大的Instruments工具集來幫我們做到這些。

看完了這篇文章,相信你對(duì)“性能測(cè)試的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

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

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

AI