
文章插圖
性能優(yōu)化是開發(fā)中最重要的一部分,因?yàn)槊總€(gè)開發(fā)者開發(fā)出的產(chǎn)品都不能一次做到最優(yōu),所以在上線之前,我們要做大量的測(cè)試和優(yōu)化,等到上線時(shí)還要避免一些閃退、卡頓等情況出現(xiàn) 。當(dāng)然好的性能也是我們留住用戶的一項(xiàng)重要指標(biāo) 。下面我整理了一些我在實(shí)際項(xiàng)目中遇見的一些內(nèi)存問題和解答,希望可以對(duì)大家有所幫助 。
內(nèi)存優(yōu)化項(xiàng)目的過程怎么做
1、分析現(xiàn)狀、確認(rèn)問題
我們發(fā)現(xiàn)我們的APP在內(nèi)存方面可能存在很大的問題,第一方面的原因是我們的線上的OOM率比較高 。第二點(diǎn)呢,我們經(jīng)常會(huì)看到在我們的檢測(cè)工具中內(nèi)存的抖動(dòng)比較頻繁 。這是我一個(gè)初步的現(xiàn)狀,然后在我們知道了這個(gè)初步的現(xiàn)狀之后,進(jìn)行了問題的確認(rèn),我們經(jīng)過一系列的調(diào)研以及深入研究,我們最終發(fā)現(xiàn)我們的項(xiàng)目中存在以下幾點(diǎn)大問題,比如說:內(nèi)存抖動(dòng)、內(nèi)存溢出、內(nèi)存泄漏,還有我們的Bitmap使用非常粗獷 。
2、針對(duì)性優(yōu)化
比如內(nèi)存抖動(dòng)的解決 -> Memory Profiler工具的使用(呈現(xiàn)了鋸齒張圖形) -> 分析到具體代碼存在的問題(頻繁被調(diào)用的方法中出現(xiàn)了日志字符串的拼接),也可以說說內(nèi)存泄漏或內(nèi)存溢出的解決 。
3、效率提升
為了不增加業(yè)務(wù)同學(xué)的工作量,我使用友盟+U-APM這款對(duì)APP進(jìn)行性能監(jiān)測(cè)的工具,對(duì)APP進(jìn)行監(jiān)控 。U-APM 是友盟+推出的App穩(wěn)定性監(jiān)控、性能監(jiān)控和云真機(jī)測(cè)試平臺(tái) 。通過輕量級(jí)的集成接入即可擁有實(shí)時(shí)、可靠、全面的應(yīng)用崩潰、ANR、自定義異常等捕獲能力,及卡頓、啟動(dòng)分析等性能能力,支持多場(chǎng)景、多通道智能告警監(jiān)控,幫助開發(fā)者高效還原異常、卡頓用戶的訪問路徑和業(yè)務(wù)現(xiàn)場(chǎng),縮短故障排查時(shí)間 。大家都可以使用,還是非常方便的哦 。
如何避免內(nèi)存抖動(dòng)
內(nèi)存抖動(dòng)是由于短時(shí)間內(nèi)有大量對(duì)象進(jìn)出新生區(qū)導(dǎo)致的,它伴隨著頻繁的GC,gc會(huì)大量占用ui線程和cpu資源,會(huì)導(dǎo)致app整體卡頓 。
避免發(fā)生內(nèi)存抖動(dòng)的幾點(diǎn)建議:
●盡量避免在循環(huán)體內(nèi)創(chuàng)建對(duì)象,應(yīng)該把對(duì)象創(chuàng)建移到循環(huán)體外 。
●注意自定義View的onDraw()方法會(huì)被頻繁調(diào)用,所以在這里面不應(yīng)該頻繁的創(chuàng)建對(duì)象 。
●當(dāng)需要大量使用Bitmap的時(shí)候,試著把它們緩存在數(shù)組或容器中實(shí)現(xiàn)復(fù)用 。
●對(duì)于能夠復(fù)用的對(duì)象,同理可以使用對(duì)象池將它們緩存起來 。
以上是我在開發(fā)過程中遇見的一些問題,我都給大家做出了解答,有用到的地方,大家可以參考一下此文章 。在對(duì)APP進(jìn)行優(yōu)化的時(shí)候,我經(jīng)常使用的是友盟+U-APM對(duì)APP進(jìn)行監(jiān)測(cè),尋找APP所在的問題,從而有針對(duì)性的解決問題 。另外它還提供云真機(jī)測(cè)試能力,助力開發(fā)者從研發(fā)測(cè)試質(zhì)量驗(yàn)收到線上問題復(fù)現(xiàn)排查,保障應(yīng)用品質(zhì),提升測(cè)試效率 。在云真機(jī)測(cè)試期間自動(dòng)采集崩潰信息,提供詳盡的崩潰報(bào)告協(xié)助篩查,真正實(shí)現(xiàn)監(jiān)控測(cè)試全流程深度打通 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 目前防水最好的三款手機(jī) 什么手機(jī)防水性能好
- 1300以內(nèi)主打性能的5G手機(jī) 1300買個(gè)什么手機(jī)好
- 安卓手機(jī)性能排行 什么安卓手機(jī)性能好
- 推薦幾款性能不錯(cuò)的手機(jī) 什么樣的手機(jī)性能好
- 且性能夠用的手機(jī)有哪些 有什么好一點(diǎn)的智能小手機(jī)
- 手機(jī)應(yīng)該怎么選 什么手機(jī)性能好還不貴
- 全球手機(jī)處理器AI性能榜出爐 全球什么手機(jī)處理器好
- Android上最佳的視頻壓縮工具推薦 手機(jī)視頻壓縮有什么好的軟件
- 手機(jī)推薦2017性價(jià)比 2017什么手機(jī)性能好
- 四款最實(shí)惠的強(qiáng)性能手機(jī) 什么手機(jī)既實(shí)用又實(shí)惠性能好
