- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建包含大量内容的动画/过渡重型网络应用程序。应用程序中有很多合成层,因为所有内容都是使用 css 转换来移动/动画的。我正在尝试调试应用程序以找出渲染瓶颈,并且我注意到 Chrome DevTools -> Timeline -> Frames 模式中有很多“更新图层树”事件,例如:
有人知道是什么原因造成的吗? “更新图层树”到底代表什么?
最佳答案
首先你必须了解什么是 Render Layer
是。 Render Layer
是浏览器表示如何渲染该节点以及它如何与具有相同坐标空间的其他节点关联以处理重叠内容、绘画等问题。 Update Layer Tree
可能是由于许多不同的事情而发生的。例如,如果您使用 javascript 在元素上设置样式 Layer Tree
需要计算和更新。或者也许它必须同步 Layer Tree
在合成器线程(纹理加载到 GPU 的地方)和主线程(运行 JavaScript 的地方)之间。
就你的情况而言,我猜测你正在触发一个基本的层失效,迫使它更新树层次结构中较高的层,然后该层正在慢慢流动沿着树向下并导致每个层都被更新。尽管如果不查看代码就很难说。
不管怎样,如果这么长Update Layer Tree
始终发生在 Layout
之前正在重新计算,这肯定与此有关。
这里有一些可帮助您入门的资源。
阅读这篇关于浏览器层的 HTML5 Rocks 文章。 Accelerated Rendering in Chrome
或者其他关于合成的 HTML5 Rocks 文章。 High Performance Animations
如果您想深入了解 Chrome 如何渲染页面并在该过程中使用 GPU。 Chromium 博客上有一篇关于它的精彩文章。 GPU Accelerated Compositing in Chrome
祝你好运。
关于google-chrome - Chrome DevTools 时间线更新图层树事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724126/
语境 对于我的许多 js 文件,我没有源映射。当使用 devtools 控制台时,它会污染有关的警告。我不想关闭所有警告,但那些对我来说并不是真的有用 问题 如何抑制 Chrome DevTools
我有这个 Chrome DevTools 颜色选择器问题,当我将停靠位置更改为 时,吸管不起作用。底部 .默认设置在右侧,颜色选择器吸管工作正常,但当我改变位置时就不行了。有什么设置吗?因为我无法从
如图所示,我想知道是否有键盘快捷键可以逐个或批量关闭这些选项卡 最佳答案 AltW 或 OptW (Mac) 关闭事件选项卡。见 Sources panel keyboard shortcuts .
我正在测试我的 HTML 的可访问性。在使用 TAB 键导航 HTML 时,焦点环有时会消失,因为具有焦点的元素被隐藏了。那时我不知道哪个 DOM 元素有焦点。 有没有一种方法可以在 Chrome D
我正在使用 ios-webkit-debug-proxy 和 remotedebug-ios-webkit 适配器从 Linux 上的 Chrome Devtools 调试运行 Safari 的 IO
尝试运行 Nativescript 调试 session ,每次我输入 chrome-devtools://devtools/bundled/inspector.html?experiments=tr
看起来渲染设置不像以前那样(即启用绘画闪烁、显示图层边框、显示 FPS 表、显示滚动性能问题)。 我怎样才能再次访问这些功能? 最佳答案 渲染设置已从 移动 Chrome 48 .您现在可以通过三点菜
我正在使用 devtools 调试一个大的 DOM: 我想为这个 div 添加“书签”,这样我就可以轻松地再次跳转到它。 如果此书签能够在页面重新加载后继续存在,那就太好了。 有办法吗? 最佳答案 我
我想弄清楚为什么我的应用程序性能很差。所以我在 DevTools 中做了一个性能记录,我可以看到帧通常需要大约 150 毫秒,这太长了。 但是我不明白为什么框架需要这么多时间。有一些 javascri
我正在使用 devtools 调试一个大的 DOM: 我想为这个 div 添加“书签”,这样我就可以轻松地再次跳转到它。 如果此书签能够在页面重新加载后继续存在,那就太好了。 有办法吗? 最佳答案 我
我希望在页面刷新时打开 DevTools 是很常见的。我可以使用 DevTools 从一开始就调试该页面吗? 最佳答案 您可以远程调试自己的 Chrome 实例,以获得每个页面的完整 DevTools
我经常使用控制台来输入和评估表达式。很多时候我是错误的并且捏造了一些表达式名称。这样做之后,chrome devtools 控制台将自动完成并提示我的一些错误输入。 有没有办法清除控制台历史建议? 最
如果我打开 google DevTools 我找不到时间轴面板 如此处所述: 根本没有标签。怎么了? 我在 Windows 7 和 Chrome 61.0.3163.91 最佳答案 时间轴面板现在称为
Google Chrome Devtools 中的事件监听器断点提供了多种选择,但对我来说,它们并不是很有用,因为它们总是让我陷入代码的一些不相关部分。 我想知道是否可以将其限制为仅一类?例如 onM
Chrome 开发工具过去常常为我按字母顺序在“范围” Pane 中显示属性。例如,请参阅此处有关“Google Chrome 中源选项卡中的范围”的屏幕截图:https://dev.to/shado
我尝试使用 Chrome DevTools 为 Android 应用程序执行 SQL 查询,但这是不可能的,因为输入按钮将光标移动到下一行而不是执行命令。前一段时间它起作用了。 我重新安装了 Chro
我有相对简单的 webpack 配置文件(如下): module.exports = { entry: "./src/main.js", output: { filen
我有这个简单的代码 input:hover{border: 3px solid blue;} 预期行为:当我将鼠标悬停在输入上时,新样式应该出现在 devtools 样式部分,但它仅在我通过 dev
documentation说“每次打开 DevTools 窗口时都会创建扩展的 DevTools 页面实例。DevTools 页面在 DevTools 窗口的生命周期内存在。” 然而,Facebook
我有一个页面,其中我使用 morris.js 插件显示 23 个 donut chart 。在性能分析期间,我遇到了这个: 当然还有 22 个以上的警告。结果时间为 401 毫秒。 我对每个 donu
我是一名优秀的程序员,十分优秀!