精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于跨端框架項(xiàng)目的內(nèi)存問題優(yōu)化

存儲(chǔ) 存儲(chǔ)軟件
目前,業(yè)內(nèi)的跨端框架不少:react-native,weex,hippy,taro等等。采用跨端框架的項(xiàng)目一般都依附于客戶端而存在,由前端同學(xué)開發(fā)。為了避免客戶端發(fā)生crash,相對(duì)于傳統(tǒng)瀏覽器上的前端頁面開發(fā),跨端項(xiàng)目對(duì)于內(nèi)存管理、CPU利用率的要求更高。

[[358859]]

寫在前面

目前,業(yè)內(nèi)的跨端框架不少:react-native,weex,hippy,taro等等。采用跨端框架的項(xiàng)目一般都依附于客戶端而存在,由前端同學(xué)開發(fā)。為了避免客戶端發(fā)生crash,相對(duì)于傳統(tǒng)瀏覽器上的前端頁面開發(fā),跨端項(xiàng)目對(duì)于內(nèi)存管理、CPU利用率的要求更高。

本文將以某App上的小說閱讀器為例,講解在對(duì)項(xiàng)目代碼完全不了解的情況下,如何進(jìn)行內(nèi)存問題的優(yōu)化。

小說的用戶場(chǎng)景比較簡(jiǎn)單:打開一部小說,一直滑動(dòng)閱讀即可。

前期工作

第一步,我們需要工具,來量化項(xiàng)目的內(nèi)存表現(xiàn)。perfdog 是常用的工具之一。使用很簡(jiǎn)單,手機(jī)連上電腦,打開perdog,打開想要測(cè)試的應(yīng)用,進(jìn)行操作,就可以看到實(shí)時(shí)的內(nèi)存和CPU表現(xiàn)了。

 

由于虛擬內(nèi)存達(dá)到某一個(gè)臨界值后,會(huì)導(dǎo)致APP直接crash;所以需要明確最重要的衡量指標(biāo):1、一頓操作后的虛擬內(nèi)存增量。2、峰值虛擬內(nèi)存;

開始優(yōu)化

優(yōu)化方向

前文已經(jīng)講到,我們優(yōu)化的衡量指標(biāo)是:虛擬內(nèi)存峰值、增量

造成內(nèi)存增加的原因主要是:

1、業(yè)務(wù)需要,在內(nèi)存里面儲(chǔ)存了業(yè)務(wù)數(shù)據(jù)

2、內(nèi)存泄露導(dǎo)致無法按預(yù)期進(jìn)行GC

對(duì)于第一點(diǎn),并不具有普適性,需要具體情況具體分析。第二點(diǎn)是我們優(yōu)化的著重發(fā)力點(diǎn)。

優(yōu)化步驟

以react為例,說起內(nèi)存問題優(yōu)化(避免內(nèi)存泄露),方法都耳熟能詳:

1、定時(shí)器需要清除 ; 2、注意閉包的使用;3、組件銷毀時(shí)需要清除對(duì)其的引用;4、使用發(fā)布訂閱模式時(shí),組件銷毀時(shí),需要移除事件監(jiān)聽;5、注意全局變量的使用。。。。。

但是在對(duì)業(yè)務(wù)代碼完全不熟悉,并且業(yè)務(wù)代碼量巨大時(shí),直接從幾萬行代碼入手或許不是最好的選擇。

1、采集內(nèi)存增量

怎么找到可優(yōu)化或者說內(nèi)存泄露的地方呢?perfdog可以幫助我們查看實(shí)時(shí)內(nèi)存,但是沒有辦法細(xì)化到具體的內(nèi)存。作為前端開發(fā),我們可以利用常用的chrome inspector的內(nèi)存快照工具幫助我們進(jìn)行分析。

 

