网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > J2ME > 核心技术 > J2ME网络应用程序性能探讨  

J2ME网络应用程序性能探讨

2008-07-10  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

 我在应用开发过程中,常常用到J2ME的网络应用,但限于J2ME无线设备的能力,我们不得不在可用性和性能之间作出选择,因此,我做了以下的试验,并由此总结出一点结论,以方便后来者不必再走弯路。 网管联盟bitsCN_com

      我的应用主要功能是测试J2ME设备的网络连接性能,因此,其他方面的测试概不涉及。

网管网www.bitscn.com

      我们知道,J2ME的通用连接框架为我们提供了http/socket/数据报/本地文件/线外等连接方式,但由于具体设备实现不同而导致程序开发方面的不便。举例来说,J2ME 的 MIDP 1.0版本中没有规定socket是必须的,但到了MIDP 2.0 socket才成为必须实现的协议。因此,现阶段大多数流行的设备都没有socket连接,这给我们编程带来了不利因素。在我们的测试程序中,SOCKET测试采用了StreamConnection类来建立连接,而走的是socket协议。分析一下程序即可知。

中国网管论坛bbs.bitsCN.com

      本文涉及了多种协议情况下的数据上传与下载,中文上传下载处理及网络传输计时、数据加密解密等方面的内容。为了做到通用,我在该程序的实现中没有用到特定设备的类。 网管联盟bitsCN_com

      本文给出的测试数据中第一个是建立连接所使用的时间,其余9项是连接建立后的数据传送时间。最后一项是前面9项数据的平均值。

网管论坛bbs_bitsCN_com

      测试结果数据比较:

网管联盟bitsCN@com

      机型,所用时间(秒),连接次数 网管u家u.bitscn@com

      SUN WTK 模拟器 网管联盟bitsCN@com

    HTTP   1.391  0.188  0.625  0.141  0.141  0.391  0.313  0.204  0.375  0.484  0.318 SOCK   0.500  0.531  0.157  0.531  0.360  0.172  0.313  0.641  0.437  0.266  0.378

网管网www.bitscn.com

      Nokia6610

中国网管论坛bbs.bitsCN.com

    HTTP  4.258  1.682  1.612  1.373  2.681  1.820  1.264  1.512  1.919  1.808  1.741 SOCK 未通过 网管下载dl.bitscn.com

      Nokia 7650

网管网www.bitscn.com

    HTTP   7.812  2.790  2.641  2.500  2.630  3.922  2.438  2.672  2.219  2.594   2.712 SOCK   1.719  1.312  1.609  3.359  3.360  1.375  1.781  3.313  1.250  1.329   2.076 网管u家u.bitsCN.com

      Nokia 6600

网管下载dl.bitscn.com

    HTTP   3.937  1.984  2.172  1.641  1.500  1.531  2.125  1.906  1.843  2.156  1.873 SOCK   3.188  1.281  1.406  1.266  1.833  1.688  1.719  1.688  1.625  1.703  1.579

网管网www_bitscn_com

      索爱P802 网管网www_bitscn_com

    HTTP   7.484  1.484  1.500  1.859  1.485  1.500  1.938  1.781  1.938  1.701  1.687 SOCK   1.360  1.328  1.281  1.625  1.406  1.592  1.140  1.281  1.312  1.297  1.362

网管bitscn_com

      从以上数据分析,我认为: 中国网管论坛bbs.bitsCN.com

      1、每一款机器每一种连接方式在同一时刻的网络连接速度波动都较大,即每一次连接都可能有导致网络连接滞后的不确定因素;

中国网管论坛bbs.bitsCN.com

      2、无论哪一种连接方式,无线设备的网络连接速度比PC连接要慢;

网管u家u.bitscn@com

      3、当前网络连接的时间超过了游戏者可接受的延迟,不适合做实时或即时性操作;

网管网www_bitscn_com

      4、随着中国移动EDGE的上线,或者联通公司的CDMA1X普及,实时性手机应用将会得到发展,但仍需要进一步测试; 网管论坛bbs_bitsCN_com

     5、在无线应用网络连接术语中有呼叫建立延迟(Call Setup latency)和通话信号传输延迟(Intra-call latency)两种,从以上数据可以看出,第一种延迟要比后一种延迟要明显一些,即第一次连接时用户需要等待更多的时间;

网管联盟bitsCN@com

     以下是本文的代码片断:

