你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能吗?

现在大多数电脑的显卡都支持硬件加速。鉴于此,我们可以发挥GPU的力量,从而使我们的网站或应用表现的更为流畅。

在桌面端和移动端用CSS开启硬件加速

CSS animations, transforms 以及 transitions 不会自动开启GPU加速,而是由浏览器的缓慢的软件渲染引擎来执行。那我们怎样才可以切换到GPU模式呢,很多浏览器提供了某些触发的CSS规则。

现在,像Chrome, FireFox, Safari, IE9+和最新版本的Opera都支持硬件加速,当它们检测到页面中某个DOM元素应用了某些CSS规则时就会开启,最显著的特征的元素的3D变换。

例如:

  1. .cube {
  2. -webkit-transform: translate3d(250px,250px,250px)
  3. rotate3d(250px,250px,250px,-120deg)
  4. scale3d(0.5, 0.5, 0.5);
  5. }

可是在一些情况下,我们并不需要对元素应用3D变换的效果,那怎么办呢?这时候我们可以使用个小技巧“欺骗”浏览器来开启硬件加速。

虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎。例如我们可以用transform: translateZ(0); 来开启硬件加速 。

  1. .cube {
  2. -webkit-transform: translateZ(0);
  3. -moz-transform: translateZ(0);
  4. -ms-transform: translateZ(0);
  5. -o-transform: translateZ(0);
  6. transform: translateZ(0);
  7. /* Other transform properties here */
  8. }

在 Chrome and Safari中,当我们使用CSS transforms 或者 animations时可能会有页面闪烁的效果,下面的代码可以修复此情况:

  1. .cube {
  2. -webkit-backface-visibility: hidden;
  3. -moz-backface-visibility: hidden;
  4. -ms-backface-visibility: hidden;
  5. backface-visibility: hidden;
  6. -webkit-perspective: 1000;
  7. -moz-perspective: 1000;
  8. -ms-perspective: 1000;
  9. perspective: 1000;
  10. /* Other transform properties here */
  11. }

在webkit内核的浏览器中,另一个行之有效的方法是

  1. .cube {
  2. -webkit-transform: translate3d(0, 0, 0);
  3. -moz-transform: translate3d(0, 0, 0);
  4. -ms-transform: translate3d(0, 0, 0);
  5. transform: translate3d(0, 0, 0);
  6. /* Other transform properties here */
  7. }

原生的移动端应用(Native mobile applications)总是可以很好的运用GPU,这是为什么它比网页应用(Web apps)表现更好的原因。硬件加速在移动端尤其有用,因为它可以有效的减少资源的利用(麦时注:移动端本身资源有限)。

总结

只对我们需要实现动画效果的元素应用以上方法,如果仅仅为了开启硬件加速而随便乱用,那是不明智的。

小心使用这些方法,如果通过你的测试,结果确是提高了性能,你才可以使用这些方法。使用GPU可能会导致严重的性能问题,因为它增加了内存的使用,而且它会减少移动端设备的电池寿命

css3 gpu加速相关推荐

  1. 什么是GPU加速,如何使用GPU加速,GPU加速的缺点

    GPU 硬件加速是指应用 GPU 的图形性能对浏览器中的一些图形操作交给 GPU 来完成,因为 GPU 是专门为处理图形而设计,所以它在速度和能耗上更有效率 GPU 加速通常包括以下几个部分:Canv ...

  2. GPU加速库AmgX

    GPU加速库AmgX AmgX提供了一条简单的途径来加速NVIDIA GPU上的核心求解器技术.AmgX可以为模拟的计算密集型线性求解器部分提供高达10倍的加速度,特别适合于隐式非结构化方法. 它是一 ...

  3. 构建可扩展的GPU加速应用程序(NVIDIA HPC)

    构建可扩展的GPU加速应用程序(NVIDIA HPC) 研究人员.科学家和开发人员正在通过加速NVIDIA GPU上的高性能计算(HPC)应用来推进科学发展,NVIDIA GPU具有处理当今最具挑战性 ...

  4. NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架

    NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架 Introducing NVIDIA Jarvis: A Framework for GPU-Accelerated Conversa ...

  5. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  6. GPU加速:宽深度推理

    GPU加速:宽深度推理 Accelerating Wide & Deep Recommender Inference on GPUs 推荐系统推动了许多最流行的在线平台的参与.随着为这些系统提 ...

  7. AI解决方案:边缘计算和GPU加速平台

    AI解决方案:边缘计算和GPU加速平台 一.适用于边缘 AI 的解决方案 AI 在边缘蓬勃发展.AI 和云原生应用程序.物联网及其数十亿的传感器以及 5G 网络现已使得在边缘大规模部署 AI 成为可能 ...

  8. 基于GPU加速全局紧耦合的激光-IMU融合SLAM算法(ICRA2022)

    论文阅读<Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping> 文章采用了GPU加速的trick,本质上还是 ...

  9. Pytorch之GPU加速计算问题以及model=model.to(device)

    文章目录 model=model.to(device) GPU加速计算问题 技巧一 model=model.to(device) model=model.to(device) 这个有什么用,其实就是把 ...

最新文章

  1. bootstrap上传文件美化
  2. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
  3. Java实现算法导论中最近点对问题分治法
  4. leetcode90. 子集 II
  5. 基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...
  6. go 获取屏幕分辨率_CS:GO枪神的自我修养 高刷电竞显示器推荐
  7. android中webview空间通过Img 标签显示sd卡中 的图片
  8. 使用GDAL对静止卫星圆盘数据进行校正(以FY2为例子)
  9. opcache引起的“php-cgi.exe - FastCGI 进程意外退出”,事件ID487
  10. Sql Server 存储过程分页大全(2005,2000)
  11. visual studio 2015 Enterprise key vs2015密钥
  12. python清理微信好友_Python清理微信僵尸粉,基于itchat模块
  13. sap新手学习第一天
  14. 【Mac系统】下载与安装Matlab2019b
  15. 吐血总结~ 计算机网络基础汇总
  16. 单片机八灯交替闪烁c语言代码,单片机闪烁灯汇编语言源代码大全(四款闪烁灯的汇编语言源代码)...
  17. 阿里巴巴食堂:看菜名我跪了~程序员:给我来个“油炸产品经理”
  18. mp4 转 m3u8 java_java下载m3u8转ts合成mp4
  19. Disk Manager — 可视化的硬盘分区对象
  20. 驱动专题:第五章MTD及Flash驱动 4.Norflash驱动

热门文章

  1. fastjson泛型T反序列化
  2. 一文读懂自动驾驶汽车:软硬结合 造就未来出行体验(上篇)
  3. CSS3实现打勾(✔)效果
  4. 【备忘】导出Excel,使用NativeExcel控件
  5. linux显示 防火墙配置文件,怎么查看Linux防火墙配置方法
  6. 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)
  7. command line is too long
  8. Word2003菜单栏不见了
  9. Web Page Performance
  10. 制作建筑轮廓矢量数据教程 导出dxf、shp等各种矢量格式