我們想要測(cè)試的是內(nèi)存增量。在開始操作前,先記錄一次內(nèi)存快照。接著模擬用戶,進(jìn)行一系列操作。操作完成后,手動(dòng)觸發(fā)一次gc,再記錄一次內(nèi)存快照。查看這兩次快照之間的差異,來判斷內(nèi)存增量的由來。

 

至此,我們就可以看到我們的操作所帶來的內(nèi)存增量了。接下來開始進(jìn)行分析。

2、分析內(nèi)存增量

以本文提及的小說場(chǎng)景為例,在滑動(dòng)了小說幾個(gè)章節(jié)后,發(fā)現(xiàn)某組件對(duì)象數(shù)量增加了很多,但是一個(gè)也沒有被刪除。點(diǎn)開其中一個(gè)對(duì)象實(shí)例,查看其引用鏈,發(fā)現(xiàn)被其外層組件所引用了。

 

通過關(guān)鍵變量名,可以迅速定位到問題代碼,進(jìn)行修復(fù)。最終發(fā)現(xiàn)父組件中,有一個(gè)變量持有了所有的子組件,導(dǎo)致被銷毀的子組件無法被GC,造成泄漏。

再舉一個(gè)例子:

 

從上面的圖中我們可以發(fā)現(xiàn),Promise實(shí)例數(shù)也是只增加,不減少。點(diǎn)開其中一個(gè)Promise進(jìn)行排查,發(fā)現(xiàn)大量Promise一直處于pending狀態(tài)。這里肯定是有問題的。

其余不少組件也存在實(shí)例數(shù)只增加不減少的情況,點(diǎn)開其中一個(gè)組件發(fā)現(xiàn):

 

組件內(nèi)部引用的Promise一直pending,導(dǎo)致該組件也被系統(tǒng)一直持有了,無法釋放,一切都是卡住的Promise的鍋。

通過查看Promise的持有鏈,最終發(fā)現(xiàn)是由于一個(gè)Bug,導(dǎo)致了部分Promise一直無法resolve或reject,導(dǎo)致了內(nèi)存泄露。修復(fù)Bug后,問題解決。

這里舉了兩個(gè)例子,說明了如何利用內(nèi)存快照進(jìn)行問題分析,總結(jié)一下:

拿到內(nèi)存增量后,我們需要重點(diǎn)關(guān)注那些新增數(shù)量特別多,但是刪除數(shù)量特別少的對(duì)象,很可能其中就有內(nèi)存泄露,或者有明顯的優(yōu)化空間。

3、采集數(shù)據(jù)、分析優(yōu)化效果

優(yōu)化完成后,如何衡量?jī)?yōu)化效果呢?用數(shù)據(jù)說話。chrome inspector一般是用來調(diào)試的,嚴(yán)謹(jǐn)?shù)牟杉瘮?shù)據(jù)需要借助其他工具。文章開頭我們介紹了perfdog的使用方法,但是這里用人工來測(cè)試是不太現(xiàn)實(shí)的,我們可以使用簡(jiǎn)單的工具來輔助我們進(jìn)行測(cè)試。

以Android為例,

1、首先安裝adb工具,安裝教程:https://www.jianshu.com/p/1b3fb1f27b67

2、接著連接手機(jī),切換到想要測(cè)試的場(chǎng)景,使用 adb shell 來輔助測(cè)試。

以小說閱讀場(chǎng)景為例,使用下面的命令可以控制測(cè)試手機(jī)自動(dòng)翻頁:

adb shell "input swipe 1000 1300 50 1300 1000"

3、然后我們可以使用Node.js寫一個(gè)簡(jiǎn)單的腳本,就可以開啟簡(jiǎn)陋的“自動(dòng)化”測(cè)試了。下面就是一個(gè)自動(dòng)左右滑動(dòng)小說1000頁的簡(jiǎn)易腳本

 

