J2ME移动软件程序设计 第7章 J2ME应用程序的性能优化.ppt

上传人:s****8 文档编号:67277559 上传时间:2022-12-24 格式:PPT 页数:17 大小:259KB
返回 下载 相关 举报
J2ME移动软件程序设计 第7章 J2ME应用程序的性能优化.ppt_第1页
第1页 / 共17页
J2ME移动软件程序设计 第7章 J2ME应用程序的性能优化.ppt_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《J2ME移动软件程序设计 第7章 J2ME应用程序的性能优化.ppt》由会员分享,可在线阅读,更多相关《J2ME移动软件程序设计 第7章 J2ME应用程序的性能优化.ppt(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、china_ 第第7章章 J2ME应用程序的性能优化应用程序的性能优化 J2ME移动软件程序设计移动软件程序设计china_ 知识点:l代码优化的一些基准l优化内存使用l优化代码运行速度l优化用户界面l合理地打包应用程序lJ2ME的程序兼容性本章导读:本章主要介绍如何优化一个J2ME程序的性能。对J2ME中字符串编程、用户界面编程、MIDlet打包和加密等工作进行了详细讨论,并对如何提高性能给出了切实可行的方法。J2ME移动软件程序设计移动软件程序设计china_ 7.1.1 代码优化基准概述代码优化基准概述 7.1 代码优化的一些基准代码优化的一些基准 l在J2SE(Java 2的标准版)中

2、,可以提供许多工具来对代码性能、代码运行瓶颈、内存使用情况等进行检测。lJ2ME中不存在这些工具,需要使用一些传统的方法来测试和优化代码。l在MIDP的API中提供了几种对测试和优化代码很有用的方法。J2ME移动软件程序设计移动软件程序设计china_ 7.1.2 内存测试基准内存测试基准 l使用java.lang.Runtime中所提供的两种方法 public long freeMemory();给出当前有多少字节的剩余内存可以使用。public long totalmemory();给出在当前运行环境中总共的存储器大小。J2ME移动软件程序设计移动软件程序设计china_ l例:查明一个对

3、象到底需要使用多少内存(变量size中)Runtime runtime=Runtime.getRuntime();long before,after;System.gc();before=runtime.freeMemory();Object newObject=new String();after=runtime.freeMemory();long size=before-after;J2ME移动软件程序设计移动软件程序设计china_ 7.1.3 时间测试基准时间测试基准 l采用传统的方式测试运行速度long start,finish;start=System.currentTimeMil

4、lis();someMethod();finish=System.currentTimeMillis();long duration=finish-start;J2ME移动软件程序设计移动软件程序设计china_ 7.2.1 优化内存概述优化内存概述7.2 优化内存使用优化内存使用 l在J2ME环境中内存总是稀缺的l内存分配和垃圾收集器的运行将可能使应用程序的运行速度变慢l在J2ME环境中小心使用内存 J2ME移动软件程序设计移动软件程序设计china_ 7.2.2 创建和删除对象创建和删除对象 l每当创建一个新对象时,内存将被重新分配,而分配内存将花费很多时间。l在一个循环体开始处创建的对象

5、,有可能在循环体的尾部被释放。这就意味着,每一次循环体的执行就将激发系统运行一次垃圾收集器,这样将导致循环体的执行速度与垃圾收集器的运行速度差不多。l解决方法:将对象的创建从循环体内放在循环体外。J2ME移动软件程序设计移动软件程序设计china_ 7.2.3 字符串和字符串缓存字符串和字符串缓存 l使用“+”操作符连接两个字符串时,有可能导致新的字符串对象的创建,而新字符串对象的创建又将触发内存管理工作 l解决方法:放弃使用字符串和字符串缓存,而使用字符数组。J2ME移动软件程序设计移动软件程序设计china_ 7.2.4 正确处理内存不足正确处理内存不足 l当一个对象被创建时,如果发生内存

6、不足的错误,MIDlet将抛出java.lang.OutOfMemoryError异常。l解决方法:使用try/catch来拦截异常,并当异常出现时给用户合理的解释。J2ME移动软件程序设计移动软件程序设计china_ 7.3.1 优化循环优化循环 7.3 优化代码运行速度优化代码运行速度 l一切可以在循环体外部预先计算好的值都不应该放到循环体内部计算。l例:避免在循环体中对v.size()的重复调用l优化前l优化后for(int i=0;i v.size();i+)Object o=v.elementAt(i);/处理对象oint size=v.size();for(int i=0;i si

7、ze;i+)Object o=v.elementAt(i);/处理对象oJ2ME移动软件程序设计移动软件程序设计china_ 7.3.2 使用数组代替对象使用数组代替对象 l矢量和哈希表既简单又方便,但它们会增加大量的系统开销。l数组通常比集合类运行得更快、更可靠。J2ME移动软件程序设计移动软件程序设计china_ 7.3.3 使用缓存使用缓存I/O l应该尽量避免从数据流中读写一个字节。l尽量使用带有缓冲的流读写方法。lBufferedReader和BufferedWriter两个类可以提供内置的缓冲I/O功能,但在J2ME中没有提供这两个类,因此如果要提高I/O效率,就应该自己设计符合要

8、求的带有缓冲的I/O方式。J2ME移动软件程序设计移动软件程序设计china_ 7.3.4 主动清理内存主动清理内存 l一旦不再使用所用内存,就应该立即释放,以提高应用程序的性能。l如果有数组不再使用了,设置数组指向null,使数组能被垃圾收集器收集。l如果程序需要马上进行内存垃圾搜集工作,显式地调用System.gc()方法来实现。J2ME移动软件程序设计移动软件程序设计china_ 7.4 优化用户界面优化用户界面l在台式计算机上能很快执行完毕的程序,在移动电话上都可能需要很长的时间才执行完。lMIDlet的界面设计必须能让用户感到程序在运行,而不是长时间没有任何反应的等待。l在程序执行需

9、要较长时间的地方加入一些进度指示器(例如标尺),这样用户才能够知道程序在执行需要大量时间的运算。l在MIDlet的界面设计中,基本的准则是:简单明了、使用快捷、响应及时和信息丰富。J2ME移动软件程序设计移动软件程序设计china_ 7.5 合理地打包应用程序合理地打包应用程序 l仅仅打包使用的代码 l使用代码加密保护程序 J2ME移动软件程序设计移动软件程序设计china_ 7.6 J2ME的程序兼容性的程序兼容性 lJSR全称Java Specification Request,是任何个人或团体向JCP(Java 社区进程)提出增加一个标准化技术规范的正式请求。l JSR兼容性的测试工具 J2ME移动软件程序设计移动软件程序设计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com