最近更新   设为主页   利用Java创建高性能的应用程序和服务器 加入收藏  
计算机基础教程网 本站招聘  
 [投稿登 陆]    [问题求解或论坛登 陆]
ITWEN首页操作系统网络冲浪办公软件网页设计图形图象认证考试程序设计数据库其它文章交流论坛  
  当前位置:ITWen >>  Java语言  >>  利用Java创建高性能的应用程序和服务器
利用Java创建高性能的应用程序和服务器
作者:ItWen收集整理    来源:www.itwen.com    更新时间:2006-11-18
[ 收藏此页到: 天天 | 和讯 | 博采 | ViVi | 狐摘 | 我摘 ]  
  

利用Java创建高性能的应用程序和服务器

内容:
内存访问方式
额外同步
额外的对象创建与垃圾收集
额外的错误检查
一般目的的类库
结论与未来的工作

一次尝试性的研究
Sandeep K. Singhal
IBM T.J. Watson Research Center
Binh Q. Nguyen, Richard Redpath, Michael Fraenkel, Jimmy Nguyen
IBM Software Solutions
2001 年 5 月
由于 Java 的可移植性、易用性和与 HTML的紧密结合, Java 已成为动态网页内容的首选编程语言。 Java被用来产生网页上的动画效果,在服务器端动态的选择、格式化网页内容,并用作面向交易应用软件的前端来检查终端用户的输入信息。 Java 还是作为在虚拟现实模型 (VRML)[HW96]语言中设计三维动作和在这种虚拟环境 [VRML97]中提供多用户交互的重要语言。
Java除了以上提及功用以外的,还很少被用来开发需要高性能和高吞吐量的应用程序与服务器。开发人员很少在这些情况下选择 Java的主要原因是由 Java代码编译出来的程序的运行速度无法与传统的编译语言(如C或 C++)相比。 大规模的程序中的垃圾收集和JIT (Just-In-Time)编译方面的局限性也造成开发人员对 Java性能的怀疑。
我们结合了精心的程序设计和有针对性的优化,目前已克服了许多这些方面的不足。本文介绍了利用 Java开发高吞吐量的应用程序和服务器,并说明了 Java应用程序能够及其方便的得到优化以达到用传统语言,如C和 C++,编写的代码的性能。这些结果都是建立在我们使用 Java开发InVerse (Interactive Universer) 服务器所获得的经验之上。
我们的测试环境是一部拥有48MB内存、运行Windows 95的奔腾150MHz计算机,使用由Sun公司提供的Java 1.1.4编译器和虚拟机,并带-O标志进行优化编译。计时是通过在一紧缩循环(tight loop)中执行目标代码会和调用 System.currentTimeMillis() 捕获计时信息而得到的。我们还利用 Just-In-Time (JIT) 代码生成器 ( 在运行阶段将 Java byte 代码转换为本地指令 ) 来进行测试。

其它的章节介绍了 Java 应用程序开发者会遇到的一些主要的性能问题,以 及优化这些问题的方法:内存访问方式、额外同步化、额外对象创建和垃圾收集、额外错误处理和对一般类库的依赖性。虽然这些内容很多都适应与其它的面向对象编程语言,但与 Java开发者有着密切的关系。文章的结尾介绍了 InVerse 服务器应用程序的整体性能将如何通过优化这些方面得到改进,并讨论了这一领域的今后工作。
内存访问方式
在当前处理器速度与内存访问时间差距越来越大的情况下,高性能应用程序的开发者们越来越清醒的认识到最小化内存访问时间的重要性。在诸如C++之类的编译型语言来说,因为内 存地址是预先算出的,因此对不同的变量来说内存访问时间几乎是相同的。最坏的情况也只 是经过一次间接寻址。但对Java来说,应用程序的效率则相当程度上要受到其访问的变量的 类型以及访问方式的影响。例如,栈变量可以直接寻址,而实例变量则一般需要经过额外的 间接寻址过程。
读 写
无 JIT
本地方法变量
对象的实例变量
父类实例变量
超父类实例变量
类的静态变量 1.00
1.92
1.96
1.83
1.23 1.00
2.14
2.14
2.14
1.52
有 JIT
本地方法变量
对象的实例变量
父类实例变量
超父类实例变量
类的静态变量 1.00
1.64
1.73
1.73
1.23 1.00
1.99
2.14
2.21
1.62
表1显示对本地方法(栈)变量、当前类及父类中实例变量和静态类变量的访问时间 如表中所示,对本地方法变量的读写速度比 对其类型的变量要快,而对静态变量的读 写速度要比对实例变量要快。而在有 JIT的 情况下这种差别更加明显。其他访问类型 虽有差别但差别很小,不足在此加以讨论。 变量访问时间的这种模式告诉我们 动态的数据地址转换具有较高的实用价值.
表 1: 不同变量类型及访问模式的访问时间


   本篇文章共4页,此页为首页   下一页


  引用提示:
  内容页面:利用Java创建高性能的应用程序和服务器 --- Java语言
  作者:ItWen收集整理
  来源:www.ITWEN.com 计算机基础教程网
  

  版权申明:
  本网站所有内容,未经注明的,版权一律属于计算机基础教程网(ITWEN.com)制作署所有。转载引用本网站的原创文章,请务必注明信息来源,标明“计算机基础教程网(ITWEN.com)”字样。
  计算机基础教程网(ITWEN.com)依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请即时与我们联系, 注明网址及文章,我们会即时处理或删除, 感谢您的合作!   


】 【返回站点首页】【打印本页】【关闭本页
     资料搜索
     热门文章
·在C#中应用MapObjects渲
·实现接口4
·通过.NET访问 Oracle数据
·Java下的Framework编写
·CorelDRAW 11抢鲜试用手
·Photoshop小技巧之七1
·用Photoshop实现立体感效果
·我的寒假作品接近完工了。Fligh
·原来win+apache实现ssl
·在Redhat7.3.8.09.0
·学不会的JAVA,消不了的忧愁之五
·JSP/Servlet 中的汉字编
·用Visual C#中轻松浏览数据
·Iframe的妙用
·输入显示框中循环出现文字
     前面文章
·处理JSP中的中文
·ThinkinginJava6
·在RedHat7.0下安装Orac
·实用的检测分辨率的程序代码
·CSS2参考之五
·.net中清除EXCEL进程最有效
·关于include的一些简单介绍
·.NET中的密码学--对称加密
·骨干ISP配置实例之ISP1BB4
·COM之后的世界(DonBox访谈
·用XML和XSL来生成动态页面
·建站之始 始于装IIS
·用FreeBSD+IPFW配置防火
·Windows95/98,NT下如
·小窗口大学问--玩转弹出窗口2
·photoshop制作属于自己的星
·模拟office菜单
·纯猝使用VBScript来实现加密
·什么是Blog 什么是RSS新闻聚
·五种查询Internet连接状态含

文章: 利用Java创建高性能的应用程序和服务器 已经被浏览了 次。
免责声明 | 关于我们 | 广告联系 | 友情链接 | 帮助设置 | 网站导航 | 最近更新 | 共同合作
计算机基础教程网(www.ITwen.com) 版权所有
copyright 2005-2006,All Rights Reserved
计算机基础教程网