亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

讓 Chrome 崩潰的一行 CSS 代碼

2024-07-11 08:59:30
字體:
來源:轉載
供稿:網友

一般的 CSS 代碼只會出現 UI 版式或者兼容性方面的小問題。但這里我們要分享一行有趣的 CSS,它可以直接讓你的 Chrome 頁面掛掉 :)

復現

  1. 在 Chrome 里打開一個稍復雜的頁面,比如知乎或者 掘金
  2. 打開開發者工具,為頁面 <body> 增加樣式 style: "width:1px; height:1px; transform:scale(10000)"
  3. 欣賞任務管理器里 Chrome 崩潰前的內存占用

其實這臺機器只有 8GB 內存,不過這不重要了。和讓 JS 崩潰的紅線容量 4GB 比起來,果然還是 CSS 更強大呢 :)

故事

這行代碼的發現,源自于我們的編輯器項目在實現畫布尺寸調節時的一個詭異現象:用戶調節畫布尺寸時, 只要新舊尺寸之比超過一定幅度,Chrome 就會卡死 。

雖然這個問題很難由普通用戶的操作路徑觸發,不過它所導致的后果確實比較嚴重。排查時我們首先考慮了 JS 阻塞和 DOM 重繪過頻等方面的可能性,但它們都不是問題所在。一個突破點在于調試器 Rendering 工具中 FPS Meter 的輸出:


 

這里 GPU Memory 被占滿了。雖然這個提示信息現在看來很明顯是與硬件加速有關的,但在沒有相關經歷的情況下我們還是沒有確定它與具體代碼之間的關聯。直到我們偶然查看 Chrome 設計文檔中關于 Compositing 的介紹時,發現了一個行為:Blink 會將 DOM 節點映射到 LayoutObject 的渲染樹,這棵樹中的節點理論上每個都能具備到渲染后端的上下文,但為了節約資源 Chrome 會將它們做一些合并后再渲染。而這時存在 CSS 定位(如絕對定位與 transform)的元素是不能合并的,這會造成對顯存的額外開銷。

基于這個信息的提示,我們使用 Layout 工具來調試當時的頁面,果然找到了一個特殊的地方:


 

圖中最大的矩形 Layer 通過一般的 DOM 調試是無法看見的,因此我們推測它的過大尺寸所導致的 RAM 開銷是罪魁禍首。基于這個信息,我們最后找到了一個寬高都很合理但 transform 的 scale 值可能在邏輯中被修改得很大的 DOM 節點,限制它的 scale 上限即可解決問題:我們不難發現 scale 的值和最終對應像素數量之間有著 O(N^2) 的關系,1 個像素只放大 100 倍也有 10000 個像素了。因此 scale 很大時對內存 / 顯存的過度使用也就是有可能的了(當然瀏覽器會做 Tiling 等工作,因此這不符合一般情況下的實際情形,Safari / Firefox 這時候也沒有出現問題)。最后給 Chrome 提了個 bug 見 #894115

總結

需要注意的是,因為缺乏對瀏覽器內核的深度了解,上面的調試思路很可能是不準確的。簡單的總結:

  • 硬件加速是有代價的,最好能知道代價在哪
  • 瀏覽器的文檔里藏著很多有意思的東西
  • 調試工具的一些冷門功能其實很強大,平時可以多試試

