国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

性能優化例子:使用Performance工具分析性能瓶頸,解決頁面卡頓!

開發 開發工具
在優化之前,我們先要了解一些知識,比如瀏覽器的渲染幀、Performance 工具的使用,這樣才有助于更好地理解優化的過程!

對于前端的性能優化,優化手段其實是非常多的,但是不能盲目的進行優化,一定要先分析出項目的性能瓶頸,否則只會做無用功。那么如何才能更好的分析出項目的瓶頸呢?其實最關鍵的就是要分析頁面的整個加載過程,找出有問題的地方再進行優化。使用谷歌瀏覽器自帶的 Performance 工具可以幫我們解決這個問題,下面通過一個例子來進行分析優化!

在優化之前,我們先要了解一些知識,比如瀏覽器的渲染幀、Performance 工具的使用,這樣才有助于更好地理解優化的過程!

瀏覽器的渲染幀

對于渲染,我們首先需要了解一個概念:設備刷新率。設備刷新率是設備屏幕渲染的頻率,通俗一點就是,把屏幕當作墻,設備刷新率就是多久重新粉刷一次墻面?;疚覀兤匠=佑|的設備,如手機、電腦,它們的默認刷新頻率都是 60FPS,也就是屏幕在 1s 內渲染 60次,約 16.7ms 渲染一次屏幕。這就意味著,我們的瀏覽器最佳的渲染性能就是所有的操作在一幀 16.7ms 內完成,能否做到一幀內完成直接決定著渲染性,影響用戶交互。

瀏覽器的 fps 指瀏覽器每一秒的幀數,fps 越大,每秒的畫面就越多,瀏覽器的顯示就越流暢。

圖片圖片

標準渲染幀:在一個標準幀渲染時間 16.7ms之內,瀏覽器需要完成 Main 線程的操作,并 commit 給 Compositor 進程

圖片圖片

丟幀:主線程里操作太多,耗時長,commit 的時間被推遲,瀏覽器來不及將頁面 draw 到屏幕,這就丟失了一幀

圖片圖片

在瀏覽器的一個渲染幀(16.7ms)里,會存在一段時間,叫做空閑時間(idle period),如果完成各種任務的執行以及頁面渲染的工作等的時間少于 16.7 ms,那么這一幀就會存在空閑時間,可以把一些耗時操作拆分開來,然后在每一幀的空閑時間中去執行。

圖片圖片

所謂的頁面卡頓、首屏加載慢,根本原因都是執行長任務,使得頁面的渲染時機推后,在每一幀里得不到渲染,從而造成用戶的不好體驗。要想解決用戶體驗差的問題,那么就需要知道瀏覽器渲染過程中的每一幀都干了些啥任務,是啥原因導致渲染時機推后,這個時候我們就需要借助瀏覽器性能檢測工具 Performance 來進行分析,然后再做針對性的優化,下面我們來了解下該工具的具體使用。

Performance工具的使用

圖片圖片

簡單的使用教程:

在 Chrome 瀏覽器中,按下 F12 鍵或右鍵點擊頁面并選擇 "檢查",打開開發者工具面板。

在開發者工具中,切換到 "Performance"(性能)選項卡,你會看到一個記錄性能數據的界面。

圖片圖片

點擊頁面頂部的 "Record"(錄制)按鈕,開始記錄性能數據,刷新頁面或執行你想要分析的操作。

圖片圖片

在你完成操作后,點擊 "Stop"(停止)按鈕,停止記錄性能數據。此時,會看到一個包含了各種性能數據的時間軸圖表。

圖片圖片

時間軸圖表將顯示頁面加載期間的各種事件,如 JavaScript 執行、網絡請求、繪制等??梢钥s放和選擇特定時間段來深入分析。

圖片圖片


性能優化分析的例子

谷歌官方提供的一個 Demo:googlechrome.github.io/devtools-sa…[2]

