嵌入式系统浏览器性能优化

(整期优先)网络出版时间:2019-12-24
/ 3

嵌入式系统浏览器性能优化

黄日辉

广东博思信息技术有限公司

摘要:随着嵌入式设备的广泛应用和发展,目前大部分嵌入式设备都带有浏览器,例如机顶盒,电视,手机等设备,嵌入式设备上的浏览器针对不同的应用场景一般需要做定制开发,性能优化,本文就是从不同角度来分析嵌入式浏览器性能优化技术。

关键词:嵌入式浏览器性能优化

引言

嵌入式浏览器性能优化是个系统化工程,需要从不同角度分析来优化性能,最终使系统达到一个合适的状态,下面就从不同角度来分析嵌入式浏览器性能优化技术。

1嵌入式软件的相关概述

嵌入式软件就是指嵌入在硬件中的操作系统和应用工具软件,嵌入式系统最早采用硬件优先的原则,根据软件任务的需求,粗略地把软件与硬件进行结合,很难充分利用软硬件资源[1]。在测试阶段如果出现问题,就需要大改和重新设计,在一定程度上增加了设计时间与成本。90 年代以后,随着电子系统的不断发展,人们认识到软件和硬件应该结合在一起,所以出现了软硬件协同的方法,这一方法能够充分挖掘系统的软硬件能力,提高性能优化方案。嵌入式系统分为嵌入式操作系统和实时操作系统,Linux 内核在设计爱好者的开发下,得到了迅速的发展。嵌入式软件具有实用性、灵活适用性的特点,能够优化配置,减少对系统的整体继承性,在升级方面更加灵活[2]。嵌入式软件在计算机软件开发过程中,具有高性能、稳定性、低成本的优势,受到技术人员的喜爱。目前,嵌入式软件在应用过程中环境不一样,为了解决这一问题就需要在应用过程中尽可能地提高运行环境。嵌入式软件在未来发展中,应该抓住关键,围绕行业,聚焦行业,依托龙头企业,突出重点区域,建设嵌入式软件平台系统,提高我国嵌入式系统的整体实力,加快嵌入式软件产业的发展[3]

2嵌入式软件在计算机软件开发中的应用

2.1嵌入式软件技术的应用

嵌入式软件实际上就是把其嵌入到硬件中的一种开发方式,它本身具有复杂性。嵌入式软件的应用很广泛,芯片、电子设备、系统的开发等都能够用到。虽然,嵌入式系统使用在很多方面,但主要的设计也是围绕计算机系统的,它主要根据设计的要求使用在专用计算机上[4]。根据英国工程师协会对嵌入式系统的定义:“嵌入式系统是为控制、监视或辅助设备、机器或用于工厂运作的设备。和一般计算机不一样,嵌入式系统都是执行特定任务的。”嵌入式技术在发展的过程中,开始运用软硬件协同合作的方法,来保证设计方案的稳定性。

嵌入式软件是嵌入式系统的重要组成部分,嵌入式软件被广泛应用到各个领域,比如移动设备、冰箱、微波炉等,提高了他们的结构性能,功能不再单一。嵌入式设备在发展的过程中,为了满足当前网络的发展,均加强了硬件上网络通信的能力[5]。嵌入式软件能够给计算机软件的开发提供支持,并提升软件整合能力与研发效率。

2.2基于嵌入式软件的开发流程

嵌入式软件在开发上和上述的软件开发流程一样,都是通过客户的需求,制定相关的设计,程序人员再进行编码,后期再进行调试工作。在设计某一项目时,要结合市场的需求与反馈,编写相关的项目书,在对其进行分析后,创建一个项目的设计书,成立技术研发小组[6]。在规划阶段,要结合客户的需求,对其进行相关的审核,除了要写出项目计划书外,还应该对项目的风险进行考量,明确软件开发的规划。在系统设计阶段,要结合审核的情况,来进行程序的编写,保证软硬件符合设计要求[7]。再根据设计方案,进行相关程序编码,然后完成测试与调试工作。

