【问题标题】:CSS opacity filter faster than opacity property?CSS不透明度过滤器比不透明度属性更快?
【发布时间】:2014-03-29 20:55:02
【问题描述】:

this html5rocks 文章中,它指出

一般来说,CSS ‘opacity’ 属性不是硬件加速的,但是一些使用硬件加速实现过滤器的浏览器会加速过滤器版本的 opacity 以获得更好的性能。

这似乎意味着在性能密集型应用程序中,应该使用 opacity 过滤器而不是 opacity 属性。例如,我在不透明度属性为 0.5 的图像下渲染画布。我应该改用过滤器吗?使用此过滤器属性时如何衡量性能提升?在哪些平台上可能会有明显的改进?

【问题讨论】:

    标签: performance css-filters


    【解决方案1】:

    Paul Irish 在这里说 opacity 是 *is* GPU 加速的少数 CSS 属性之一:https://plus.google.com/+AddyOsmani/posts/aTRerYcZpts

    此外,正如here 所见,跨浏览器严重缺乏对过滤器的支持,尽管全面支持不透明度:http://caniuse.com/#search=opacity

    更不用说 opacity 属性更容易使用。

    我会坚持你所拥有的。

    【讨论】:

      【解决方案2】:

      首先,CSS3滤镜效果是still a draft standardtheir browser support varies。因此,请三思你是否真的需要它们(例如,CSS Filters in the Real World article (04.2013) 报告渲染工件)。 Hardware acceleration in WebkitGPU Accelerated Compositing in Chrome 概述了它们的实现,并且都表示没有对 CSS2 或 CSS3 的歧视(如果有的话,我会感到惊讶)。

      其次,a review in PC magazine (01.2013) 展示了 IE 和 Firefox 团队的一些在线基准测试结果。有画布、粒子和 CSS(旋转)基准。在那里测试的 Maxthon(使用 WebKit)和 Opera 版本不支持加速,因此它们暗示了性能提升。关于透明度:它的计算量比重采样少几个数量级,因此您不应该注意到此特定操作的任何差异。

      【讨论】:

      • Trey 提到的文章讨论的不是 IE 的专有过滤器,而是基于 WebKit 和 Blink 的浏览器目前支持的 CSS3 过滤器效果 (caniuse.com/#feat=css-filters)。有趣的是,同一篇文章在下面(在“现代浏览器中的可用性”部分,html5rocks.com/en/tutorials/filters/understanding-css/…)指出,opacity 过滤器在 Chrome 中“可能很慢”。
      • html5rocks 文章的日期是 2012 年 5 月,它肯定已经过时了。
      • 2012 年 6 月的 Chromium 博客文章指出 Chromium 19 已经支持加速 CSS 过滤器:blog.chromium.org/2012/06/…
      猜你喜欢
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      相关资源
      最近更新 更多