日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-02-02 16:55:26 329觀看
導讀對于前端的性能優化,優化手段其實是非常多的,但是不能盲目的進行優化,一定要先分析出項目的性能瓶頸,否則只會做無用功。那么如何才能更好的分析出項目的瓶頸呢?其實最關鍵的就是要分析頁面的整個加載過程,找出有問題的地方

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

在優化之前,我們先要了解一些知識,比如瀏覽器的渲染幀、Performance 工具的使用,這樣才有助于更好地理解優化的過程!Z6e28資訊網——每日最新資訊28at.com

瀏覽器的渲染幀

對于渲染,我們首先需要了解一個概念:設備刷新率。設備刷新率是設備屏幕渲染的頻率,通俗一點就是,把屏幕當作墻,設備刷新率就是多久重新粉刷一次墻面。基本我們平常接觸的設備,如手機、電腦,它們的默認刷新頻率都是 60FPS,也就是屏幕在 1s 內渲染 60次,約 16.7ms 渲染一次屏幕。這就意味著,我們的瀏覽器最佳的渲染性能就是所有的操作在一幀 16.7ms 內完成,能否做到一幀內完成直接決定著渲染性,影響用戶交互。Z6e28資訊網——每日最新資訊28at.com

瀏覽器的 fps 指瀏覽器每一秒的幀數,fps 越大,每秒的畫面就越多,瀏覽器的顯示就越流暢。Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

標準渲染幀:在一個標準幀渲染時間 16.7ms之內,瀏覽器需要完成 Main 線程的操作,并 commit 給 Compositor 進程Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

丟幀:主線程里操作太多,耗時長,commit 的時間被推遲,瀏覽器來不及將頁面 draw 到屏幕,這就丟失了一幀Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

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

圖片圖片Z6e28資訊網——每日最新資訊28at.com

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

Performance工具的使用

圖片圖片Z6e28資訊網——每日最新資訊28at.com

簡單的使用教程:Z6e28資訊網——每日最新資訊28at.com

在 Chrome 瀏覽器中,按下 F12 鍵或右鍵點擊頁面并選擇 "檢查",打開開發者工具面板。Z6e28資訊網——每日最新資訊28at.com

在開發者工具中,切換到 "Performance"(性能)選項卡,你會看到一個記錄性能數據的界面。Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

點擊頁面頂部的 "Record"(錄制)按鈕,開始記錄性能數據,刷新頁面或執行你想要分析的操作。Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

在你完成操作后,點擊 "Stop"(停止)按鈕,停止記錄性能數據。此時,會看到一個包含了各種性能數據的時間軸圖表。Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

時間軸圖表將顯示頁面加載期間的各種事件,如 JavaScript 執行、網絡請求、繪制等。可以縮放和選擇特定時間段來深入分析。Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com


Z6e28資訊網——每日最新資訊28at.com

性能優化分析的例子

谷歌官方提供的一個 Demo:googlechrome.github.io/devtools-sa…[2]Z6e28資訊網——每日最新資訊28at.com

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

優化前的效果展示

當小球數量很多時,頁面會非常卡頓:Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com


Z6e28資訊網——每日最新資訊28at.com

使用工具分析性能

接下來借助 Performance 來分析頁面卡頓的原因:Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

錄制大概 4 秒鐘,可以看到該頁面的性能確實存在很大的問題,我們首先分析這張圖里面的一些內容:Z6e28資訊網——每日最新資訊28at.com

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

圖片圖片Z6e28資訊網——每日最新資訊28at.com

幀: 綠色代表該幀正常,黃色表示丟幀Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

主線程:Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

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

圖片圖片Z6e28資訊網——每日最新資訊28at.com

現在可以初步下結論:頻繁的回流重繪導致頁面卡頓,后面還要再進行分析才能確定。Z6e28資訊網——每日最新資訊28at.com

接下來點擊其中的一個任務,觀察 Call Tree,每個方法的執行時間都能看到,以及時間的占比Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

我們的分析目標主要是尋找花費時間長的任務,依次點開,可以發現 90% 的時間是花費在 Layout,點擊右側進入源碼:Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

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

頻繁的回流重繪導致卡頓

我們需要解答兩個問題:Z6e28資訊網——每日最新資訊28at.com

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

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

渲染的停頓: 當發生回流時,瀏覽器可能需要停止渲染,重新計算布局,然后再重新繪制,這可能導致頁面的停頓或閃爍。Z6e28資訊網——每日最新資訊28at.com

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