4、再結(jié)合perfdog,我們就可以得到內(nèi)存和CPU的表現(xiàn)數(shù)據(jù)了。perfdog可以將數(shù)據(jù)導(dǎo)出成excel文件,開始采集數(shù)據(jù)時(shí),點(diǎn)擊perfdog右上角的開始按鈕,結(jié)束時(shí)點(diǎn)擊暫停按鈕,即可導(dǎo)出數(shù)據(jù)。數(shù)據(jù)里面包括了每一秒鐘的CPU、內(nèi)存表現(xiàn)。

 

最后,通過人工或腳本的方法,便可以很方便的統(tǒng)計(jì)出虛擬內(nèi)存增量,峰值虛擬內(nèi)存,最終產(chǎn)出優(yōu)化效果報(bào)告。

注意,采集數(shù)據(jù)的時(shí)候,需要等待客戶端內(nèi)存穩(wěn)定后再開始,否則對(duì)最后的結(jié)果會(huì)產(chǎn)生較大影響。并且,每一次測(cè)試,需要固定測(cè)試路徑,排除其他變量帶來的干擾。

寫在后面

本文主要是從一個(gè)前端工程師的角度,以基于跨端框架的項(xiàng)目為例,說明了如何實(shí)施一次內(nèi)存問題優(yōu)化。更進(jìn)一步,可以和客戶端同學(xué)配合,達(dá)到更加深度的優(yōu)化效果。

 

在對(duì)項(xiàng)目代碼完全不了解的情況下,我們可能無法直接從代碼入手,一行一行死磕。可以借助工具,按照本文的思路進(jìn)行分析,然后再對(duì)癥下藥。這是一項(xiàng)有跡可循的系統(tǒng)性工程。至于網(wǎng)絡(luò)上的大部分優(yōu)化寶典,更多的是作用于開發(fā)階段。在開發(fā)時(shí)就應(yīng)該養(yǎng)成良好的編碼習(xí)慣和意識(shí),最大限度的避免問題的發(fā)生。

本文轉(zhuǎn)載自微信公眾號(hào)「符合預(yù)期的CoyPan」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系符合預(yù)期的CoyPan公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 符合預(yù)期的CoyPan
相關(guān)推薦

2023-08-01 09:09:05

崔紅保跨平臺(tái)開發(fā)

2024-04-01 09:01:20

NextjsAntd5.0管理后臺(tái)系統(tǒng)

2025-06-24 09:44:41

2019-10-25 10:42:51

框架Web開發(fā)

2022-09-04 18:09:41

Flet前端開發(fā)

2022-05-20 11:09:15

Flybirds多端測(cè)試UI 自動(dòng)化測(cè)試

2009-06-12 19:18:08

REST客戶端框架JavaScript

2025-05-22 06:34:28

2023-09-04 08:32:43

web開發(fā)圖像

2023-01-04 12:17:07

開源攜程

2018-11-14 14:18:26

APP網(wǎng)絡(luò)分析

2022-10-30 13:21:58

谷歌Chrome瀏覽器

2023-02-16 08:00:00

數(shù)據(jù)流客戶端開發(fā)數(shù)據(jù)集

2024-01-22 16:24:10

框架小程序開發(fā)

2024-12-16 00:50:56

2020-07-13 10:26:41

CIOIT項(xiàng)目技術(shù)

2022-07-06 13:02:00

高延時(shí)電商直播主播互動(dòng)

2018-07-23 09:26:08

iOS內(nèi)存優(yōu)化

2013-06-26 14:55:59

AppCan

2013-07-17 13:51:48

