基于移动平台的应用软件性能优化技术研究

基于移动平台的应用软件性能优化技术研究

ID:9582362

大小:69.00 KB

页数:7页

时间:2018-05-02

基于移动平台的应用软件性能优化技术研究_第1页
基于移动平台的应用软件性能优化技术研究_第2页
基于移动平台的应用软件性能优化技术研究_第3页
基于移动平台的应用软件性能优化技术研究_第4页
基于移动平台的应用软件性能优化技术研究_第5页
资源描述:

《基于移动平台的应用软件性能优化技术研究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于移动平台的应用软件性能优化技术研究基于移动平台的应用软件性能优化技术研究由于移动智能系统是一个资源受限的系统,它对程序的运行空间和时间要求比桌面系统更为苛刻,因此,应用软件的优化对移动智能系统来说尤显必要和紧迫[1]。  本文主要研究的性能优化是主要指运行速度的优化。应用软件对其运行速度进行优化是指在充分掌握软、硬件特征的基础上,通过应用程序结构调整等手段来缩短完成指定任务所需的运行时间,主要应用在对实时性要求比较高的场合。  目前,移动智能系统的处理器在物理上也支持多线程的并发执行,采用适当数量的并发线程可以获得比单

2、一线程高的运行速度[2]。对于多核系统中的应用软件性能优化,本文研究了基于Android系统的并行程序设计算法和并行程序性能优化技术。  1我们通过一个实际应用来分析、研究基于移动平台的应用软件优化的技术  包括并行处理技术、多线程优化技术以及利用GPA(GraphicsPerformanceAnalyzers)工具辅助分析技术。  本例是一个求圆周率π的应用。有如下数学公式:  将积分公式表示为极限:  实际上Δx不可能做到无穷小,本文由.L.收集整理只能让Δx尽可能小,这样求出的结果越接近

3、π。我们用step表示一个Δx,则num_step=1/step尽量地大。考虑到f(x)=1/(x2+1)是一个凸函数,这里取一个中值来求和,即使用f[(i+0.5)/(num_steps)]来代替f[i/(num_steps)]求和,这样求出的和不会总是比实际值偏小。最后可以得出编写程序依据的公式为:  根据上面公式我们编写出相应的计算程序。  2原始应用(未经优化)研究与分析  我们首先根据上述公式直接推导出应用的计算代码,此代码是没有经过优化的,我们称其为原始应用,将其命名为SerialPi。  该

4、应用设计思路是:让计算π的任务放在辅助线程(这里称为任务线程)中运行,主活动上设置按钮来控制线程的运行,并用一个TextVieple.serialpi;  2publicclassMyTaskThreadextendsThread{  3privateHandlermainHandler;  4publicstaticfinalintMSG_FINISHED=1;//定义表示"计算结束"的消息类型  5privatestaticfinallongnum_steps=200000000;//公式中的num_steps变

5、量,总步数  6privatestaticfinaldoublestep=1.0/num_steps;//公式中的step变量,步长  7publicstaticdoublepi=0.0;//π的计算结果    20publicvoidrun()  21{  22doublex,sum=0.0;  23longi;  24for(i=0;i<num_steps;i++){  25x=(i+0.5)*step;  26sum=sum+4.0/(1.0+x*x);  27}  28pI=step*sum;  29M

6、essagemsg=nesg.ainHandler.sendMessage(msg);//发送消息}  第22行至第28行是根据计算公式书写的计算π的代码。这里x变量是函数f(x)=1/(x2+1)的自变量x,sum是Σ的累积变量。累积完Σ后,最后在第28行,让π=step∑算出最后结果。【在线程的run函数中,一旦计算完成,在第29行开始,就向主线程发送计算完成的消息】  2.2编辑主程序的源代码文件MainActivity.java,让其控制线程的运行,并显示计算结果,其主要

7、代码如下:  1package.example.serialpi;  2publicclassMainActivityextendsActivity{  13privateMyTaskThreadmyThread=null;  14privateTextVieHandler;;  16privatelongend_time;  17privatelongtime;  18privatelongstart_time;    38mHandler=nesg){  40ssg.e=System.currentTimeMillis

8、();  44time=end_time-start_time;  45Strings="运行结束,Pi="+MyTaskThread.pi+"耗时:"  46+MyTaskThread.msTimeToDatetime(time);  47tv_TaskOutputInfo.setText(s);  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。