亚洲av中文无码乱人伦在线r▽,豆国产95在线 | 亚洲,亚洲18色成人网站www,韩国免费A级毛片久久

您現(xiàn)在的位置:海峽網(wǎng)>新聞中心>IT科技>科技數(shù)碼
分享

眾所周知,網(wǎng)頁不僅應(yīng)該被快速加載,同時還應(yīng)該流暢運行,比如快速響應(yīng)的交互,如絲般順滑的動畫……

一。 GPU 加速能做什么?

首先我們要了解什么是 16ms 優(yōu)化

大多數(shù)設(shè)備的刷新頻率是 60 次/秒,(1000/60 = 16.6ms)也就說是瀏覽器對每一幀畫面的渲染工作要在 16ms 內(nèi)完成,超出這個時間,頁面的渲染就會出現(xiàn)卡頓現(xiàn)象,影響用戶體驗。

瀏覽器在一幀里面,會依次執(zhí)行以下這些動作。減少或者避免 layout,paint 可以讓頁面不卡頓,動畫效果更加流暢。

1。 JavaScript:JavaScript 實現(xiàn)動畫效果,DOM 元素操作等。

2。 Style(計算樣式):確定每個 DOM 元素應(yīng)該應(yīng)用什么 CSS 規(guī)則。

3。 Layout(布局):計算每個 DOM 元素在最終屏幕上顯示的大小和位置。由于 web 頁面的元素布局是相對的,所以其中任意一個元素的位置發(fā)生變化,都會聯(lián)動的引起其他元素發(fā)生變化,這個過程叫 reflow。

4。 Paint(繪制):在多個層上繪制 DOM 元素的的文字、顏色、圖像、邊框和陰影等。

5。 Composite(渲染層合并):按照合理的順序合并圖層然后顯示到屏幕上。

利用 GPU 加速優(yōu)先使用渲染層合并屬性,避免 layout,paint。

從上圖可以看出,可以通過改變元素的 transform 實現(xiàn)移動,伸縮變換而非改變物體的 left,top,width,height 避免 layout,paint。讓動畫效果更加流暢。

優(yōu)化

二。 GPU 是什么,如何用 Chrome devtools 進行分析 debug?

瀏覽器渲染一個頁面大致是按照下面這個步驟執(zhí)行。

1。 獲取 DOM 并將其分割為多個層(RenderLayer)

2。 將每個層柵格化,并獨立的繪制進位圖中

3。 將這些位圖作為紋理上傳至 GPU

4。 復(fù)合多個層來生成最終的屏幕圖像(終極 layer )。

Chrome 開啟查看 renderlayer

按上面的步驟之后,即可看到

1。 黃色邊框:有動畫 3d 變換的元素,表示放到了一個新的復(fù)合層(composited layer)中渲染

2。 藍色的柵格:這些分塊可以看作是比層更低一級的單位,這些區(qū)域就是 RenderLayer

打開一個頁面,如果該頁面的黃色邊框很多,那么肯定要查看一下原因了

Chrome 查看 layer

打開 timeline 進行錄制,選中 timeline 的某一幀,然后選擇下面的 layer ,可以左右拖動該模塊出現(xiàn) 3d。

我們可以看到一個頁面實際是像下面一樣組成的

從上圖不難理解,雖然我們最終在瀏覽器上看到的只是一個復(fù)印版,即最終只有一個層。類似于PhotoShop軟件中的“圖層”概念,最后合并所有可視圖層,輸出一張圖片到屏幕上。但實際上一些dom會因為一些規(guī)則被提升成獨立的層(開啟 GPU 加速),一旦被獨立出來之后,便不會再影響其他dom的布局,因為它改變之后,只是“貼上”了頁面。

根據(jù)這個優(yōu)點,我們可以把頁面中一些布局經(jīng)常變換的dom(動畫)提升到獨立的層。那么,瀏覽器在之后的 16ms 中,只需進行下面的幾個步驟。

三。 如何開啟 GPU 加速?

目前下面這些因素都會引起Chrome創(chuàng)建合成層:

1。 3D 或透視變換(perspective,transform) CSS 屬性

2。 使用加速視頻解碼的video元素

3。 擁有 3D (WebGL) 上下文或加速的 2D 上下文的 canvas 元素

4。 混合插件(如 Flash)

5。 對自己的 opacity 做 CSS 動畫或使用一個動畫 webkit 變換的元素

6。 擁有加速 CSS 過濾器的元素

7。 元素A有一個 z-index 比自己小的元素B,且元素B是一個合成層(換句話說就是該元素在復(fù)合層上面渲染),則元素A會提升為合成層。

上面7點都非常容易理解,在日常開發(fā)中,最容易出現(xiàn)問題的是第7點

四。 GPU 加速隱藏的坑–隱式合成

元素A有一個 z-index 比自己小的元素B,且元素B是一個合成層(換句話說就是該元素在復(fù)合層上面渲染)

拿實際項目舉個栗子,我們按照上面的步驟開啟 layer borders

尚未給上圖右手添加高層級的 z-index 時,整個頁面在移動端打開后閃退。而添加了 z-index 之后,頁面正常顯示,不閃退了。

仔細看上面的 gif ,僅僅改變了 z-index ,就會改變大批數(shù)量的層(黃色邊框)

為什么 z-index 力量這么大?

我們來看一個栗子,B 在做動畫,理所當然把B提到單獨的合成層。減少重繪。

按照上圖,我們遇到一個邏輯問題,元素B應(yīng)該在單獨的合成層上,并且屏幕的最終圖像應(yīng)該在 GPU 上組成。但是A元素在B元素的頂部,我們沒有指定提升A元素自身層級的東西。那么瀏覽器會做什么?它將強制為元素A創(chuàng)建一個新的合成圖層。

這樣,A和B都被提升到單獨的復(fù)合層。

因此,使用 GPU 加速提升動畫性能時,最好給當前動畫元素增加一個高一點的 z-index 屬性,人為干擾復(fù)合層的排序,可以有效減少 Chrome 創(chuàng)建不必要的復(fù)合層,提升渲染性能。

注意:GPU 不僅需要發(fā)送渲染層圖像到 GPU ,而且還需存儲它們,以便稍后在動畫中重用。別盲目創(chuàng)建渲染層,一定要分析其實際性能表現(xiàn)。因為創(chuàng)建渲染層是有代價的,每創(chuàng)建一個新的渲染層,就意味著新的內(nèi)存分配和更復(fù)雜的層的管理。對于使用移動設(shè)備的用戶來說是很坑的。移動設(shè)備沒有臺式機那么多的內(nèi)存。過多的 GPU 加速會引起頁面卡頓甚至閃退。

找到 layers,點擊當前層,在右邊查看占用的 memory(內(nèi)存)

總結(jié)

整篇文章介紹了下面幾個部分

● GPU 加速能做什么

● GPU 是什么,如何用 Chrome devtools 進行分析 debug?

● 如何開啟 GPU 加速?

● GPU 加速隱藏的坑–隱式合成

責任編輯:海凡

最新科技數(shù)碼 頻道推薦
進入新聞頻道新聞推薦
中國首部物業(yè)主題電影《一鳴驚人之以夢
進入圖片頻道最新圖文
進入視頻頻道最新視頻
一周熱點新聞
下載海湃客戶端
關(guān)注海峽網(wǎng)微信
?

職業(yè)道德監(jiān)督、違法和不良信息舉報電話:0591-87095414 舉報郵箱:service@hxnews.com

本站游戲頻道作品版權(quán)歸作者所有,如果侵犯了您的版權(quán),請聯(lián)系我們,本站將在3個工作日內(nèi)刪除。

溫馨提示:抵制不良游戲,拒絕盜版游戲,注意自我保護,謹防受騙上當,適度游戲益腦,沉迷游戲傷身,合理安排時間,享受健康生活。

CopyRight ?2016 海峽網(wǎng)(福建日報主管主辦) 版權(quán)所有 閩ICP備15008128號-2 閩互聯(lián)網(wǎng)新聞信息服務(wù)備案編號:20070802號

福建日報報業(yè)集團擁有海峽都市報(海峽網(wǎng))采編人員所創(chuàng)作作品之版權(quán),未經(jīng)報業(yè)集團書面授權(quán),不得轉(zhuǎn)載、摘編或以其他方式使用和傳播。

版權(quán)說明| 海峽網(wǎng)全媒體廣告價| 聯(lián)系我們| 法律顧問| 舉報投訴| 海峽網(wǎng)跟帖評論自律管理承諾書

友情鏈接:新聞頻道?| 福建頻道?| 新聞聚合
粗大老头让我欲仙欲死| 丰裕纵满的杨玉环中字| 成人午夜福利视频| 色婷婷狠狠18禁久久yy| 无翼鸟邪恶漫画| 国产超a级动作大片中文字幕| 老头把舌头伸进粉嫩淑芬| 善良的妺妺hd高清中文| 免费观看a级片| 亚洲午夜精品A片久久| 岳婆三p一起玩田淑芬| 国产精品国产三级在线专区| 护士夏子的热情夏天| 精品无码人妻一区二区三区不卡| 小sao货水好多真紧h| 少妇夹得好紧太爽了a片| 精品人妻无码一区二区三区不卡| 国产sm主人调教女m视频| 真实的国产乱xxxx在线| 一本一道av无码中文字幕| 亚洲av无码a片在线观看蜜桃| 強姦犯された人妻たち| 国产国产国产国产系列| 亚洲444KKKK在线观看无码| 欧美日韩国产精品自在自线| 久久精品国产亚洲AV麻豆长发| 精品久久久久精品亚洲av| 波多野结衣办公室激情a片| 亚洲av无码成人精品国产| 热RE99久久精品国产66热| 熟女国产精品视频一区二区三区| 婷婷五月综合缴情在线视频| 强壮的公次次弄得我高潮a片日本| 在仓库玩50岁保洁女| 翁想房中春意浓1-28| 国产成人无码精品久久久影院| 国产午夜成人免费看片无遮挡 | 久久人午夜亚洲精品无码区| 无码国产精品一区二区高潮| 国产a级三级三级三级| 国产成人av一区二区三区不卡|