[size=medium]转载自 [url]http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2611083L05000[/url][/size]
[size=medium]在进行java软件开发中尽可能的向下列准则靠拢,尽可能的提高软件性能。[/size]
[quote]
Java 性能准则
在编写Java应用程序时,以下是基本的准则:
* 使用字符串缓冲区而不是字符串连接,当进行连续字符串操作时要避免不必要地创建那些最终必须经过垃圾回收的对象。
* 避免连续写入 Java 控制台以减少字符串操作、文本格式化以及输出的花费。
* 必要时通过使用变量的原语类型来避免对象创建和操作的花费。
* 经常高速缓存用过的对象以减少必须的垃圾回收数量,并且避免重复创建对象的需求。
* 尽可能分组本地操作以减少 Java 本地接口(JNI)的调用。
* 只有在必要时再使用同步方法,以此限制在 JVM 和操作系统中的多任务。
* 除非必要避免调用垃圾回收器。如果您必须调用它,只有在空闲时间或一些非关键阶段再这样做。
* 可能时使用整型而不是长整型,因为 32 位操作快于 64 位。
* 可能时申明方法为 final。JVM 处理 final 的方法较好。
* 当创建常量时为了减少变量需要初始化的次数,使用关键字 static final。
* 避免不必要的“casts”和“instanceof”引用,因为在 Java 中销毁操作不是在编译时而是在运行时执行的。
* 当数组可以满足要求时尽可能避免使用向量。
* 从向量末端添加和删除项以得到较高性能。
* 使用 -O 选项编译 Java 文件。
* 避免在循环中分配对象。
* 使用缓冲区 I/O 并调优缓冲区大小。
* 使用连接池和准备缓存声明进行数据库访问。
* 使用连接池连接到数据库并重用连接而不是重复打开和关闭连接。
* 最大化线程生存期并最小化线程创建和销毁循环。
* 最小化共享资源的争用。
* 最小化短生存期对象的创建。
* 避免远程方法调用。
* 使用回调以避免阻塞远程方法调用。
* 避免创建只用来访问一个方法的对象。
* 尽可能保持同步方法处于循环外。
* 在数据库中以 Unicode 形式存储字符串和字符数据。
* 记录 CLASSPATH 以便最常用的库先出现。
[/quote]
[size=medium]在进行java软件开发中尽可能的向下列准则靠拢,尽可能的提高软件性能。[/size]
[quote]
Java 性能准则
在编写Java应用程序时,以下是基本的准则:
* 使用字符串缓冲区而不是字符串连接,当进行连续字符串操作时要避免不必要地创建那些最终必须经过垃圾回收的对象。
* 避免连续写入 Java 控制台以减少字符串操作、文本格式化以及输出的花费。
* 必要时通过使用变量的原语类型来避免对象创建和操作的花费。
* 经常高速缓存用过的对象以减少必须的垃圾回收数量,并且避免重复创建对象的需求。
* 尽可能分组本地操作以减少 Java 本地接口(JNI)的调用。
* 只有在必要时再使用同步方法,以此限制在 JVM 和操作系统中的多任务。
* 除非必要避免调用垃圾回收器。如果您必须调用它,只有在空闲时间或一些非关键阶段再这样做。
* 可能时使用整型而不是长整型,因为 32 位操作快于 64 位。
* 可能时申明方法为 final。JVM 处理 final 的方法较好。
* 当创建常量时为了减少变量需要初始化的次数,使用关键字 static final。
* 避免不必要的“casts”和“instanceof”引用,因为在 Java 中销毁操作不是在编译时而是在运行时执行的。
* 当数组可以满足要求时尽可能避免使用向量。
* 从向量末端添加和删除项以得到较高性能。
* 使用 -O 选项编译 Java 文件。
* 避免在循环中分配对象。
* 使用缓冲区 I/O 并调优缓冲区大小。
* 使用连接池和准备缓存声明进行数据库访问。
* 使用连接池连接到数据库并重用连接而不是重复打开和关闭连接。
* 最大化线程生存期并最小化线程创建和销毁循环。
* 最小化共享资源的争用。
* 最小化短生存期对象的创建。
* 避免远程方法调用。
* 使用回调以避免阻塞远程方法调用。
* 避免创建只用来访问一个方法的对象。
* 尽可能保持同步方法处于循环外。
* 在数据库中以 Unicode 形式存储字符串和字符数据。
* 记录 CLASSPATH 以便最常用的库先出现。
[/quote]