性能分析(三)步步為營:使用數(shù)據(jù)不是堆圖就完事了

前面我們講了如何用rollup打包代碼蟋恬,如何拿到數(shù)據(jù),那么本期趁冈,我們就要講數(shù)據(jù)的用處

前情回顧:

制定標(biāo)準(zhǔn)

回歸我們的主題歼争,性能分析拜马,既是分析,那么就要有拆分的標(biāo)準(zhǔn)沐绒,分析不是主觀上的我認(rèn)為俩莽、我覺得,更不是我要我覺得乔遮。

我要我覺得

既然制定標(biāo)準(zhǔn)扮超,我們就不是拍腦門去想。要科學(xué)的制定蹋肮,就必須有理論依據(jù)出刷,所以我查了很多官方資料。

名詞解釋

如果這里不知道這些名詞從哪里來的坯辩,我這里給個(gè)傳送門 性能分析(二)好戲開始:數(shù)據(jù)從何而來

domInteractive

domInteractive 是用戶代理將當(dāng)前文檔準(zhǔn)備就緒設(shè)置為interactive之前的時(shí)間馁龟,具體則表現(xiàn)為:

  • 瀏覽器已完成對(duì)所有 HTML 的解析,并且 DOM 構(gòu)建已完成
  • 瀏覽器處理頁面子資源開始

我們通常會(huì)將此刻稱之為 頁面可交互時(shí)間

domContentLoaded

domContentLoaded 是兩個(gè) DOM 都準(zhǔn)備就緒并且沒有樣式表阻止 JavaScript 執(zhí)行的關(guān)鍵點(diǎn)

  • 此事件通常在 DOM 和 CSSOM 都準(zhǔn)備就緒時(shí)進(jìn)行標(biāo)記
  • 意味著現(xiàn)在可以構(gòu)建渲染樹
  • 如果沒有阻止 JavaScript 的解析器濒翻,則 DOMContentLoaded 將在 domInteractive 之后立即觸發(fā)

我們通常將此刻稱之為 DOM 準(zhǔn)備就緒時(shí)間屁柏,通常domContentLoaded會(huì)在domInteractive后立即執(zhí)行

domComplete

domComplete 是用戶代理將當(dāng)前文檔準(zhǔn)備就緒設(shè)置為“完成”之前的時(shí)間

  • 它僅表示頁面及其所有子資源已準(zhǔn)備就緒
  • 所有處理均已完成,頁面上的所有資源(圖像等)均已完成下載有送,chrome 上面那個(gè)轉(zhuǎn)圈圈也會(huì)停止

我們通常將此刻稱之為 DOM 完全就緒時(shí)間

新名詞制定

白屏?xí)r間

這里對(duì)https://juejin.im/timeline/following掘金的關(guān)注頁面截圖分析

FAST 3G 狀態(tài) FAST 3G 狀態(tài) FAST 3G 狀態(tài)

掘金的關(guān)注頁面截圖分析

也就是大概再 4000ms 之前頁面所處于的狀態(tài)淌喻,那么如何得到這個(gè) 4000ms 呢?

很多爭議點(diǎn)都在此雀摘,很多人會(huì)有不同的定義方式裸删。這里給大家提供三個(gè)方案:

  1. 截止到domInteractive
  2. 截止到domContentLoadedEventEnd
  3. 截止到performance.getEntries(){ name: 'first-contentful-paint' }的時(shí)間

先說第三種,第三種是performanceAPI提供給我們的阵赠,也就是chrome認(rèn)為此刻處于有效內(nèi)容渲染時(shí)間涯塔,有效內(nèi)容渲染則表示為頁面的一部分渲染上去的時(shí)間。

第一種和第二種相差無幾清蚀,我個(gè)人比較推薦使用domInteractive這個(gè)來當(dāng)作白屏?xí)r間匕荸,首先通過domInteractive的含義:

瀏覽器已完成對(duì)所有 HTML 的解析,并且 DOM 構(gòu)建已完成

那么在此刻枷邪,document 已經(jīng)結(jié)束榛搔,解下來是資源的問題,如果我們頁面不包含任何外部資源东揣,那么此刻頁面即將立刻開始渲染践惑,所以這個(gè)時(shí)間點(diǎn),恰好是進(jìn)行白屏卡邊的時(shí)間點(diǎn)嘶卧。

當(dāng)然你也可以認(rèn)為first-contentful-paint是白屏的結(jié)束尔觉,因?yàn)檫@是 chrome 提出的時(shí)間點(diǎn)。但是請(qǐng)明確芥吟,chrome 并不認(rèn)為此刻是白屏?xí)r間的結(jié)束侦铜,first-paint也同樣提供出來专甩,但是我們可以從圖上看出,完全不對(duì)钉稍。

DOM 完全就緒時(shí)間

這個(gè)就是domComplete就可以了配深,不過多贅述。

秒開率

既然我們制定了 白屏?xí)r間嫁盲,那么我們可以根據(jù) 白屏?xí)r間 制定第一個(gè)標(biāo)準(zhǔn) —— 秒開率

白屏?xí)r間在 1s 內(nèi) —— 秒開率