左側有一些按鈕,點擊 Stop 小球停止運動,點擊 Add、Subtract 可以控制小球數量的增減,比較有意思的一個點是,當小球的數量越來越多,頁面會越來越卡頓,如果點擊 Optimize(優化),那么頁面就會恢復正常。

優化前的效果展示

當小球數量很多時,頁面會非??D:

圖片圖片


使用工具分析性能

接下來借助 Performance 來分析頁面卡頓的原因:

圖片圖片

錄制大概 4 秒鐘,可以看到該頁面的性能確實存在很大的問題,我們首先分析這張圖里面的一些內容:

總覽區: 可以看到每個階段的具體耗時,這里很明顯是渲染占據了 90% 的時間,而 JS 腳本的執行、頁面繪制并不耗時,現在已經可以定位到是渲染存在問題。

圖片圖片

幀: 綠色代表該幀正常,黃色表示丟幀

圖片圖片

主線程:

圖片圖片

以其中的一個 Task 為例:標紅代表該任務是長任務(一般認為超過 50ms 的任務是長任務),往下是該任務具體的細節,比如這個 Task 里主要執行了 Animation Frame Fired 方法,它里面調用了 Function Call,Function Call 里面調用了 app.update 的方法,一層一層往下調用執行,然后在 app.update 下面我們可以看到很多紫色的線條,紫色代表回流重繪。

圖片圖片

現在可以初步下結論:頻繁的回流重繪導致頁面卡頓,后面還要再進行分析才能確定。

接下來點擊其中的一個任務,觀察 Call Tree,每個方法的執行時間都能看到,以及時間的占比

圖片圖片

我們的分析目標主要是尋找花費時間長的任務,依次點開,可以發現 90% 的時間是花費在 Layout,點擊右側進入源碼:

圖片圖片

圖片圖片

分析這段代碼我們已經可以知道問題出在哪里了,讀取offsetTop會觸發回流重繪,這里用了個 for 循環,所以當小球的數量越來越多的時候,不斷的讀取 offsetTop 屬性,導致頻繁的觸發回流重繪,最終頁面卡頓。

頻繁的回流重繪導致卡頓

我們需要解答兩個問題:

  1. 為什么頻繁的回流重繪會導致卡頓?

計算復雜度: 回流涉及到重新計算元素的位置和幾何屬性,這可能需要遍歷整個DOM樹,并重新計算樣式。這個計算過程比較復雜,尤其是在大型、復雜的頁面上。

渲染的停頓: 當發生回流時,瀏覽器可能需要停止渲染,重新計算布局,然后再重新繪制,這可能導致頁面的停頓或閃爍。

頻繁觸發: 如果在用戶與頁面交互的過程中頻繁地觸發回流和重繪,可能會導致性能問題。比如,在滾動頁面時,如果頻繁改變元素的樣式,可能會引起多次回流和重繪,從而影響流暢度。

也就是說,頻繁的回流重繪可以看做是耗時嚴重的任務,阻礙了頁面的渲染,從而導致卡頓!

  1. 為什么讀取 offsetTop 屬性會觸發回流重繪?

這與瀏覽器的優化機制有關:由于每次回流與重繪都會帶來額外的計算消耗,為了優化這個過程,大多數瀏覽器采用了隊列化修改并批量執行的策略。瀏覽器會將修改操作添加到隊列中,直至一定時間段過去或操作達到閾值時,才會清空隊列。

然而,當需要獲取布局信息時,瀏覽器會強制刷新隊列。這意味著,當你讀取元素的布局信息如 offsetTop、offsetLeft 等時,需要返回最新的布局信息,因此瀏覽器不得不清空隊列,觸發回流和重繪操作以返回正確的值。

如何進行優化

那么如何進行優化呢?知道是 offsetTop 的問題后,不用這個屬性就行了,我們看下這個例子的處理方式:

圖片圖片

使用 style.top 屬性取代 offsetTop 即可,當然這兩個屬性也有一定的區別,這里不再展開,這樣就能完美的解決頁面卡頓的問題!

