HTML 5应用开发功耗调优化小结

功耗优化介绍

在WWW 2012 – Session: Mobile Web Performance会议论文中发现一篇对HTML5移动应用开发非常 有参考意义的由斯坦福CS系发表的一篇论文,Who Killed My Battery: Analyzing Mobile Browser Energy Consumption。 里面详细谈到了在mobile browser中,如何写网站可以节省功耗,测量和研究的结果为移动端HTML5应用开发提供了重要的 参考价值

移动浏览器和网站分析

首先介绍一下测量工具:采用安捷伦34410A高精度数字功率万用表,可以实 时测量设备的功耗情况。开发机选用Android Developer Phone 2 (ADP2) HTC手机。他们对web浏览器添加了一些功能模块 便于测量,架构图如下:

典型的Facebook手机端网页打开,在安捷伦 测量仪上可以看到的功耗变化如下图:

功耗优化点介绍

通过这样的 测量,发现在移动设备中主要的功耗点在:

1. 网络的传输, 不管是3G网络还是WiFi传输都是移动设备功耗热点。

2. 页面的加载和渲染,由于页面加载和渲染需要大量的CPU和GPU时间去执行,是移动设备的另一个功耗热点。

在Web网页中,主要的功耗点在于:

1. JavaScript代码的解释执行

2. CSS规则的匹配和渲染

3. 图片的解析和渲染 根据上面的分析和实验,

总结出以下一些对开发者有价值的功耗优化点:

1. 优化JavaScript解释执行的效率

由于JavaScript解释执行是一个功耗热点,所以在移动端优化其效率是可以显著提 升功耗的,主要集中的以下三点来优化:

1. 动态的JavaScript执行会增加页面的功耗,所以除非在必要的情况下, 尽量少用AJAX。

2. 仅加载对当前页面执行有用函数,即只加载和本页面有关的JavaScript。传统Web开发经常加载 一张大的JavaScript函数,每个页面都可以直接用。但是实际用户可能仅仅看了当前页面就关闭了,并不进入其他页面。

3. 尽量避免使用一些通用的JavaScript库,尤其未经移动端裁剪和优化的库。其中就包括JQuery.js。

通过 对WiKipedia的JavaScript解释执行的分析,在优化前,功耗为15J, 优化后仅为9.5J, 功耗节省了43%

2. 降低CSS的 功率消耗

和JavaScript一样,在CSS的页面中,同样仅仅加载本页面有关的CSS内容,这点本人在做Web开发时,也同 样,将所有页面的CSS写在两个甚至一个CSS文件中,可以实现重用,但是这样在移动端显然不是节省功耗的选择。

通过的Apple.com移动网站的分析,在优化CSS的样式后,功耗从12J降低到7J,节省了42%。

3. 优化图片的解析和加 载

通过的移动浏览器的分析,发现JPEG格式的图片是最节省功耗的。传统的网页开发者一般讲小图标做成png格式, 中等的做成gif,大图片才会选择JPEG格式。但是在移动端,浏览器不管是大图小图,统一是JPEG格式功耗最省。

通 过分析Facebook和Amazon,将其页面上的所有图片转换为JPEG,功耗的优化结果如下图:

时间: 2024-11-03 03:21:38

HTML 5应用开发功耗调优化小结的相关文章

Spark企业级应用开发和调优

1.Spark企业级应用开发和调优 Spark项目编程优化历程记录,主要介绍了Spark企业级别的开发过程中面临的问题和调优方法.包含合理分配分片,避免计算中间结果(大数据量)的collect,合理使用map,优化广播变量等操作,降低网络和磁盘IO,提高计算效率. 2.核心技术优化方法对比 首先如下图(2.1),Spark应用开发在集群(伪分布式)中的记录,每一种不同颜色的折线代表一个分布式机器 最终,图4中四条折线并行达到峰值(即CPU100%).降低了处理时间,增大了处理效率. 2.1.重要

VR开发中的优化

VR开发中的优化 前言 大概做了大半年的VR开发,HTCVive上与room scale和手柄控制器.激光相关的开发做过,gearvr使用oculus sdk开发做过,使用Cardboard做普通vr app在android和ios上发布也做过. vr设备呢,HTCVive和oculus搞过,gearvr和普通Cardboard类的手机vr搞过,LG的新的glass接过,露光严重,idealens.还有一大票的国产一体机,pico.小米,嗯做的好的目前的确还是那几个大厂的. 由于我参与的项目主要

Android编程开发之性能优化技巧总结_Android

本文详细总结了Android编程开发之性能优化技巧.分享给大家供大家参考,具体如下: 1.http用gzip压缩,设置连接超时时间和响应超时时间 http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读. 2.listview 性能优化 1).复用convertView 在getItemView中,判断convertView是否为空,如果不为空,可复用.如果couvertview中的view需要添加listern

Android开发的UXSS阶段性小结及自动化测试教程

0x00 科普 WebView(网络视图)android中加载显示网页的重要组件,可以将其视为一个浏览器.在kitkat(android 4.4)以前使用WebKit渲染引擎加载显示网页,在kitkat之后使用谷歌自家内核chromium. Uxss(Universal Cross-Site Scripting通用型XSS)UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型.可以到达浏览器全局远程执行命令.绕过同源策略.窃取用户资料以及劫持用户的严重危害.

创新云平台,实现开发中心“云”优化

创新云平台,实现开发中心"云"优化 作为新一代信息技术和商业模式,云计算已成为全球IT产业的重要发展方向.对于IBM中国开发中心而言,云计算也是未来五年的重点发展战略之一.过去IBM中国开发中心因高速扩张,购置了大量的硬件和计算资源,分散在多个部门,资源的集中化管理程度低,使用和配置的情况不平衡.从2009年开始,经过对内部资源进行调研和分析,IBM中国开发中心逐步推进开发中心内部的"云"转型,希望借助自身的云计算技术,实现内部的资源优化管理.简化部署并强化安全.

Android编程开发之性能优化技巧总结

本文详细总结了Android编程开发之性能优化技巧.分享给大家供大家参考,具体如下: 1.http用gzip压缩,设置连接超时时间和响应超时时间 http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读. 2.listview 性能优化 1).复用convertView 在getItemView中,判断convertView是否为空,如果不为空,可复用.如果couvertview中的view需要添加listern

Android高级开发之性能优化典范

本章介绍android高级开发中,对于性能方面的处理.主要包括电量,视图,内存三个性能方面的知识点. 1.视图性能 (1)Overdraw简介 Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布 局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,表现为应用卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减

SQL Server 2016 查询存储性能优化小结_MsSql

作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server开始糟糕, 疯狂的事情不能解释.在这个情况下我介入,分析下整个SQL Server的安装,最后用一些神奇的调查方法找出性能问题的根源. 但很多时候问题的根源是一样的:所谓的计划回归(Plan Regression),即特定查询的执行计划已经改变.昨天SQL Serv

【CSDN移动开发俱乐部】移动开发路径之优化与测试

做出一款移动应用很容易,做到成熟优异却很难.针对移动开发中技术人员普遍遇到的技术难题,7月29日下午,CSDN移动开发俱乐部邀请到友盟Android工程师陈彧堃.ThoughtWorks开发工程师刘龙军等多位资深开发者分享Android应用开发中的最佳实践. Android应用开发中的设计和优化 在长期致力经营移动开发者平台期间,应用分析工具友盟的创作团队总结出一套Android应用开发中的技术和设计经验,在本期活动中,友盟创始团队成员.资深Android开发师陈彧堃进行了分享. 友盟Andro