在开发过程中,要结合系统的需求,这样技术人员才能够与客户进行良好的沟通,根据客户的需求明确设计内容,根据相关的文档结合客户的阐述,设计出软件系统[8]。比如在设计过程中,要重点关注运行的速度、耗能等。嵌入式软件在开发过程中,可以选择不同的硬件接口,这样可以提高信息交互的效率。比如:在嵌入式处理器进行内嵌网络接口,除了通过 TCP/IP协议,还可以支持 USB、CAN、IrDA 等通信接口。

2.3嵌入式软件的应用特点

2.3.1掌握应用原理

嵌入式软件在应用的过程中,主要分为两个部分:一是把处理技术融入其中,二是在编程过程中应用 CORBA 模型,技术人员可以通过嵌入式软件进行一些设计工作。在嵌入式软件的研发设计中,为了满足软件开发的要求,多会对软件进行系统性的划分,在编程过程中,明确结构的任务,这样可以降低系统出现脱轨的情况。在设计与编程中,要运用指令执行优先安排的部分程序。利用嵌入式软件,提高系统的运行效率,保证系统的安全性和稳定性。

2.3.2体现设计要点

在嵌入式软件开发中,首先,要明确设计结构,这样便于软硬件结合,保证软硬件系统的稳定性,降低软件的依赖,提高它的整体性能。其次,利用嵌入式软件可以对数据进行格式化和初始化的操作,这样能够在无形中减少人工处理,提高设计研发的效率,避免一些不必要的漏洞。最后,相关人员可以在嵌入式软件的基础上,融入一些新的理念。

2.3.3展示技术优势

嵌入式软件在发展的过程中,本身具备一个很大的特点,那就是交叉编译调试。技术人员可以利用嵌入式软件的优势,解决调试中存在的问题,这样可以降低软件开发的经费,给计算机软件提供良好的环境,充分利用硬件芯片资源等。在软件开发的过程中,嵌入式软件具有成本低、高效能、稳定性强等特点,如果遇到停电的情况,也不会造成数据的丢失。当前,嵌入式软件的集成化程度高,在运行上耗能低,有利于计算机软件的开发工作。

3嵌入式系统浏览器性能优化

3.1编译角度去做优化

主要包括如下几个方面:(1)根据项目需求,编译浏览器内核选项裁剪,不需要的功能选项去掉来减少资源占用。(2)编译的lib及资源裁剪,所有lib及进程都需要strip去掉符号表,减少flash资源占用。(3)裁剪不需要的语言或者开发工具资源,例如chromium内核translations目录下的*.qm和*.pak可以根据项目需求做裁剪。(4)Debug和Release开关,正式版本要采用Release版本。(5)启动参数选择,例如chromium内核,可以选择关闭Debug,打开单进程等。

3.2网络角度去做优化

浏览器网络获取数据主要过程见图1示意。

(1)调整linux内核tcp/ip参数,优化内核网络设置参数。

(2)资源下载并行处理,调整最大并行资源下载个数达到最优效果。

(3)采用DNS预解析(pre-resolve),提前解析主机地址,以减少DNS延迟。

(4)采用TCP预连接(pre-connect),提前连接到目标服务器,以减少TCP握手延迟。

(5)采用资源预加载(prefetching),提前加载页面的核心资源,以加载页面显示。

(6)采用页面预渲染(prerendering),提前获取整个页面和相关子资源,这样可以做到及时显示。

(7)采用PYDY,多路复用技术,使用一个连接来传输页面中的多个资源。

(8)采用QUIC技术,改进UDP数据协议能力。

5e01815592f3c_html_bbbc71f34da4cdec.png

图 1

3.3浏览器缓存角度去做优化

(1)浏览器内核缓存主要包含MemoryCache、DiskCache,根据需求可以选择是否打开缓存。

(2)MemoryCache,顾名思义,就是将资源缓存到内存中,等待下次访问时不需要重新下载资源,而直接从内存中获取。实际项目需要根据系统内存大小调整MemoryCache大小达到最佳效果。

(3)DiskCache,顾名思义,就是将资源缓存到磁盘中,等待下次访问时不需要重新下载资源,而直接从磁盘中获取。实际项目需要根据系统磁盘大小调整DiskCache大小达到最佳效果。

3.4浏览器渲染角度做优化

软硬件渲染方式控制,浏览渲染一般有以下三种方式。

