HTIML5 真的打败了Flash?新测试结果出人意料
【编者按】本文最早发布于 2010 年,通过 Flash 与 HTML5 在 Mac 及 Windows 平台不同浏览器中的测试表现,比较两者的性能并分析背后的原因。虽然是一篇老文,但其客观冷静的分析态度,仍旧值得我们学习。文章系国内 ITOM 管理平台 OneAPM 编译呈现。
总部位于库比蒂诺的苹果公司在即将推出iPad之际,对Adobe Flash技术保持的回避态度已经成为技术界的讨论热点。 在iPhone和iPod Touch这样的小型移动设备上放弃使用Flash尚且说得过去,可是,人们质疑,下个月即将发布的新平板设备对Flash的不支持是否会成为决定成败的关键。虽然按照苹果公司CEO乔布斯的说法,该设备“比上网本要好”。
另一方面,苹果公司的支持者们对苹果的考虑表示赞同——“Flash是CPU杀手”,将Flash技术用于苹果的移动设备势必会缩短电池寿命。
然而,最近有人对比测试了Flash和HTML5(这种新的web标记语言已经削弱了Adobe插件的需求),结果表明这不是一个简单的非黑即白的问题。Flash真的是CPU杀手吗?是的,在有些情况下确实如此,但是,出人意料的是,并非所有情况。实际上,HTML5的表现有时更差。
测试 Flash 和 HTML5
厄泽尔是视频编码技术方面的专家,自1990年起一直从事数字视频工作,同时著有13本与该领域相关的书籍。【作者注:曾有人指出厄泽尔以 Adobe 产品为主题做过讲座,写过书籍,因此他借助Adobe Flash的成功谋利。笔者认为这对测试结果没有任何影响,但还是有必要对此做出说明。】最近,厄泽尔通过一系列的测试对比了HTML5和Flash这两种技术在Mac和PC以及不同web浏览器中的表现,后者包括IE8、Google Chrome、 Apple Safari和Mozilla Firefox。
完整的测试结果公布在StreamingLearningCenter.com上。一言以概之就是:Flash并不总是CPU杀手,有时候这项“殊荣”当属于HTML5。
以下是厄泽尔的一些主要发现,测试结果分成Mac和Windows两个部分。
Mac测试
- 在Safari浏览器中,HTML5的效率最高,CPU使用率比Flash低,仅为12.39%。使用Flash 10.0时,CPU使用率达到了37.41% ;若使用Flash 10.1,CPU使用率则又降至32.07%
- 在Google Chrome浏览器中,Flash和HTML5的效率都不高(两者都是50%左右)。
- 在Firefox浏览器中,Flash的表现比在Safari中稍差一些,但比在Chrome中要好。
Windows测试
- Safari浏览器无法播放HTML5视频,所以没有办法测试。 但是Flash 10.0的CPU使用率是23.22%,而Flash 10.1的CPU使用率只有7.43%。
- Google Chrome在Windows上比在Mac上更高效。Flash Player 10.0的播放效率比HTML5高出24%,而Flash Player 10.1的播放效率比HTML5高出58% 。
- 在Firefox浏览器中,Flash 10.1的CPU使用率从Flash 10.0的22%下降到6%。
- 在IE8浏览器中,Flash 10.0的CPU使用率是22.41%,而Flash 10.1 的CPU使用率是14.62%。
Flash性能的关键在于硬件加速
厄泽尔在分析测试结果时发现,Flash性能好坏的关键在于是否可以启用硬件加速。该功能在 Flash10.1中首次推出,允许Flash插件在某些计算机上使用图形处理单元(GPU)对视频进行解码。依靠显卡和驱动(NVIDIA, AMD/ATI 和 Intel提供的支持产品),Flash10.1的视频解码不仅可以像Flash10.0一样支持全屏播放,而且还支持所有视频播放。
Adobe表示,在Linux和Mac OS X系统下暂不支持硬件加速,后者是因为 Mac OS X不允许访问所需的API。Adobe还表示,“Flash Player团队将会继续评估是否在将来的版本中为Linux和Mac OS X系统添加硬件加速支持。”
简单地说就是:通过拒绝Flash访问有助于减少CPU负荷的硬件,苹果公司不允许其提高在Mac OS X/Safari平台上(还有 iPod/iPhone/iPad)的运行效率。Adobe正在静待观望,看苹果的态度是否会有所改变,但是正如厄泽尔所说,“主动权在苹果手中。”
那么,苹果会改变主意吗?目前似乎不大可能。在谈及不支持Flash的原因时,苹果只需声称Flash技术的效率低下就可以了。而且现下,考虑到Flash的配置方式,这也确实实属。但是只要苹果公司愿意放行,相信他们也是可以做到的。这就是为什么有些业内人士认为,苹果封杀Flash的决定更多是出于商业考量,而不是技术原因。毕竟,如果你访问Hulu.com就能播放电视节目和电影,又何必去iTunes商店购买呢?
因此,苹果决定在其移动设备上不支持Flash技术,“CPU杀手”一说可能是个影响因素,但很可能不是唯一的原因。
OneAPM Browser Insight 是一个基于真实用户的 Web 前端性能监控平台,能帮助大家定位网站性能瓶颈,实现网站加速效果可视化;支持浏览器、微信、App 浏览 HTML 和 HTML5 页面。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
原文地址:http://readwrite.com/2010/03/10/does_html5_really_beat_flash_surprising_results_of_new_tests
HTIML5 真的打败了Flash?新测试结果出人意料的更多相关文章
- 使用FIO对SATA、SSD和PCIe Flash进行测试
首先声明,同事做的实验 使用fio对SATA.SSD.PCIE进行了测试 测试说明: 1.测试命名 sync_write_4k_32 sync表示测试方式,可以是sync或者libaio ...
- flash压力测试
涉及目录: vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6735/src/drivers/inc/dram ...
- 09.25日记(2014年9月25日23:22:06)用java这么多年面向对象我真的懂了吗,测试先行理念会玩吗
二胡 (1)应该找些书来看看,工作N年并不代表就有N年的工作经验. (2)DiaTransit02,DiaDept02,DiaAirport02,DiaHighway02.都具有x,y属性为何不设计一 ...
- 快速准备(复制替换)一套新测试环境,CentOS7 MySQL相关配置
拿到一个新环境,需要找相关配置,我有一个办法,相对能比较快速地复制一套环境出来. 修改机器配置: virsh 相关几条命令,已完成,后续我再整理补充... 虚拟化相关,参考:https://www.c ...
- 如何在Flash中新窗口打开页面而不被拦截
Flash的wmode必须是opaque或者transparent,允许Flash访问页面脚本.另外跳转必须是点击直接触发. 代码:ExternalInterface.call("windo ...
- 现在还需要测试或者QA人员吗?
Facebook没有专门的测试人员,都是开发自己测:微软裁掉了测试部门,改由开发测:google有少量的测试人员,主要做测试自动化框架开发或者性能.安全等专项测试,测试用例还是开发人员自己设计自己跑( ...
- Nand flash 的发展和eMMC
讨论到eMMC的发展历程,必须要从介绍Flash的历史开始 Flash分为两种规格:NOR Flash和NAND Flash,两者均为非易失性闪存模块. 1988年,Intel首次发出NOR flas ...
- [面试]中高级测试工程师必备,月薪15K+
1.你的测试职业发展是什么? 测试经验越多,测试能力越高.所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去.而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求 ...
- 串行FLASH文件系统FatFs---转自野火论坛
为了支持长文件名,需要用到FATFS源码中的cc936.c的两个函数ff_convert,ff_wtoupper:这里面直接用了两个大数组(127KB)来做unicode转gbk(OEM)的对照表,这 ...
随机推荐
- KMP算法的next函数求解和分析过程
转自 wang0606120221:http://blog.csdn.net/wang0606120221/article/details/7402688 假设KMP算法中的模式串为P,主串为S,那么 ...
- JavaSE-java8-谓词复合的用法
谓词接口包括三个方法: negate. and 和 or,让你可以重用已有的Predicate来创建更复杂的谓词 一.比如可以用negate方法来返回一个Predicate非 public class ...
- mybatis随笔二之SqlSessionFactory
在上一篇文章我们已经得到了DefaultSqlSessionFactory @Override public SqlSession openSession() { return openSession ...
- SwitchHosts—hosts管理工具
SwitchHosts是一个管理.快速切换Hosts小工具,开源软件,一键切换Hosts配置,非常实用,高效.开发Web过程成,部署有多套环境,网址域名都相同,部署在不同的服务器上,有开发环境.测试环 ...
- windows平台安装php_memcache模块
要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位);php-5.3; memcached-1.2.6 下载地址 环境下载 什么是PHP Memcache模块 Memcach ...
- Linux安装codis
codis用go语言开发的,安装前记得先安装go开发环境,Linux安装go语言开发包 前提条件:记得安装git,否则无法下载go语言开发包 1.建立一个go语言的工作目录创建目录:sudo mkdi ...
- lucene-01-简介
1, 介绍 hadoop作者开发的 hdfs最开始作为netch的文件存储来使用的 2, 存储结构 lucene快的原因, 是因为添加数据的时候会对数据进行分词, 将分词后的词建立索引, 存储到索引库 ...
- BackgroundWorker简单实用(简便的异步操作)
微软提供了一个快捷使用多线程的帮助类BackgroundWorker,能够快速创建一个新的线程,并能报告进度,暂停,以及在线程完成后处理别的任务. 1.BackgroundWorker类介绍 1.1. ...
- Maven Jetty8
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactI ...
- Spark(1.6.1) Sql 编程指南+实战案例分析
首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理.它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL ...