|
|
利用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)依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请即时与我们联系, 注明网址及文章,我们会即时处理或删除, 感谢您的合作!
|
【大 中 小】
【返回站点首页】【打印本页】【关闭本页】
|
|
|
|
|
资料搜索 |
|
|
|
热门文章 |
|
|
|
前面文章 |
|
|
|
|