移動AR產品如何做好性能優化?

笑搞


APP產品必經之路,立項、研發、測試、上線、運營、迭代;

為什麼要進行性能優化?因為在項目中,難免會因為工期趕,功能雜,市場強烈等原因導致研發過程中代碼冗餘或現實文案不合理的情況。我本身就是移動技術研發,目前是技術管理崗位。以前在項目上線後,接到用戶反饋,APP使用起來有鈍感,有時候使用久了還出現崩潰的情況。


下面我就總結下相關的一些性能優化:

一:網絡請求問題耗時;(Response Time)

二:過度繪製,導致卡頓;(ANR)

三:耗內存(Memory)

四:內存洩露(Out of memory)


網絡請求耗時,導致體驗不佳。指的是get、post請求中服務接口請求和返回耗時,該原因多為自己的請求處理不合理,線程池管理考慮不全。調整文案是多使用第三方HTTP開源庫,因它們經過市場考驗,大家都在用,口碑也不錯的話,那基本是滿足了大部分業務情景 ,連線程池都會幫你處理好。


請求的數據及解析。常用的數據格式有xml及json,可讀性來講XML更直觀,但json解析速度更快,拓展性和實用性json也是公認的。減少沒必要的網絡請求,有些數據更新頻度不高的,可以考慮本地緩存。這樣無論是在響應速度和用戶體驗上,都有大幅的提高。


界面常卡頓,還出現閃退的問題。主要原因是在主線程過度繪製或做了超時的事。那麼避免方式就是耗時操作不在主線程做,尤其是網絡請求和數據庫操作、IO操作等。耗時操作在子線程中處理。優化界面佈局,減少佈局層數。


耗內存,導致手機發熱,尤其是AR這種音、視頻的軟件,視頻播放更會佔內存,而手機的運行內存。如何規避?減少廣播使用,視頻播放結束後及時處理緩存。


內存洩露,查看是否有對象一直沒有釋放。尤其是圖片加載後圖片有沒回收。沒必要,只加載縮略圖,不要加載原圖。


最後,性能優化最優先是架構上優化,確認架構合理後再優化代碼,看代碼是否高消耗,最後才是語言上的確認。C++確實是比java這類語言快,但架構不行,考慮語言選型也是於事無補。最好的引擎搭在共享單車上,也跑不長遠。


分享到:


相關文章: