java

位置:IT落伍者 >> java >> 浏览文章

Java应用性能的提升


发布日期:2021年10月20日
 
Java应用性能的提升

从Sun实验室中的GCspyAceJFluid项目看

沈捷

年James Gosling发明至今Java的发展早已逾越了一门单纯计算机语言的范畴成为了一个涵盖范围非常广的平台在下面的篇幅里笔者会就一些有趣的带有研究性质的项目进行介绍

Ace_:NameTool的业务对象及逻辑

在Sun的实验室里有一些有意思的项目在进行着比如GCspyGCspy是一个使内存管理工作可视化的框架(当然它会包括一个实现了这个框架的工具)我们可以用它动态地考察系统的内存分配垃圾回收等行为如果用户需要它甚至可以把追蹤下来的内存管理行为进行回放(replay)为了把对被观察系统的影响减至最低GCspy采用clientserver结构以socket作为通信方式在这种方式下客户端还可以灵活地决定何时跟服务器连接在图形客户端上我们可以以不同的视图来观察系统的内存管理工作除了动态的观察系统行为GCspy还可以对指定的一段时间做出趋势图这可以使我们对系统的内存管理有一个整体的了解适当地应用GCspy的这些功能对我们调整GC参数会非常有启发

其他还有一些处于研究阶段的项目首先看看Ace通过这个名字我们便可以感觉到这个项目的目标——完成一个复杂的项目就像通过一记Ace球得分一样简单Ace的目的是为企业级应用建立一种规格语言(Specification Language)以及与之相配套的编译器这种语言与架构无关这使得精通业务的专家可以用它去描述应用系统的功能用它写出一份简练的系统规格说明而不用涉及任何与系统架构相关的实现细节之后我们可以用Ace的编译器来生成实现和部署这一应用所需的所有代码和描述文件与现有IDE中的代码生成向导(wizard)不同我们无需对Ace编译器产生的代码作任何编辑和修改对于不同的中间件产品不同的系统架构我们只需重新编译一遍用Ace规格语言所写的源代码不仅如此Ace编译器还具有代码优化功能一份Ace规格说明由两部分组成分别是应用程序的业务对象及逻辑和应用程序的业务流程听起来是不是有些难以置信?到Sun的网站上()去看看用Ace开发的Java Pet Store看看在短短的行代码里Ace到底帮我们做了些什么

接下来我们看看JFluidJFluid是一个动态性能分析工具(dynamic application profiling tool)和现有的分析工具不同JFluid的操作完全发生在应用正常运行的过程中也就是所谓的onthefly profiling在程序的运行时间(run time)我们可以随时打开关闭重新配置附属在JVM上的JFluidJFluid可以动态地把一段用于分析的字节码附加到正在运行的Java代码中而这段Java代码可以是正在运行的应用系统中任意指定的一个子集任意一个或多个方法被加进去的JFluid字节码会产生用于分析的事件这些事件被记录下来之后会据此产生性能报告报告会以我们通常所看到的格式(比如在OptimizeIt里那样)显示出来通过这个工具我们可以花费更少的努力更灵活地得到程序运行的动态信息不过由于JFluid需要用到虚拟机的动态字节码(dynamic bytecode instrumentation)功能所以它只能运行在具有这一功能的尚未正式发布的新版HotSpot JVM上

上一篇:Java集合的缺点:类型未知

下一篇:详细讲解怎样在Java中运行其它应用程序