也就是說,頻繁的回流重繪可以看做是耗時嚴重的任務,阻礙了頁面的渲染,從而導致卡頓!Z6e28資訊網——每日最新資訊28at.com

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

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

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

如何進行優化

那么如何進行優化呢?知道是 offsetTop 的問題后,不用這個屬性就行了,我們看下這個例子的處理方式:Z6e28資訊網——每日最新資訊28at.com

圖片圖片Z6e28資訊網——每日最新資訊28at.com

使用 style.top 屬性取代 offsetTop 即可,當然這兩個屬性也有一定的區別,這里不再展開,這樣就能完美的解決頁面卡頓的問題!Z6e28資訊網——每日最新資訊28at.com

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

本文鏈接:http://m.www897cc.com/showinfo-26-71931-0.html性能優化例子:使用Performance工具分析性能瓶頸,解決頁面卡頓!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 極米科技預計 2023 年凈利潤約 1.24 億元,同比下降 75.26%

下一篇: 瀏覽器也擁有了原生的 “時間切片” 能力!

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • 從 Pulsar Client 的原理到它的監控面板

    背景前段時間業務團隊偶爾會碰到一些 Pulsar 使用的問題,比如消息阻塞不消費了、生產者消息發送緩慢等各種問題。雖然我們有個監控頁面可以根據 topic 維度查看他的發送狀態,
  • 三言兩語說透設計模式的藝術-單例模式

    寫在前面單例模式是一種常用的軟件設計模式,它所創建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統中的其他對象共享,從而減少
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • iQOO Neo8系列今日官宣:首發天璣9200+ 全球安卓最強芯!

    在昨日舉行的的聯發科新一代旗艦芯片天璣9200+的發布會上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發搭載這款當前性能最強大的移動平臺
  • 英特爾Xe-HP項目終止,將專注Xe-HPC/HPG系列顯卡

    據10 月 31 日消息報道,英特爾高級副總裁兼加速計算系統和圖形事業部總經理 表示,Xe-HP“ Arctic Sound” 系列服務器 GPU 已經應用于 oneAPI devcloud 云服
  • 微軟發布Windows 11新版 引入全新任務欄狀態

    近日,微軟發布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統更流暢了。更新中,Windows 11加入了專門針對平板優化的任務欄
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲第一视频| 夜夜狂射影院欧美极品| 国产精品视频免费| 国产精品视频免费一区| 国产精品爽黄69| 国产伦精品一区二区三区四区免费 | 亚洲深夜激情| 99在线精品观看| 亚洲在线免费观看| 久久精品一区二区三区不卡牛牛 | 欧美激情无毛| 国产精品色午夜在线观看| 激情91久久| 99日韩精品| 欧美在线观看网址综合| 蜜臀91精品一区二区三区| 欧美日韩黄色一区二区| 国产欧美一区二区视频| 最新热久久免费视频| 亚洲专区在线视频| 久久综合伊人77777麻豆| 欧美日韩国产综合视频在线观看中文| 国产欧美激情| 亚洲福利在线视频| 亚洲一区二区在线播放| 免费不卡中文字幕视频| 国产精品国产三级国产普通话蜜臀 | 欧美在线首页| 欧美国产综合一区二区| 国产精品免费aⅴ片在线观看| 伊人激情综合| 亚洲性感美女99在线| 玖玖玖国产精品| 国产精品福利片| 亚洲国产高清一区二区三区| 亚洲欧美电影院| 老牛影视一区二区三区| 国产精品日韩在线观看| 亚洲国产影院| 欧美资源在线| 欧美系列电影免费观看| 亚洲国产清纯| 久久精品99| 国产精品久久91| 亚洲精品欧美日韩| 久久欧美肥婆一二区| 国产精品久久久久久久久久免费 | 欧美日韩国产综合新一区| 激情伊人五月天久久综合| 亚洲欧美日本在线| 欧美精彩视频一区二区三区| 国产一二三精品| 亚洲自拍偷拍福利| 欧美日韩高清在线| 亚洲国产另类 国产精品国产免费| 午夜视频一区二区| 欧美三级网址| 亚洲人午夜精品| 久久阴道视频| 国内精品国语自产拍在线观看| 亚洲免费影视| 欧美三级电影一区| 亚洲精品字幕| 欧美高清视频一区二区三区在线观看| 国产综合久久久久久| 亚洲欧美国产日韩天堂区| 欧美激情精品久久久久久黑人| 狠狠入ady亚洲精品| 欧美在线观看天堂一区二区三区 | 欧美福利视频在线观看| 国产又爽又黄的激情精品视频| 亚洲欧美日韩国产综合| 欧美日韩免费一区二区三区视频 | 欧美成人黑人xx视频免费观看| 黑丝一区二区三区| 欧美在线观看网址综合| 国产区精品在线观看| 亚洲欧美久久久| 国产精品免费福利| 亚洲欧美日本视频在线观看| 国产精品免费久久久久久| 亚洲一区二区三区久久| 国产精品福利影院| 亚洲性感美女99在线| 国产精品久久久久9999高清| 亚洲一区二区精品视频| 国产精品第2页| 亚洲图片在线| 国产精品日本精品| 西瓜成人精品人成网站| 国产日韩一区欧美| 久久精品一二三| 今天的高清视频免费播放成人| 久久久久久亚洲综合影院红桃| 一区二区三区在线免费观看| 老色鬼久久亚洲一区二区| 在线观看91久久久久久| 蜜臀久久久99精品久久久久久 | 夜夜嗨av一区二区三区网站四季av | 久久成人av少妇免费| 国产自产2019最新不卡| 久久久久久国产精品mv| 在线精品视频一区二区三四| 美女久久网站| 亚洲乱码精品一二三四区日韩在线| 欧美人在线视频| 亚洲一区二区三区国产| 国产精品亚洲激情| 久久国内精品自在自线400部| 韩国亚洲精品| 你懂的视频欧美| 日韩视频在线观看| 国产精品乱码| 久久er99精品| 亚洲国产经典视频| 欧美日韩综合网| 欧美与黑人午夜性猛交久久久| 黄色成人在线| 欧美另类女人| 午夜宅男欧美| 亚洲丰满在线| 欧美先锋影音| 久久精品中文字幕一区二区三区| 亚洲电影中文字幕| 欧美吻胸吃奶大尺度电影| 久久国产视频网| 亚洲精品久久| 国产精品色婷婷久久58| 久久频这里精品99香蕉| 日韩午夜av电影| 国产伦精品一区二区三区免费| 巨胸喷奶水www久久久免费动漫| 夜夜嗨av一区二区三区网站四季av| 国产日韩欧美三区| 欧美电影免费观看高清完整版| 亚洲无限av看| 亚洲第一福利视频| 国产精品久久久久久久久久久久 | 在线观看一区| 欧美日韩三级在线| 欧美伊人久久大香线蕉综合69| 亚洲国产高清一区二区三区| 国产精品国产一区二区| 久久另类ts人妖一区二区| 制服诱惑一区二区| 影音先锋成人资源站| 国产精品国产三级国产专播精品人| 久久亚洲视频| 亚洲视频日本| 亚洲欧洲精品一区二区三区 | 噜噜噜躁狠狠躁狠狠精品视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产日韩成人精品| 欧美激情bt| 久久精品国产99精品国产亚洲性色| 亚洲精品国产精品国自产在线| 国产欧美日韩高清| 欧美三区不卡| 欧美88av| 久久riav二区三区| 亚洲一区二区三区中文字幕| 91久久久精品| 狠狠色狠狠色综合日日五| 国产精品成人在线观看| 欧美第十八页| 久久精品视频网| 亚洲免费中文| 亚洲毛片在线观看.| 精品动漫3d一区二区三区免费版| 国产精品久久久久秋霞鲁丝 | 亚洲一卡久久| 亚洲黄网站在线观看| 国产一区二区三区四区| 国产精品久久久久久久久果冻传媒| 欧美激情免费在线| 久久视频精品在线| 午夜久久福利| 亚洲线精品一区二区三区八戒| 91久久极品少妇xxxxⅹ软件| 国产一区视频网站| 国产农村妇女精品| 欧美性大战久久久久久久| 欧美精品一卡| 看片网站欧美日韩| 久久精品国产一区二区电影| 亚洲欧美日韩一区二区三区在线观看 | 黄色小说综合网站| 国产欧美日韩视频| 欧美三级乱人伦电影| 欧美精选一区| 蜜桃伊人久久| 六十路精品视频| 久久久久久香蕉网| 久久精品视频一| 欧美在线观看www| 欧美在线视频一区二区| 亚洲在线免费| 亚洲在线黄色| 亚洲在线国产日韩欧美| 亚洲视频精品在线| 亚洲视频一区在线观看| 国产精品99久久99久久久二8| 一区二区av在线| av成人天堂|