3.4.1软件渲染

(1)节省内存,适合处理2D方面的操作。(2)当需要更新小型区域时,只需要计算一个极小的区域(3)不适合处理HTML5中的新技术,如CSS3D、WebGL、视频Canvas等

3.4.2硬件加速的合成化渲染

(1)适合3D绘图(2)带有后端存储,加速渲染过程(3)消耗更多资源

3.4.3软件绘图的合成化渲染

(1)结合前面两种方式的优点需要针对不同场景选择控制不同的渲染模式达到最佳渲染性能

(2)浏览器底层图形层需要对接到平台OPENGL,DIRECTFB图形模块,针对OPENGL,DIRECTFB的性能优化可以提升绘图效率,绘图上下文和移植实现类

(3)分层处理,简化网页结构出重绘开销处理。

(4)减少重绘(计算布局,绘图,合成三步),计算布局,绘图占用时间长,设计页面尽量减少计算布局,绘图时间。

5e01815592f3c_html_64cff4823e05021d.png

图 2

3.5JS引擎角度来优化

(1)选择高性能JS引擎,GoogleV8性能由于JS引擎WebkitJavascriptCore。

(2)JS引擎使用JIT技术提升性能。

(3)JS引擎提供webwork并行处理能力提升应用并发处理性能(js和ui在同一线程)。

3.6JS应用角度来优化

主要优化关键呈现路径,下面是一些常见具体优化措施:

(1)js,css,图片等文件合并、压缩,减少资源下载和处理时间。

(2)使用异步(async)JavaScript资源,或使用延迟(defer)执行的JavaScript,一般

(3)避免运行时间长的JavaScript,耗时任务的拆分,chunk化运行。例如:使用定时器将大任务拆分为小任务,使得浏览器得到空隙做其他事情。

(4)避免使用CSSimport

(5)优化资源加载顺序,优先加载关键资源。

(6)避免使用CSS表达式(Expression)。

(7)复合图层化机制优化使用。

(8)使用WebWorkers后台线程。

3.7从开发调试工具角度,合理使用开发调试工具来协助分析性能问题

(1)使用tcpdump抓包工具,抓取页面访问网络包,然后使用Wireshark网络分析工具,可以分析出个资源网络下载时间,辅助定位分析网络性能优化问题。

(2)对于chromium内核浏览器,可以打开内核远程调试功能,在PCchrome浏览器上使用chrome://inspect连接嵌入式浏览器,使用ChromeTimeline工具,分析页面具体性能参数,使用Timeline工具可以协助分析以下信息:

1.页面渲染帧率分析,得到异常帧信息。

2.各类文件执行耗时/耗资源分析。

3.文件等待-下载时间。

4.页面呈现期间的事件列表。

5.某个帧/某个事件的详细信息分析。Timeline示意图如图2所示。

结束语

以上就是本文总结的从不同角度来优化浏览器性能的一般性分析总结,实际项目中需要根据实际情况做针对性优化。

参考文献

[1]安婧.基于UML的嵌入式系统系统级设计方法研究[J].通讯世界,2019,26(07):337-339.

[2]张志强.嵌入式系统在数控设备故障诊断系统中的实现[J].电子技术与软件工程,2019(14):189.

[3]吕兴朝,王泽同.基于ARM嵌入式系统QT软件模拟调试技术[J].电子技术与软件工程,2019(13):40-41.

[4]李会军.基于嵌入式系统的电力系统电气特性参数监控(英文)[J].机床与液压,2019,47(12):131-135+184.

[5]薛粤平.基于嵌入式系统的网络视频监控系统设计及网络信息安全[J].信息与电脑(理论版),2019(12):78-79.

[6]李涛,庄云龙,孙灿,张磊.基于嵌入式系统的流媒体后视系统设计[J].汽车电器,2019(06):40-41+44.

[7]江俊,韩梦,梁小芳,何翔.基于ARM的嵌入式数据采集与处理方法研究[J].现代信息科技,2019,3(11):89-91.

[8]杨昕欣,孙霁泽,王俊.在嵌入式系统教学中开展创新实践教育——以虚拟现实系统为案例[J].高教论坛,2018(03):28-31.