性能优化
dww410
这个作者很懒,什么都没留下…
展开
-
如何优化JAVA程序开发,提高JAVA性能?
<br /><br /> 通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。<br /> 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。<br /> 1.对象的生成和大小的调整。<br /> JAVA程序设计中一个普遍的问题就是没有好好的利用JA转载 2011-05-31 15:07:00 · 558 阅读 · 0 评论 -
Java基础:减少对象的创建提高java性能
<br /><br />许多通常的 Java 性能问题都起源于在设计过程早期中的类设计的思想, 早在许多开发者开始考虑性能问题之前. 在这个系列中, Brian Goetz 讨论了通常的 Java 性能上的冒险以及怎么在设计时候避免它们. 在第二部分, 他讨论了减少临时对象创建的一些技术。<br /> 虽然许多程序员把性能管理一直推迟到开发过程的最后, 性能考虑应该从第一天起就和设计周期结合在一起. 这个系列探索一些早期的设计思想能够极大影响应用程序性能的方法.在这篇文章里, 我继续探索大量临时对象创建的转载 2011-05-31 15:27:00 · 1350 阅读 · 0 评论 -
为JAVA性能而设计(3)
<br />为性能而设计, 第三部分: 远程接口<br /><br /> 学习怎样在设计 java 类的时候避免性能冒险.<br /><br />概述<br /><br /> 许多 Java 的通常性能问题来源于设计过程早期的类设计想法中, 早在开发者开始考虑<br /> 性能问题之前. 在这个系列中, Brian Goetz 讨论了一些通常的 Java 性能的冒险, 解<br /> 释了怎样在设计时间避免它们. 在这篇文章中, 它检验了远程应用程序中的特定的性能<br /> 问题.<br />转载 2011-05-31 16:19:00 · 527 阅读 · 0 评论 -
Java程序性能优化之找出内存溢出元凶
<br /><br /> 我曾经在刚入行的时候做过一个小的swing程序,用到了java SE,swing,Thread等东东,当初经验少也没有做过严格的性能测试,布到生产环境用了一段时间后发现那个小程序有时候会抛java.lang.OutofMemoryError异常,就是java的内存溢出。当时也上网查了不少资料,试过一些办法,代码也稍微做了些优化,但是有一个问题我始终是找不到解决的方案 - 不知为什么子窗体关闭后java的垃圾回收机制无法回收其资源,因为这个Java程序可能要经常开关一些子窗体,转载 2011-05-31 15:33:00 · 826 阅读 · 0 评论 -
Java性能的十一个用法
<br />private static Credit BaseCredit = new Credit();public static Credit getNewCredit() {return (Credit) BaseCredit.clone();}<br />Java语言习惯用语<br /> 1。循环<br /> ■ 在重要的循环里,消除循环终止判断时的方法调用。<br /> 例如:将<br /> for(int i=0; i<collection.size();i++){ ... }<b转载 2011-05-31 15:43:00 · 555 阅读 · 0 评论 -
Java性能的优化(上)
<br />Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评。赢得的赞叹主要是Java的跨平台的操作性,即所谓的”Write Once,Run Anywhere”.但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评。 <br /> 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Servlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务器端依然转载 2011-05-31 15:46:00 · 687 阅读 · 0 评论 -
为JAVA性能而设计(1)
为性能而设计, 第一部分: 接口事宜 From Java World. [b]在设计 Java 类的时候避免性能上的冒险[/b] [b][u]概要[/u][/b] 许多通常的 Java 性能问题都起源于在设计过程早期中的类设计的思想, 早在许多开发者 开始考虑性能问题之前. 在这个系列中, Brian Goetz 讨论了通常的 Java 性能上的冒险 以及怎么在设计时候避免它们. By Brian Goetz 翻译 by SuperMMX 许多程序员在开发周期的后期才可是考虑性能管理.转载 2011-05-31 15:49:00 · 608 阅读 · 0 评论 -
Java 6中的线程优化真的有效么?
<br /><br /> 介绍 — Java 6中的线程优化 <br /> Sun、IBM、BEA和其他公司在各自实现的Java 6虚拟机上都花费了大量的精力优化锁的管理和同步。诸如偏向锁(biased locking)、锁粗化(lock coarsening)、由逸出(escape)分析产生的锁省略、自适应自旋锁(adaptive spinning)这些特性,都是通过在应用程序线程之间更高效地共享数据,从而提高并发效率。尽管这些特性都是成熟且有趣的,但是问题在于:它们的承诺真的能实现么?在转载 2011-05-31 15:53:00 · 815 阅读 · 0 评论 -
对Java提供的两个Map进行的性能测试
<br /> 对java 提供的两个Map 进行了性能测试发现效果还可以10万个key的Map 查找 起来也不是很慢,大概50--60毫秒<br /><br /> 还打算自己手工做些性能优化,将不同前缀的KEY分开到几个小MAP里 发现性能没有改观,纳闷中。。<br /><br /> 分开到几个小MAP里,然后小的里面还可以再分,分分分,形成一个按字母检索树<br /><br /> 突然想起,Java Pro 上有篇文章里说过Map系列的内置 性能优化方式,好象就是和我说的这种思想是一致的<br /转载 2011-05-31 15:54:00 · 927 阅读 · 0 评论 -
Java内存管理的9个小技巧
<br /><br /> 很多人都说“Java完了,只等着衰亡吧!”,为什么呢?最简单的的例子就是Java做的系统时非常占内存!一听到这样的话,一定会有不少人站出来为Java辩护,并举出一堆的性能测试报告来证明这一点。其实从理论上来讲Java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么多理由来证明它确实占内存呢?两个字,陋习。<br /> 1、别用new Boolean()。<br /> 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是转载 2011-05-31 15:09:00 · 413 阅读 · 0 评论 -
Java性能设计
<br />很多程序员在一开始并不注重性能的设计,只有当系统交付运行时,才 发现问题并且开始解决这一问题,但往往这只能挽救一点点。性能的管理应该一开始 就被整合到设计和开发当中去。<br /><br />最普遍的问题就是临时对象大量经常的创建,这为性能埋下隐患。<br /><br />性能的问题来自很多原因,最容易解决的可能是:你选择了不好的算法来进行计算,如 用冒泡法来排序巨量数据,或者你每次使用数据时都要反复计算一次,这应该使用Cache。<br /><br />你能很容易的使用工具(如Borland的转载 2011-05-31 16:21:00 · 1115 阅读 · 0 评论 -
用软引用阻止内存泄漏
<br /><br /> 在 Java 理论和实践 的 前一期文章 中,Java? 清洁工程师 Brian Goetz 探究了弱引用(weak references),它让您警告垃圾收集器,您想要维护一个对象的引用,而不会阻止该对象被垃圾收集。在本期文章中,他将解释 Reference 对象的另外一种形式,即软引用(soft references),用于帮助垃圾收集器管理内存使用和消除潜在的内存泄漏。 <br /> 垃圾收集可以使 Java 程序不会出现内存泄漏,至少对于比较狭窄的 “内存泄漏” 定转载 2011-05-31 15:56:00 · 1731 阅读 · 0 评论 -
Java 6中的性能优化
<br /><br /> J2SE 6(代号:Mustang野马)主要设计原则之一就是提升J2SE的性能和扩展能力,主要通过最大程度提升运行效率,更好的垃圾收集和一些客户端性能来达到。<br /> 1、偏向锁(Biased locking)<br /> Java 6以前加锁操作都会导致一次原子CAS(Compare-And-Set)操作,CAS操作是比较耗时的,即使这个锁上实际上没有冲突,只被一个线程拥有,也会带来较大开销。为解决这一问题,Java 6中引入偏向锁技术,即一个锁偏向于第一个转载 2011-05-31 15:21:00 · 576 阅读 · 0 评论 -
性能优化总结:CPU和Load、NIO以及多线程
<br /><br /> 当应用遇到规模化问题的时候,就是考虑性能优化的时候了。今天同事和我聊起了NIO在客户端的使用与BIO有什么优势,也勾起了我前一阵子和其他同学交流优化的一些想法,纯粹个人的一点想法。<br />CPU利用率和Load<br /> 在过去做压力测试的时候,我们经常会关注两个指标,CPU和Load。有同学觉得CPU利用率上去了Load肯定也上去了,Load上去了CPU利用率同样会上去。但是在一些需要优化的场景下,常常会看到Load很高,CPU利用率却可能比较低(多核更是可能出现分配不转载 2011-05-31 15:25:00 · 1970 阅读 · 0 评论 -
Java程序性能优化(2)
<br /><br /> 八、如果只是查找单个字符的话,用charAt()代替startsWith()<br /> 用一个字符作为参数调用startsWith()也会工作的很好,但从性能角度上来看,调用用String API无疑是错误的!<br /> 例子:<br /> public class PCTS {<br /> private void method(String s) {<br /> if (s.startsWith("a")) { // violation<br /> // ..转载 2011-05-31 15:30:00 · 531 阅读 · 0 评论 -
Java程序性能优化(3)
<br /><br /> 十四、对于boolean值,避免不必要的等式判断<br /> 将一个boolean值与一个true比较是一个恒等操作(直接返回该boolean变量的值). 移走对于boolean的不必要操作至少会带来2个好处:<br /> 1)代码执行的更快 (生成的字节码少了5个字节);<br /> 2)代码也会更加干净 。<br /> 例子:<br /> public class UEQ<br /> {<br /> boolean method (String string)原创 2011-05-31 15:31:00 · 726 阅读 · 0 评论 -
提高Java性能的几个高效用法
<br /><br /> 1.在重要的循环里,消除循环终止判断时的方法调用<br /> <br />view plaincopy to clipboardprint?<br />for(int i=0; i<collection.size(); i++)<br />{<br />...<br />}<br />for(int i=0; i<collection.size(); i++)<br />{<br />...<br />}<br />替换为…<br />view plaincopy to clip原创 2011-05-31 15:45:00 · 513 阅读 · 0 评论 -
Java性能优化
<br />Java语言特别强调准确性,但可靠的行为要以性能作为代价。这一特点反映在自动收集垃圾、严格的运行期检查、完整的字节码检查以及保守的运行期同步等等方面。对一个解释型的虚拟机来说,由于目前有大量平台可供挑选,所以进一步阻碍了性能的发挥。<br /> “先做完它,再逐步完善。幸好需要改进的地方通常不会太多。”(Steve McConnell的《About performance》[16])<br /> 本附录的宗旨就是指导大家寻找和优化“需要完善的那一部分”。<br /><br />1 基本方法<转载 2011-05-31 15:14:00 · 526 阅读 · 0 评论 -
Java入门--漫谈Java程序的性能优化
<br />Java使得复杂应用的开发变得相对简单。毫无疑问,它的这种易用性对Java的大范围流行功不可没。然而,这种易用性实际上是一把双刃剑。一个设计良好的Java程序,性能表现往往不如一个同样设计良好的C++程序。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能。下面我们就来具体地分析一下这方面的问题。<br /><br />转载 2011-05-31 15:19:00 · 485 阅读 · 0 评论 -
Java性能调优方法:基于等待的调优
<br /><br /> 企业java应用的性能调优是一项艰巨的、有时甚至是徒劳的任务,这是由现代应用的复杂性和缺少正规的调优方法导致的。现代企业应用与十年前的应用相比差距很大,如今这些应用支持多输入、多输出、复杂的框架和业务处理引擎。而十年之前,基于web的企业应用只是通过网络浏览器获得输入信息,然后与数据库或者遗留系统交互进行后台处理,最后把输出结果返回给浏览器(HTML)。现在,输入信息可以来自HTML浏览器、富客户端、移动设备或者网络服务,它可以跨越运行在不同架构下的servlets或者门户容转载 2011-05-31 15:36:00 · 864 阅读 · 0 评论 -
为JAVA性能而设计(2)
<br /> 为性能而设计, 第二部分: 减少对象创建[/b]<br /><br /> From java World.<br /><br />在设计 Java 类的时候避免性能上的冒险<br /><br />概要<br /><br /> 许多通常的 Java 性能问题都起源于在设计过程早期中的类设计的思想, 早在许多开发者<br /> 开始考虑性能问题之前. 在这个系列中, Brian Goetz 讨论了通常的 Java 性能上的冒险<br /> 以及怎么在设计时候避免它们. 在第二部分, 他讨转载 2011-05-31 16:08:00 · 457 阅读 · 0 评论