以上所述是小編給大家介紹的讓 Chrome 崩潰的一行 CSS 代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品一区二区三区电影黑人| 久久精品国产成人| 亚洲国产一区二区三区四区| 欧洲午夜精品久久久| 亚洲第一级黄色片| 91麻豆桃色免费看| 国产啪精品视频| 精品国偷自产在线| 国产亚洲视频在线| 国产精品国产三级国产专播精品人| 久久久999精品视频| 日本亚洲精品在线观看| 亚洲精品福利在线观看| 欧美激情在线有限公司| 精品久久久久久中文字幕一区奶水| 国产97色在线| 国产一区二区三区在线播放免费观看| 91国在线精品国内播放| 色妞久久福利网| 中文字幕国产精品| 国产极品jizzhd欧美| 国产999精品久久久影片官网| 久久精品视频网站| 欧美有码在线观看视频| 96精品视频在线| 国产精品96久久久久久又黄又硬| 亚洲综合日韩中文字幕v在线| 欧美午夜片在线免费观看| 日韩欧美a级成人黄色| 91在线高清免费观看| xxxx欧美18另类的高清| 亚洲人成五月天| 国产欧美va欧美va香蕉在线| 26uuu日韩精品一区二区| 国产精品一区二区三区在线播放| 亚洲精选中文字幕| 亚洲精品欧美日韩专区| 国产欧美日韩免费看aⅴ视频| 国产日韩中文字幕在线| 日韩在线精品一区| 亚洲a在线观看| 日本高清视频精品| 亚洲日韩欧美视频| 精品一区二区三区四区在线| 亚洲激情免费观看| 日韩一区二区av| 久久视频免费观看| 亚洲第一网站男人都懂| 欧美极品少妇xxxxⅹ免费视频| 精品色蜜蜜精品视频在线观看| 国产精品高清网站| 亚洲女同性videos| 富二代精品短视频| 亚洲精品成人免费| 中文字幕久精品免费视频| 国产精品综合久久久| 国产成人免费91av在线| 亚洲精品wwww| 欧美猛交免费看| 亚洲免费精彩视频| 欧美一乱一性一交一视频| 精品小视频在线| 国产精品日韩欧美综合| 欧美激情欧美狂野欧美精品| 久久中文字幕一区| 国产一区二区三区毛片| 欧美巨猛xxxx猛交黑人97人| 亚洲成人网av| 色偷偷88888欧美精品久久久| 亚洲国产小视频| 色综久久综合桃花网| 国产主播欧美精品| 欧美高清不卡在线| 九九热99久久久国产盗摄| 亚洲精品电影网在线观看| 久久久久国产视频| 自拍亚洲一区欧美另类| 最近2019中文字幕在线高清| 日本乱人伦a精品| 最近2019中文免费高清视频观看www99| 亚洲大胆人体视频| 久久久亚洲福利精品午夜| 国产精品日日摸夜夜添夜夜av| 91国偷自产一区二区三区的观看方式| 国产精品久久99久久| 欧美乱人伦中文字幕在线| 欧美性精品220| 欧美日韩加勒比精品一区| 精品亚洲一区二区三区在线播放| 久久久久久久色| 国产精品爽爽爽爽爽爽在线观看| 91沈先生作品| 日本亚洲欧洲色α| 国产精品久久久久久久久男| 成人国产精品久久久久久亚洲| 777777777亚洲妇女| 亚洲欧洲自拍偷拍| 欧美日韩国产成人高清视频| 国内精品免费午夜毛片| 久久久久久久久中文字幕| 久青草国产97香蕉在线视频| 国产精品女视频| 性亚洲最疯狂xxxx高清| 成人免费淫片aa视频免费| 日韩av电影手机在线观看| 国产精品27p| 久久久亚洲网站| 成人午夜在线视频一区| 国产精品一区二区三区免费视频| 亚洲美女av在线播放| 精品国内自产拍在线观看| 欧美在线www| 日韩成人激情视频| 亚洲精品视频二区| 欧美激情喷水视频| 久久噜噜噜精品国产亚洲综合| 成人福利视频在线观看| 欧美日韩国产限制| 国产在线拍揄自揄视频不卡99| 色婷婷**av毛片一区| 亚洲天堂男人天堂女人天堂| 国产成人精品在线观看| 国产99在线|中文| 精品国产欧美一区二区五十路| 久久精品国产亚洲| 亚洲第一二三四五区| 不卡av在线播放| 日韩av片免费在线观看| 欧美做受高潮1| 亚洲男人天堂网| 国产亚洲欧美日韩一区二区| 日韩在线免费视频| 91中文字幕在线观看| 国产97在线视频| 久久精品夜夜夜夜夜久久| 久久精品99国产精品酒店日本| 日韩在线视频播放| 欧美精品www| 日韩欧美在线观看视频| 欧美激情精品在线| 欧美大肥婆大肥bbbbb| 九色精品美女在线| 爽爽爽爽爽爽爽成人免费观看| 精品亚洲永久免费精品| 亚洲国产精品热久久| 一区二区三区天堂av| 日韩成人av一区| 欧美激情喷水视频| 国产精品久久久久久超碰| 国产自产女人91一区在线观看| 亚洲自拍偷拍区| 96精品久久久久中文字幕| 亚洲国产精久久久久久| 国产精品久久色| 欧美激情亚洲激情| 久久久99久久精品女同性| 欧美激情视频在线免费观看 欧美视频免费一| 久久影院模特热| 亚洲在线免费视频| 在线观看日韩专区| 91影院在线免费观看视频| 欧美丰满老妇厨房牲生活| 国产精品aaa| 97精品欧美一区二区三区|