
java性能编程
文章平均质量分 90
qcyycom
这个作者很懒,什么都没留下…
展开
-
java性能优化
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 一、通用篇 “通用篇”讨论的问题适合于大多数Java应用。 1.1 不用new关键词创建类的实例 用new关键词创建类的实例时,构造函数链中的所有构造函数都...2012-04-07 11:32:20 · 78 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(一)
企业java应用的性能调优是一项艰巨的、有时甚至是徒劳的任务,这是由现代应用的复杂性和缺少正规的调优方法导致的。现代企业应用与十年前的应用相比差距很大,如今这些应用支持多输入、多输出、复杂的框架和业务处理引擎。而十年之前,基于web的企业应用只是通过网络浏览器获得输入信息,然后与数据库或者遗留系统交互进行后台处理,最后把输出结果返回给浏览器(HTML)。现在,输入信息可以来自HTML浏览器、...原创 2012-04-12 22:01:49 · 111 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(二)
已存在应用 已存在应用跟一个全新应用相比,一个明显的优点是:真实的用户行为可以在实际生产环境中观察获得。根据请求的本质和它们如何被应用定义,可以通过两个选择定义最终用户行为: ● 访问日志 ● 最终用户体验监视器 对于大多数基于web的应用来说,访问日志提供了足够的资源分析服务请求的本质和它们的均衡关系。Web服务器可以配置成抓取最终用户请求...原创 2012-04-12 22:01:52 · 67 阅读 · 0 评论 -
Java性能调优笔记
调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络IO、内存。外部处理系统的性能不足:所调用的其他系统提供的功能或数据库操作的响应速度不够。资源消耗不多但程...原创 2012-04-14 21:32:37 · 91 阅读 · 0 评论 -
Java性能调优
一 基本知识 1.1 性能是什么 在性能调优之前,我们首先来了解一下性能是什么?关于性能,我想每个学习过Java的人都能列出几点,甚至可以夸夸其谈。在《Java TM Platform Performance》一书中,定义了如下五个方面来作为评判性能的标准: 1) 运算的性能——哪一个算法的执行性能最好? 2) 内存的分配——程序运行时需要耗费多少内存?...原创 2012-04-14 21:32:42 · 86 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(五)
后退调优 现在关于基于层次的和基于技术的等待点的一切都介绍完了,最后一步就是优化每一个等待点的配置。这一步有时被称为“后退调优”,其思想非常简单: 1、开放所有基于层次的等待点和外部依赖池——也就是配置它们允许过多的负载经过服务器。 2、根据应用生成均衡的和具有代表性的服务请求。 3、定位首先透支的等待点,通常是外部依赖,比如数据库。 4、减小...原创 2012-04-14 21:32:48 · 116 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(三)
基于等待的调优方法 建好了负载测试,接下来就是决定把调优精力放在何处。大多数调优指南都会提到“性能比率”或者度量之间的关系。例如,某调优指南可能强调说缓存命中率应该达到80%或者更高,因此负载测试应用时调整缓存大小直到命中率达到80%.然后处理列表上的下一个度量值,但是不要忘记验证调整新的参数不会影响之前已经调好的其他参数。 这项工作不仅困难而且效率很低。例如,调...2012-04-14 21:33:17 · 100 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(四)
基于技术的等待点 基于层次的等待点考虑的是在不同服务器之间传递请求,而基于技术的等待点关注的则是在单个服务器中如何通过有效地内部工作来传递请求。基于层次的调优,类似于IBM的队列调优,只是调整应用的有效第一步,如果忽略了调优应用服务器的内部工作,则会对应用性能产生巨大的影响。这就类似于调整JDBC连接池以发送最佳数量的负载给数据库,但是忽略了检查执行的SQL语句——如果查询...2012-04-14 21:33:48 · 70 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(三)
基于等待的调优方法 建好了负载测试,接下来就是决定把调优精力放在何处。大多数调优指南都会提到“性能比率”或者度量之间的关系。例如,某调优指南可能强调说缓存命中率应该达到80%或者更高,因此负载测试应用时调整缓存大小直到命中率达到80%.然后处理列表上的下一个度量值,但是不要忘记验证调整新的参数不会影响之前已经调好的其他参数。 这项工作不仅困难而且效率很低。例如,调整...原创 2012-04-15 23:08:00 · 83 阅读 · 0 评论 -
Java中的IO的性能优化
Java中的IO的性能优化在使用IO的时候注意一下细节,能使性能得到很大的优化.首先读写大文件,使用Buffer是肯定的了,使用方法,有下边两个 1 方法一: 2 public static void test1(String fileName) { 3 ...原创 2012-04-15 23:08:18 · 143 阅读 · 0 评论 -
Java性能调优工具
作为一名Java开发人员,应当始终关注应用程序的性能问题;同时也应该同能够帮助提高应用程序性能的人(如DBA,其实这经常是最重要的一个环节)一起协作;并尽可能地去关注Java性能方面的一些最佳实践。 这里将向大家以图解的形式介绍Java性能调优工具BEA JRockit Mission Control,但这里只介绍该工具的基本环境的搭建,让新人少走弯路,至于该工...原创 2012-04-12 22:01:47 · 116 阅读 · 0 评论 -
Java垃圾回收调优
在Java中,通常通讯类型的服务器对GC(Garbage Collection)比较敏感。通常通讯服务器每秒需要处理大量进出的数据包,需要解析,分解成不同的业务逻辑对象并做相关的业务处理,这样会导致大量的临时对象被创建和回收。同时服务器如果需要同时保存用户状态的话,又会产生很多永久的对象,比如用户session。业务越复杂的应用往往用户session包含的引用对象就越多。这样在极端情况下会发生两件...原创 2012-04-12 22:01:44 · 97 阅读 · 0 评论 -
Java性能调优工具“JRMC”的介绍
Java虚拟机(JVM)及垃圾收集器(GC)负责管理大多数的内存任务,但是Java应用系统中还是有可能出现内存泄漏。事实上,OOM之类的现象在大型项目中也是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的,然后对症下药。 那究竟是什么导致了 Java 程序中的内存泄漏呢?难道 Java 虚拟机的垃圾收集器不应该管理未使用的内存吗?是的,它会进行管理,但是垃圾收集的对象只能是...原创 2012-04-12 22:01:42 · 137 阅读 · 0 评论 -
java性能优化(2)
二、J2EE篇 前面介绍的改善性能技巧适合于大多数Java应用,接下来要讨论的问题适合于使用JSP、EJB或JDBC的应用。 2.1 使用缓冲标记 一些应用服务器加入了面向JSP的缓冲标记功能。例如,BEA的WebLogic Server从6.0版本开始支持这个功能,Open Symphony工程也同样支持这个功能。JSP缓冲标记既能够缓冲页面片断,也能够缓冲整个页面。当J...原创 2012-04-07 11:33:52 · 97 阅读 · 0 评论 -
java性能优化(3)
三、GUI篇 这一部分介绍的内容适合于图形用户界面的应用(Applet和普通应用),要用到AWT或Swing。 3.1 用JAR压缩类文件 Java档案文件(JAR文件)是根据JavaBean标准压缩的文件,是发布JavaBean组件的主要方式和推荐方式。JAR档案有助于减少文件体积,缩短下载时间。例如,它有助于Applet提高启动速度。一个JAR文件可以包含一个或者多个相...原创 2012-04-07 11:35:21 · 75 阅读 · 0 评论 -
Java性能的优化(上)
ava在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。赢得的赞叹主要是Java的跨平台的操作性,即所谓的”Write Once,Run Anywhere”.但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评。 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Se rvlet,E...原创 2012-04-07 11:41:33 · 77 阅读 · 0 评论 -
Java性能的优化(下)
三.优化JAVA程序设计和编码,提高JAVA程序性能的一些方法。 通过使用一些前面介绍过的辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的...原创 2012-04-07 11:42:25 · 73 阅读 · 0 评论 -
java代码性能优化一
使用正确的集合类 在我们的代码中常用的集合类是: HashMap 、 Hashtable 和 ConcurrentHashMap ,以及 List ( ArrayList )。 ConcurrentHashMap 在多线程时性能和并发性最好,多用于并发缓存。 Hashtable 的大部份方法都是同步的,多线程安全性最好,但是性能比较低...2012-04-09 10:18:19 · 95 阅读 · 0 评论 -
java代码性能优化二
正确使用递归 递归算法可以清晰表达复杂的算法,提高代码的可读性。但是递归性能通常比迭代低 的多。 在 IBM 现场测试就发现 BusinessClassDALC. internalSelectAncestorsOfClass 的递归性能比较差,后改成循环迭代后性能提升明显。 也并不是所有的递归性能都高于迭代,需要依据实际情况确定。 正确使用字符串连接操作 如果需要由多个...2012-04-09 10:19:54 · 97 阅读 · 0 评论 -
java代码性能优化三
使用局部缓存在 DALC 方法中,很多地方需要对返回的集合进行处理(设置每个实体相关的类名、包名、安全域名等),每个名字都需要从模型缓存中查询,如果集合中相当一部份名字 是重复的(很多情况下都是如此),每次都查询是没有必要的。通过在方法中添加局部缓存,这类操作的性能提升明显。比如:BusinessAttributeDALC.selectAllAttrsOfTheClass() 取类型...2012-04-10 13:14:06 · 71 阅读 · 0 评论 -
java代码性能优化四
正确的字符串比较 字符串比较方法的性能差别比较大。 String. equals( )>String. equalsIgnoreCase( )>String. toUpperCase( ).equals() 通常如果不区分大小写时,将一个字符串变量与常量值比较最好使用 “xxx”. equalsIgnoreCase...2012-04-10 13:17:07 · 628 阅读 · 0 评论 -
Java性能调优工具“JRMC”的介绍
Java虚拟机(JVM)及垃圾收集器(GC)负责管理大多数的内存任务,但是Java应用系统中还是有可能出现内存泄漏。事实上,OOM之类的现象在大型项目中也是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的,然后对症下药。 那究竟是什么导致了 Java 程序中的内存泄漏呢?难道 Java 虚拟机的垃圾收集器不应该管理未使用的内存吗?是的,它会进行管理,但是垃圾收集的对象只能是不...2012-04-11 13:00:13 · 123 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优(四)
基于技术的等待点 基于层次的等待点考虑的是在不同服务器之间传递请求,而基于技术的等待点关注的则是在单个服务器中如何通过有效地内部工作来传递请求。基于层次的调优,类似于IBM的队列调优,只是调整应用的有效第一步,如果忽略了调优应用服务器的内部工作,则会对应用性能产生巨大的影响。这就类似于调整JDBC连接池以发送最佳数量的负载给数据库,但是忽略了检查执行的SQL语句——如果查询需...原创 2012-04-15 23:08:27 · 88 阅读 · 0 评论