css3 gpu加速
你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能吗?
现在大多数电脑的显卡都支持硬件加速。鉴于此,我们可以发挥GPU的力量,从而使我们的网站或应用表现的更为流畅。
在桌面端和移动端用CSS开启硬件加速
CSS animations, transforms 以及 transitions 不会自动开启GPU加速,而是由浏览器的缓慢的软件渲染引擎来执行。那我们怎样才可以切换到GPU模式呢,很多浏览器提供了某些触发的CSS规则。
现在,像Chrome, FireFox, Safari, IE9+和最新版本的Opera都支持硬件加速,当它们检测到页面中某个DOM元素应用了某些CSS规则时就会开启,最显著的特征的元素的3D变换。
例如:
- .cube {
- -webkit-transform: translate3d(250px,250px,250px)
- rotate3d(250px,250px,250px,-120deg)
- scale3d(0.5, 0.5, 0.5);
- }
可是在一些情况下,我们并不需要对元素应用3D变换的效果,那怎么办呢?这时候我们可以使用个小技巧“欺骗”浏览器来开启硬件加速。
虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎。例如我们可以用transform: translateZ(0); 来开启硬件加速 。
- .cube {
- -webkit-transform: translateZ(0);
- -moz-transform: translateZ(0);
- -ms-transform: translateZ(0);
- -o-transform: translateZ(0);
- transform: translateZ(0);
- /* Other transform properties here */
- }
在 Chrome and Safari中,当我们使用CSS transforms 或者 animations时可能会有页面闪烁的效果,下面的代码可以修复此情况:
- .cube {
- -webkit-backface-visibility: hidden;
- -moz-backface-visibility: hidden;
- -ms-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-perspective: 1000;
- -moz-perspective: 1000;
- -ms-perspective: 1000;
- perspective: 1000;
- /* Other transform properties here */
- }
在webkit内核的浏览器中,另一个行之有效的方法是
- .cube {
- -webkit-transform: translate3d(0, 0, 0);
- -moz-transform: translate3d(0, 0, 0);
- -ms-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- /* Other transform properties here */
- }
原生的移动端应用(Native mobile applications)总是可以很好的运用GPU,这是为什么它比网页应用(Web apps)表现更好的原因。硬件加速在移动端尤其有用,因为它可以有效的减少资源的利用(麦时注:移动端本身资源有限)。
总结
只对我们需要实现动画效果的元素应用以上方法,如果仅仅为了开启硬件加速而随便乱用,那是不明智的。
小心使用这些方法,如果通过你的测试,结果确是提高了性能,你才可以使用这些方法。使用GPU可能会导致严重的性能问题,因为它增加了内存的使用,而且它会减少移动端设备的电池寿命
css3 gpu加速相关推荐
- 什么是GPU加速,如何使用GPU加速,GPU加速的缺点
GPU 硬件加速是指应用 GPU 的图形性能对浏览器中的一些图形操作交给 GPU 来完成,因为 GPU 是专门为处理图形而设计,所以它在速度和能耗上更有效率 GPU 加速通常包括以下几个部分:Canv ...
- GPU加速库AmgX
GPU加速库AmgX AmgX提供了一条简单的途径来加速NVIDIA GPU上的核心求解器技术.AmgX可以为模拟的计算密集型线性求解器部分提供高达10倍的加速度,特别适合于隐式非结构化方法. 它是一 ...
- 构建可扩展的GPU加速应用程序(NVIDIA HPC)
构建可扩展的GPU加速应用程序(NVIDIA HPC) 研究人员.科学家和开发人员正在通过加速NVIDIA GPU上的高性能计算(HPC)应用来推进科学发展,NVIDIA GPU具有处理当今最具挑战性 ...
- NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架
NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架 Introducing NVIDIA Jarvis: A Framework for GPU-Accelerated Conversa ...
- GPU—加速数据科学工作流程
GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...
- GPU加速:宽深度推理
GPU加速:宽深度推理 Accelerating Wide & Deep Recommender Inference on GPUs 推荐系统推动了许多最流行的在线平台的参与.随着为这些系统提 ...
- AI解决方案:边缘计算和GPU加速平台
AI解决方案:边缘计算和GPU加速平台 一.适用于边缘 AI 的解决方案 AI 在边缘蓬勃发展.AI 和云原生应用程序.物联网及其数十亿的传感器以及 5G 网络现已使得在边缘大规模部署 AI 成为可能 ...
- 基于GPU加速全局紧耦合的激光-IMU融合SLAM算法(ICRA2022)
论文阅读<Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping> 文章采用了GPU加速的trick,本质上还是 ...
- Pytorch之GPU加速计算问题以及model=model.to(device)
文章目录 model=model.to(device) GPU加速计算问题 技巧一 model=model.to(device) model=model.to(device) 这个有什么用,其实就是把 ...
最新文章
- bootstrap上传文件美化
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
- Java实现算法导论中最近点对问题分治法
- leetcode90. 子集 II
- 基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...
- go 获取屏幕分辨率_CS:GO枪神的自我修养 高刷电竞显示器推荐
- android中webview空间通过Img 标签显示sd卡中 的图片
- 使用GDAL对静止卫星圆盘数据进行校正(以FY2为例子)
- opcache引起的“php-cgi.exe - FastCGI 进程意外退出”,事件ID487
- Sql Server 存储过程分页大全(2005,2000)
- visual studio 2015 Enterprise key vs2015密钥
- python清理微信好友_Python清理微信僵尸粉,基于itchat模块
- sap新手学习第一天
- 【Mac系统】下载与安装Matlab2019b
- 吐血总结~ 计算机网络基础汇总
- 单片机八灯交替闪烁c语言代码,单片机闪烁灯汇编语言源代码大全(四款闪烁灯的汇编语言源代码)...
- 阿里巴巴食堂:看菜名我跪了~程序员:给我来个“油炸产品经理”
- mp4 转 m3u8 java_java下载m3u8转ts合成mp4
- Disk Manager — 可视化的硬盘分区对象
- 驱动专题:第五章MTD及Flash驱动 4.Norflash驱动