總的來說,其實優化方法很簡單,最關鍵的是要找出頁面的性能瓶頸,到底是哪里影響了性能。因此,前端開發者想要提升自己的能力、提升自己對性能優化的理解,就必須具備熟悉瀏覽器的渲染原理、使用 Performance 工具、分析項目的性能瓶頸等方面的能力!

責任編輯:武曉燕 來源: 量子前端
相關推薦

2021-05-11 10:03:06

性能優化工具Performance

2024-01-30 13:53:40

前端性能Chrome

2023-06-09 12:59:52

Python性能分析

2019-05-10 11:13:19

分析工具Java

2019-05-23 08:08:33

MySQL數據庫DBA

2025-07-30 09:43:28

2025-07-31 01:55:00

await性能流式格式

2021-06-07 14:57:46

開源開源工具Linux

2019-10-31 11:50:19

MySQL數據庫Windows

2020-09-09 10:00:41

JavaScript前端瓶頸

2017-02-15 09:40:38

JavaScript分析解決

2021-05-10 08:08:25

工具LightHouse性能優化

2016-08-12 10:23:28

javascriptChrome前端

2022-04-29 15:24:53

Redis存儲慢查詢

2021-05-12 06:02:56

性能優化工具WebPageTest

2009-09-08 09:45:23

App Engine性

2017-06-12 18:48:00

Android性能分析工具

2021-12-29 08:21:01

Performance優化案例工具

2024-11-25 07:00:00

2010-07-21 09:33:09

VMware View
點贊
收藏

51CTO技術棧公眾號