AppCanPhoneGap
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产综合精品视频| 午夜精品久久久久久久久久 | 欧美a一区二区| 国产色产综合色产在线视频| 欧美国产日韩一区二区在线观看 | 老女人性淫交视频| 亚洲a∨精品一区二区三区导航| 国产成人午夜精品5599| www.色综合| 国产免费又粗又猛又爽| 久久久久久青草| 日韩在线观看中文字幕| 成人欧美一区二区三区白人| 国产精品手机播放| 亚洲av毛片基地| 欧美va在线观看| 久久久国产午夜精品| 欧洲成人在线观看| www.久久av| 超碰一区二区| 久久久国产精华| 99久热re在线精品视频| 免费一级片视频| av日韩在线播放| 亚洲国产精品尤物yw在线观看| av一区观看| 最近中文字幕在线免费观看 | 精品亚洲国产视频| 可以在线看的av网站| 日本激情一区二区三区| 国产亚洲欧洲| 亚洲三级 欧美三级| 91视频免费版污| 欧美18hd| 国产精品一区三区| 性欧美xxxx视频在线观看| 中国一级特黄录像播放| 2022成人影院| 偷拍一区二区三区四区| 日本日本精品二区免费| 亚洲天堂中文字幕在线| 欧美日韩99| 日韩精品在线观看一区二区| 亚洲妇女无套内射精| 国产资源在线观看入口av| 91看片淫黄大片一级| 国产精品扒开腿爽爽爽视频| 日韩av手机在线免费观看| 88久久精品| 欧洲精品一区二区| 欧美黄色免费网址| 黄色影院在线播放| 国产一区二区三区四区五区入口| 久久久久久久久国产| 国产熟妇久久777777| 97精品资源在线观看| 亚洲成人福利片| 免费视频爱爱太爽了| 精品视频二区| 国产欧美日韩在线视频| 豆国产97在线| 中文字幕精品在线观看| 亚洲调教视频在线观看| 最新的欧美黄色| 国产美女视频免费观看下载软件| 久久久久久一区二区三区四区别墅| 一区二区三区.www| 亚洲精品影院| 无码国产精品一区二区免费16 | 1区2区3区国产精品| 中文精品一区二区三区| 手机看片国产1024| 精品亚洲aⅴ乱码一区二区三区| 久久久久久久久国产精品| 国产在线观看99| 91精品国产成人观看| 日韩精品在线视频观看| 久久久久无码精品国产sm果冻| 无码国模国产在线观看| 亚洲成在人线av| 五月天婷婷亚洲| 黄色综合网址| 欧美三区在线观看| 无码无遮挡又大又爽又黄的视频| 男女羞羞视频在线观看| 亚洲色图一区二区三区| 午夜一区二区三区| 青梅竹马是消防员在线| jiyouzz国产精品久久| 成人免费在线网址| 中国一级特黄视频| 国产精品88888| 免费99视频| 天堂中文在线8| 成人免费视频视频| 99久热re在线精品996热视频| 日本国产在线| 亚洲女同一区二区| 少妇熟女一区二区| 免费黄网站在线播放| 亚洲国产一区视频| 妞干网视频在线观看| www视频在线看| 亚洲视频小说图片| 男人天堂999| 亚洲一区资源| 日韩欧美久久久| 国产精品偷伦视频免费观看了| 人人香蕉久久| 亚洲人成网在线播放| caoporn91| 欧美福利电影在线观看| 久久久成人精品视频| 中文字幕电影av| 美女精品网站| 国产精品久久久久久中文字| 国产午夜无码视频在线观看| 日本亚洲天堂网| 国产日韩欧美精品| 色视频在线观看福利| 亚洲欧美电影院| 青青草原国产在线视频| 国产精品日韩精品中文字幕| 正在播放欧美一区| 青青青手机在线视频| 伊人久久大香线蕉综合四虎小说 | 欧美日韩视频免费看| 亚洲免费av电影| 色欲狠狠躁天天躁无码中文字幕| 在线成人亚洲| 欧洲中文字幕国产精品| 亚洲欧美激情在线观看| 97超碰欧美中文字幕| 日韩亚洲不卡在线| 成人在线播放免费观看| 精品视频在线视频| 国产精品成人无码免费| 国产精品丝袜xxxxxxx| 国内精品**久久毛片app| 免费男女羞羞的视频网站在线观看 | 黄色录像特级片| 18av在线播放| 五月激情综合网| 好男人香蕉影院| 99热这里只有成人精品国产| 国产va免费精品高清在线观看| 中文字幕网址在线| 欧美经典三级视频一区二区三区| 欧美黄色一级片视频| 亚洲va久久| 欧美精品在线免费观看| 五月天综合激情网| 激情六月婷婷综合| 日本黄色播放器| 成人在线视频区| 亚洲欧美日韩国产精品| 久久久久久不卡| 国产毛片精品视频| 免费极品av一视觉盛宴| 国产精品99久久免费观看| 中文字幕视频一区二区在线有码 | 精品精品导航| 亚洲国产精品久久| 日本中文字幕久久| 中文字幕制服丝袜成人av| 国产精品国产对白熟妇| 精品三级在线观看视频| 日日摸夜夜添一区| 国产孕妇孕交大片孕| 成人动漫精品一区二区| 一区二区三区国产福利| 筱崎爱全乳无删减在线观看| 777精品伊人久久久久大香线蕉| 日韩免费高清一区二区| 亚洲欧美视频| 成人av中文| 国产在线精彩视频| 中文字幕无线精品亚洲乱码一区| 国产男男gay网站| 国产人久久人人人人爽| 少妇一级淫免费播放| 中文字幕伦av一区二区邻居| 国产精品稀缺呦系列在线| bt在线麻豆视频| 亚洲精品国产精品国自产在线| 91高清免费看| 99这里都是精品| 中文字幕国内自拍| 激情亚洲成人| 亚洲啪啪av| 大香伊人久久精品一区二区| 国产精品99久久久久久www| 18av在线视频| 在线看片第一页欧美| 免费在线不卡视频| 国产精品国产三级国产a| 亚洲天堂美女视频| 精品一区二区国语对白| www在线观看免费| 图片区亚洲欧美小说区| 国产精品直播网红| 97天天综合网| 亚洲福利在线观看| 91久久精品无码一区二区| 中文乱码免费一区二区| av五月天在线| 在线视频观看日韩| 九色一区二区| 高清不卡亚洲| 久久久久久久久久久免费| 91sp网站在线观看入口| 欧美性videosxxxxx| 无码人中文字幕| 精品一区二区三区在线播放视频 | 欧美日韩成人| 亚洲春色综合另类校园电影| 欧美尿孔扩张虐视频| 91免费观看| 免费在线观看的电影网站| 日韩中文av在线| 国产在线播放av| 日韩成人久久久| 自拍偷拍18p| 国产精品久久久久久户外露出| 久久一区二区电影| 丁香五精品蜜臀久久久久99网站| 国产欧美激情视频| 欧美三区在线| 成年人黄色在线观看| 成人系列视频| **亚洲第一综合导航网站| 深夜视频一区二区| 日本亚洲欧洲色α| 国内精品久久久久国产| 欧美成人激情免费网| 日韩毛片在线播放| 久久久国产精品不卡| 中文字幕一区二区久久人妻网站| 久久性色av| 综合操久久久| 欧美成人自拍| 国产欧美精品一区二区三区| 日韩免费高清视频网站| 91亚洲国产成人久久精品网站| av在线视屏| 九九热精品在线| 久蕉依人在线视频| 国产视频精品免费播放| 亚洲欧洲成人在线| 亚洲精选在线观看| 九色视频在线播放| 在线日韩中文字幕| 国产原创在线观看| 欧美丰满少妇xxxx| 蜜桃视频在线观看免费视频| 综合网日日天干夜夜久久| 国产黄色片在线观看| 日韩欧美国产精品| 欧美 日韩 国产 在线| 亚洲成人av中文字幕| 四虎在线免费看| 在线观看不卡av| 黄色成人影院| 久久人人爽人人| 成年人网站在线| 欧美国产日韩二区| 成人免费短视频| 国产精品视频色| 亚洲成人五区| 欧美日韩亚洲免费| 国产福利资源一区| 欧美一区二区福利| 日韩欧美视频在线播放| 久久伊人一区| 日本一二区不卡| 草草草视频在线观看| 国产日韩欧美一区二区三区在线观看| 黄色一级大片在线观看| 九九九久久久精品| 在线免费观看污视频| 国产精品美女久久久久高潮| 国产特级黄色录像| 亚洲欧洲三级电影| 日本三级片在线观看| 在线精品视频免费观看| av中文在线观看| 69p69国产精品| 人成网站在线观看| 中文字幕在线看视频国产欧美在线看完整 | 在线观看亚洲精品视频| 亚洲精品国产av| 欧美一二三四区在线| 真实新婚偷拍xxxxx| 日韩欧美黄色影院| 国产中文在线观看| 色综合老司机第九色激情| 偷拍视频一区二区三区| 欧美一区二区三区免费视| caoporn-草棚在线视频最| 国产精品国内视频| jizzjizzjizz欧美| 亚洲高清在线播放| 亚洲清纯自拍| 手机av在线网站| 国产精品性做久久久久久| 日本xxx在线播放| 一二三区精品视频| 亚洲一区二区人妻| 国产婷婷色综合av蜜臀av| 先锋成人av| 久久久综合免费视频| 免费成人黄色网| 欧美黑人3p| 亚洲国产精品第一区二区三区| 精品综合久久久久| 国产日韩成人精品| 国产一级一级国产| 日韩精品www| www.51av欧美视频| 9a蜜桃久久久久久免费| 999精品视频| 美女网站色免费| 国产视频一区在线播放| 91porny在线| 亚洲成人久久网| 秋霞在线视频| 91久久国产自产拍夜夜嗨| 999久久久免费精品国产| 亚洲激情在线观看视频| 国产亚洲1区2区3区| 欧美 日韩 精品| 日韩精品极品视频免费观看| 成全电影大全在线观看| 日本乱人伦a精品| 青青操综合网| 香港三级韩国三级日本三级| 日韩二区在线观看| 毛毛毛毛毛毛毛片123| 国产福利电影一区二区三区| 成人18视频免费69| 欧美人体做爰大胆视频| 亚洲毛片在线播放| 欧美大片va欧美在线播放| 欧美日韩黄色| 青娱乐国产91| 麻豆精品91| 欧美亚洲色综久久精品国产| 欧美伊人久久久久久久久影院| 国产大学生校花援交在线播放 | 日本一区二区三级电影在线观看 | 麻豆tv在线播放| 久久精品国产久精国产爱| 欧美激情一区二区三区p站| 国产欧美日韩综合精品一区二区| 久久久久久无码午夜精品直播| 亚洲视频在线视频| 韩国理伦片久久电影网| 日本三日本三级少妇三级66| 国产精品久久久久久模特| 51调教丨国产调教视频| 一本一道综合狠狠老| www天堂在线| 少妇av一区二区三区| 日韩美香港a一级毛片| 久久久人人爽| 三级欧美韩日大片在线看| 青青青视频在线播放| 欧美一级爆毛片| 乡村艳史在线观看| 亚洲一区二区在线观| 国产jizzjizz一区二区| 最新日韩免费视频| 日韩三级在线观看| 黄色在线免费观看网站| 日韩国产欧美精品| 国产最新精品免费| 日本系列第一页| 一本一道久久a久久精品逆3p| 四虎永久精品在线| 男人插女人视频在线观看| 久久九九久久九九| 国产又粗又猛又黄又爽无遮挡| 欧美国产在线电影| 欧美日韩伦理| 欧美亚洲日本在线观看| 成人av网址在线| 成年人视频免费| 久久在线免费观看视频| 欧洲午夜精品| 国产精品第157页| 国产欧美日韩麻豆91| 国产高清视频免费| 国产精品极品美女粉嫩高清在线| 亚洲乱码免费伦视频| 成年人网站免费在线观看| 日韩美女视频在线| 97精品国产综合久久久动漫日韩| 欧美一级爽aaaaa大片| 国产精品综合一区二区三区| 日本免费在线观看视频|