這個(gè)數(shù)據(jù)有什么意義?這個(gè)叫做指標(biāo)烈掠,通常情況下羞秤,我們會(huì)把績效盡可能的用客觀的角度去形容/描述。

“你去做一個(gè)調(diào)查左敌,問問大家對(duì) markdown 作為文檔編輯器怎么看瘾蛋?”

這是一個(gè)非常主觀的問題,在這種情況下矫限,大家會(huì)怎么做哺哼?首先,我們要制定一些標(biāo)準(zhǔn):

  • 你認(rèn)為 markdown 在編輯文檔的時(shí)候叼风,是否比使用 word 在便捷性上更好取董?
    • 非常/偶爾/遜色/抵制
  • 你認(rèn)為 markdown 在編輯文檔的時(shí)候,支持你需要的所有格式无宿?
    • 非常/偶爾/遜色/抵制
  • ...

我們通過對(duì)主觀問題茵汰,盡可能的通過客觀的描述,而客觀的描述孽鸡,最好是基于數(shù)字

跑題了一下蹂午,回歸我們的主題,所以我們需要盡量去制定客觀標(biāo)準(zhǔn)彬碱,而秒開率就是其中之一豆胸。

95 值(或者 N 值,N ∈ [0, 100])

95 值是指所有數(shù)據(jù)的第 95%的位置的數(shù)據(jù)巷疼,通常我們把這個(gè)數(shù)據(jù)作為一個(gè)基線晚胡,例如 95%的白屏?xí)r間為 100ms,嘖說明全體用戶的 95%都已經(jīng)可以在 100ms 內(nèi)完成頁面白屏皮迟,這個(gè)數(shù)字是具體真實(shí)意義的搬泥。我們不可照顧到全體用戶,網(wǎng)絡(luò)環(huán)境/特殊情況導(dǎo)致你的數(shù)據(jù)會(huì)存在垃圾數(shù)據(jù)伏尼,那么我們的覆蓋面究竟要多少忿檩?

初期,我們可以降低標(biāo)準(zhǔn)爆阶,例如燥透,我們可以以 80 值開始沙咏,逐步開始增加到 85,80班套,95肢藐,甚至是 99,如果達(dá)到了 99 值吱韭,你的頁面已經(jīng)無敵了吆豹!

無敵了

繪制圖

目前我們得到了幾個(gè)標(biāo)準(zhǔn),更多的標(biāo)準(zhǔn)理盆,期待大家在留言中回復(fù)我痘煤。

白屏?xí)r間 | DOM 完全就緒時(shí)間

我們可以通過上報(bào)的數(shù)據(jù),每天降維存儲(chǔ)猿规,最后以 95 值的形式體現(xiàn)衷快。

秒開率

我們可以通過追蹤每天數(shù)據(jù),形成曲線姨俩,曲線更具表現(xiàn)變化蘸拔。

本期總結(jié)

本期我們講述了一些名詞的含義以及一些標(biāo)準(zhǔn)是如何制定的,相比到這里环葵,大家也對(duì)性能分析有一定了解了调窍。

下期預(yù)告

下期(或者后面幾期)我將會(huì)細(xì)致講述:

  1. 通過哪些方面的優(yōu)化可以提升上述指標(biāo)
  2. 業(yè)務(wù)環(huán)境下,如何跟蹤優(yōu)化業(yè)務(wù)過程
  3. 【暫時(shí)保密】

我是 ihap 技術(shù)黑洞的 ihap 肥少积担,歡迎點(diǎn)贊打賞陨晶,也請(qǐng)大家關(guān)注我們的公眾號(hào),ihap 技術(shù)黑洞帝璧。

參考文獻(xiàn)

https://varvy.com/performance

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末先誉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子的烁,更是在濱河造成了極大的恐慌褐耳,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渴庆,死亡現(xiàn)場(chǎng)離奇詭異铃芦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)襟雷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門刃滓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耸弄,你說我怎么就攤上這事咧虎。” “怎么了计呈?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵砰诵,是天一觀的道長征唬。 經(jīng)常有香客問我,道長茁彭,這世上最難降的妖魔是什么总寒? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮理肺,結(jié)果婚禮上摄闸,老公的妹妹穿的比我還像新娘。我一直安慰自己妹萨,他們只是感情好贪薪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著眠副,像睡著了一般。 火紅的嫁衣襯著肌膚如雪竣稽。 梳的紋絲不亂的頭發(fā)上囱怕,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音毫别,去河邊找鬼娃弓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岛宦,可吹牛的內(nèi)容都是我干的台丛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼砾肺,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼挽霉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起变汪,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤侠坎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后裙盾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體实胸,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年番官,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庐完。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徘熔,死狀恐怖门躯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情近顷,我是刑警寧澤生音,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布宁否,位于F島的核電站,受9級(jí)特大地震影響缀遍,放射性物質(zhì)發(fā)生泄漏慕匠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一域醇、第九天 我趴在偏房一處隱蔽的房頂上張望台谊。 院中可真熱鬧,春花似錦譬挚、人聲如沸锅铅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盐须。三九已至,卻和暖如春漆腌,著一層夾襖步出監(jiān)牢的瞬間贼邓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工闷尿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塑径,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓填具,卻偏偏與公主長得像统舀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劳景,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容