成人综合日日夜夜| a级精品国产片在线观看| 日韩精品中文字幕在线观看 | 综合一区中文字幕| 亚洲国产精品一区| 国产精品久久久久77777| aiss精品大尺度系列| 最近2019中文字幕在线高清| www成人免费观看| 日韩精品一区二区三区四区视频 | 亚洲国产精品99久久久久久久久| 久久久久久久久网| 久久影院亚洲| 日本一区二区三区视频免费看| 亚洲二区免费| 欧美另类一区| 另类小说综合欧美亚洲| 一区不卡字幕| 国产成人高清视频| 成人在线免费在线观看| 久久久久99精品国产片| 国产福利一区视频| 国产精品婷婷午夜在线观看| 2025韩国理伦片在线观看| 欧美国产国产综合| 啦啦啦在线视频免费观看高清中文 | 国产日产欧美一区二区视频| 男女高潮又爽又黄又无遮挡| www.亚洲精品| 嫩草av久久伊人妇女超级a| 久久久精品人体av艺术| 高清av免费看| 亚洲一区二区三区四区不卡| 日韩欧美在线观看一区二区| 色综合av在线| 91最新在线视频| 亚洲欧美日韩图片| 亚洲日本免费电影| 国产精品第8页| 亚洲精品男同| 国产精品无码免费专区午夜| 国产欧美久久久精品影院| 亚洲伦理电影| 精品少妇一区二区三区在线视频| 成人看片网页| 国产成人+综合亚洲+天堂| 欧美日韩1区2区3区| 亚洲人成网站在线观看播放| 国产偷v国产偷v亚洲高清| 五月激情在线| 亚洲国产欧美一区二区丝袜黑人| 成人性生活av| 国产极品精品在线观看| 亚洲免费婷婷| 欧美日韩在线成人| 一本大道久久精品懂色aⅴ| av在线视屏| 国内久久久精品| 日韩图片一区| 大香煮伊手机一区| 在线观看视频一区| 97成人超碰| 2019国产精品视频| 99久久夜色精品国产网站| 日本福利片在线| 久久精品青青大伊人av| 亚洲在线久久| 国产精品后入内射日本在线观看| 色av成人天堂桃色av| 欧洲午夜精品| 精品卡一卡二| 中文字幕色av一区二区三区| 日韩理伦片在线| 91精品国产九九九久久久亚洲| 久久亚洲影院| 在线观看成年人视频| 亚洲女同性videos| 欧美在线免费一级片| 六月丁香婷婷激情| 欧美福利一区二区| 伊人精品一区| 日韩精品视频在线观看视频| 91久久免费观看| 精品人人人人| 国产一区二区三区乱码| 精品视频在线免费看| 国产在线播放精品| 91九色国产ts另类人妖| 欧美性感一区二区三区| 国产黄色一区| 亚洲欧洲精品在线观看| 色综合视频在线观看| 国产美女视频一区二区| 亚洲视频在线观看日本a| 精品久久久久久久久久ntr影视| 国产成人免费9x9x人网站视频| 国产日韩久久| 亚洲精选在线视频| 久久精品国产福利| 天堂一区二区三区| 一本久久综合亚洲鲁鲁五月天| 丁香婷婷成人| 18视频在线观看娇喘| 在线电影欧美成精品| 久久久久免费av| 日韩欧美国产精品一区二区三区| 久久久成人的性感天堂| 国精产品一区一区三区mba视频 | jizz性欧美23| 日韩视频在线视频| 777久久久精品| 欧美视频亚洲视频| 十九岁完整版在线观看好看云免费| 91精品国产网站| 国产亚洲精品7777| 91视频亚洲| 久久久99精品视频| 日韩第一页在线| 久久xxxx| 黄色在线免费看| 久久资源av| 日韩欧美国产精品| 销魂美女一区二区三区视频在线| 国产小视频在线| 国产精品入口免费| 精品视频一区三区九区| 日韩欧美在线播放视频| 欧美午夜理伦三级在线观看| 亚洲精品成人| 欧美jizz18hd性欧美| 美国av一区二区三区| 欧美日本不卡视频| 日韩亚洲国产欧美| 在线中文字幕第一页| 日本成人看片网址| 亚洲国产又黄又爽女人高潮的| 秋霞午夜av一区二区三区| 超黄网站在线观看| 亚洲精品少妇一区二区| 亚洲新声在线观看| 91麻豆免费视频| 国产欧美啪啪| 日本1区2区| 成人一区二区三区四区| 91精品婷婷国产综合久久 | 成人性生交大片免费看网站| 午夜午夜精品一区二区三区文| 亚洲国产精品久久91精品| 黑人巨大精品欧美一区| 日本欧美韩国| 噼里啪啦国语在线观看免费版高清版| 欧美激情高清视频| 亚洲第一激情av| 99精品国产一区二区青青牛奶 | 欧美一级一区二区| 视频精品一区二区| 91精品视频一区二区| 国产一级电影网| 动漫美女被爆操久久久| 亚洲第一免费网站| 99久久精品免费精品国产| 好吊妞视频这里有精品| 日本大臀精品| 女人一区二区三区| 久久久精品在线观看| 一区二区成人在线| 亚洲主播在线| 国产精品va视频| 你懂的视频在线观看| 国产大尺度在线观看| 欧美一级淫片播放口| 91精品欧美一区二区三区综合在 | 婷婷综合国产| 在线国产网址| 亚洲日本japanese丝袜| 精品国产一区二区三区久久| 伊人一区二区三区| 日本不卡高清视频| 另类ts人妖一区二区三区| 99视频在线观看地址| 男人和女人啪啪网站| 国产精品亚洲美女av网站| 日韩精品一区二区三区老鸭窝| 99精品久久免费看蜜臀剧情介绍| 久久av免费看| 欧美家庭影院| 日本不卡一区在线| 欧洲精品一区色| 日本成人精品在线| 亚洲精品不卡在线| 亚洲国产精品久久人人爱| 久久精品国产久精国产| 精品久久电影| 国产理论在线| 桃花色综合影院| 精品这里只有精品| 国产精选一区二区| 欧美一级黄色网| 国产亚洲精品久久久久动| 狠狠干狠狠久久|