网管u家u.bitsCN.com

    public class Game extends MIDlet implements CommandListener {

网管论坛bbs_bitsCN_com

     private Display display;

网管u家u.bitscn@com

     private Form fmHTTP; 网管论坛bbs_bitsCN_com

     private Form fmHTTP2; 网管网www_bitscn_com

     private Form fmStream; 网管bitscn_com

     private Form fmSocket; 网管bitscn_com

     private Command cmdTest   = new Command(\"测试\", Command.BACK, 0); 网管u家u.bitscn@com

     private Command cmdStream = new Command(\"STREAM\", Command.ITEM, 1); 网管网www.bitscn.com

     private Command cmdSocket = new Command(\"SOCKET\", Command.ITEM, 2);

网管bitscn_com

     private Command cmdHTTP   = new Command(\"HTTP\", Command.ITEM, 3); 网管u家u.bitscn@com

     private TestThread testThread;

网管下载dl.bitscn.com

     public Game() {

网管网www_bitscn_com

         display = Display.getDisplay(this); 中国网管联盟bitsCN.com

         

网管下载dl.bitscn.com

         fmHTTP = new Form(\"1.HTTP测试\"); 网管下载dl.bitscn.com

         fmHTTP.addCommand(cmdStream); 中国网管联盟bitsCN.com

         fmHTTP.addCommand(cmdSocket);

网管u家u.bitsCN.com

         fmHTTP.addCommand(cmdHTTP2); 网管论坛bbs_bitsCN_com

         fmHTTP.addCommand(cmdExit);

网管联盟bitsCN@com

         fmHTTP.setCommandListener(this); 网管下载dl.bitscn.com

         fmHTTP.append(\"HTTP协议网络测试工具用于检测手机是否具备HTTP网络连接能力。第一行数据是由服务器产生的,经过UTF编码和DES加密传输到手机上的。\n\");

网管联盟bitsCN_com

             网管联盟bitsCN@com

         fmStream = new Form(\"3.STREAM测试\");

网管u家u.bitscn@com

         fmStream.addCommand(cmdHTTP); 网管联盟bitsCN@com

         fmStream.addCommand(cmdHTTP2); 中国网管联盟bitsCN.com

         fmStream.addCommand(cmdSocket);

网管bitscn_com

         fmStream.setCommandListener(this);

网管下载dl.bitscn.com

         fmStream.append(\"STREAM网络连接是走的socket端口,对应的服务器端口是10000。\n\"); 网管网www.bitscn.com

         testThread = new TestThread(getAppProperty(\"Server\").toLowerCase().trim()); 中国网管论坛bbs.bitsCN.com

      }

网管网www.bitscn.com

  网管联盟bitsCN_com

 

网管bitscn_com

     class TestThread implements Runnable { 网管网www.bitscn.com

       private String <A title=server href=\"http://www.google.cn/search?sbi=server&q=server&sbb=搜索&sa=搜索&client=pub-6430022987645146&forid=1&prog=aff&ie=GB2312&oe=GB2312&hl=zh-CN\" target=_blank>server</A>;

网管网www_bitscn_com

       private String message;

网管u家u.bitsCN.com

       private Form curForm; 网管网www_bitscn_com

       private int responseCode; 网管下载dl.bitscn.com

       private InputStream is2;

网管u家u.bitsCN.com

       private HttpConnection conHttp;

网管网www_bitscn_com

          

网管网www.bitscn.com

       private String keyOptimize;

网管联盟bitsCN@com

       private HttpConnection conOptimize; 中国网管联盟bitsCN.com

          

网管u家u.bitscn@com

       public TestThread(String <A title=server href=\"http://www.google.cn/search?sbi=server&q=server&sbb=搜索&sa=搜索&client=pub-6430022987645146&forid=1&prog=aff&ie=GB2312&oe=GB2312&hl=zh-CN\" target=_blank>server</A>) { 网管bitscn_com

         this.server = <A title=server href=\"http://www.google.cn/search?sbi=server&q=server&sbb=搜索&sa=搜索&client=pub-6430022987645146&forid=1&prog=aff&ie=GB2312&oe=GB2312&hl=zh-CN\" target=_blank>server</A>;

网管联盟bitsCN_com

       } 网管u家u.bitscn@com

            

网管bitscn_com

   网管下载dl.bitscn.com

网管u家u.bitscn@com


TAGs   探讨   性能   应用程序   网络       连接   private   new   测试      
 上一篇:没有了   下一篇:没有了
J2ME网络应用程序性能探讨 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: