当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: Java性能的优化(上) 黄伟峰 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。
 

 

 ·网络游戏中的网络编程    »显示摘要«
    摘要:谈谈网络游戏中的“网络”编程????近段时间总是有不少人问我关于完成端口模型的一些资料,很多时候其实我很郁闷,为什么大家会选择使用完成端口呢?或者说很多时候他们竟为了使用完成端口,而使用windows作为网络游戏服务器平台,还一开口罗列出一堆使用windows平台的网络游戏案例。有些兄弟跟我一直争论“windows?2003?server很猛的,效率很高的......
 ·digester解析xml文档sample    »显示摘要«
    摘要:解析xml文档 digester的使用相当简单,请参看如下的sampledigester类中的注释,这里不再拗述: /*============================================================ * copyright:www.skyinn.org (c) 2002 - 2003 all rights reserved. * file......


(代码级)Java性能的优化
java性能的优化(上)

黄伟峰 【程序编程相关:请教:调试时出现的问题

【推荐阅读:PHP学习日记

【扩展信息:使用ASP.NET中的一点体会[关于代码

java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是java的跨平台的操作性,即所谓的”write once,run anywhere”.但由于java的性能与运行效率同c相比,仍然有很大的差距,从而引来了很多的批评.

对于服务器端的应用程序,由于不大涉及到界面设计与程序的频繁重启,java的性能问题看似不大明显,从而一些java的技术,如jsp,se rvlet,ejb等在服务器端编程方面得到了很大的应用,但实际上,java的性能问题在服务器端依然存在.下面我将分四个方面来讨论java的性能与执行效率以及提高j ava性能的一些方法.

一.关于性能的基本知识

1.性能的定义

在我们讨论怎样提高java的性能之前,我们需要明白“性能“的真正含义.我们一般定义如下五个方面作为评判性能的标准.

1) 运算的性能----哪一个算法的执行性能最好

2) 内存的分配----程序需要分配多少内存,运行时的效率与性能最高.

3) 启动的时间----程序启动需要多少时间.

4) 程序的可伸缩性-----程序在用户负载过重的情况下的表现.

5) 性能的认识------用户怎样才能认识到程序的性能.

对于不同的应用程序,对性能的要求也不同.例如,大部分的应用程序在启动时需要较长的时间,从而对启动时间的要求有所降低;服务器端的应用程序通常都分配有较大的内存空间,所以对内存的要求也有所降低.但是,这并不是所这两方面的性能可以被忽略.其次,算法的性能对于那些把商务逻辑运用到事务性操作的应用程序来讲非常重要.总的来讲,对应用程序的要求将决定对各个性能的优先级.

2.怎样才能提高java的性能

提高java的性能,一般考虑如下的四个主要方面:

(1) 程序设计的方法与模式

一个良好的设计能提高程序的性能,这一点不仅适用于java,也适用也任何的编程语言.因为它充分利用了各种资源,如内存,cpu,高速缓存,对象缓冲池及多线程,从而设计出高性能与可伸缩性强的系统.

当然,为了提高程序的性能而改变原来的设计是比较困难的,但是,程序性能的重要性常常要高于设计上带来的变化.因此,在编程开始之前就应该有一个好的设计模型与方法.

(2) java布署的环境.

java布署的环境就是指用来解释与执行java字节码的技术,一般有如下五种.即解释指令技术(interpreter technology),及时编译的技术(just in time compilier technology), 适应性优化技术(adaptive optimization technology), 动态优化,提前编译为机器码的技术(dynamic optimization,ahead of time technology)与编译为机器码的技术(translator technology).

这些技术一般都通过优化线程模型,调整堆与栈的大小来优化java的性能.在考虑提高java的性能时,首先要找到影响java性能的瓶颈(b ottlenecks),在确认了设计的合理性后,应该调整java布署的环境,通过改变一些参数来提高java应用程序的性能.具体内容见第二节.

(3) java应用程序的实现

当讨论应用程序的性能问题时,大多数的程序员都会考虑程序的代码,这当然是对的,当更重要的是要找到影响程序性能的瓶颈代码.为了找到这些瓶颈代码,我们一般会使用一些辅助的工具,如j probe,optimizit,vtune以及一些分析的工具如towerj performance等.
...   下一页
 ·社会学和游戏制作的关系。    »显示摘要«
    摘要:回想起当年我玩各种网络游戏的时候,一进游戏,什么都没有,眼前看着一堆穿着金光闪闪的漂亮装备的人跑来跑去,看到有人在不停的刷屏叫买叫卖的打着各种广告,有一种和现实社会截然不同的感觉,实打实的觉得自己在这个虚拟社会里面是个新手。虽然游戏都设置有密语等功能,但是这些对于新手来说,几乎是多余的,一开始总是一个人在孤单的打低级的怪物,这个时候的同伴只可能有两种人,一种是和你一样的新手,另外一种,则是练小号的......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE