很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现我可能更加系统地看待这类的问题。我说过JVM的自身技术限制了Java企业级应用的伸缩性。首先我们先列举一些主导因素。
主流的硬件服务器提供了大量的内存分布式系统有大量内存的需求,而且该需求在持续增长一个普通Java应用程序所持有的对空间大概在1GB~4GB,这远远低于一个硬件服务...
分类:
编程语言 时间:
2015-03-21 09:53:34
阅读次数:
157
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量使用final修饰符。带有final修饰符的类是不可派生的。在JAVA核心API中,有许多应用final的例子,例如 java.lang.String。为Strin...
分类:
编程语言 时间:
2015-03-19 21:39:38
阅读次数:
233
数据收集服务平均1小时OOM(java.lang.OutOfMemoryError: GC overhead limit exceeded)一次,发现都是在下载处理 JSON Atom Feed时OOM。怀疑是处理feed内存峰值消耗过大导致频繁Full GC。如下图: ![wu][1] # 分析...
分类:
编程语言 时间:
2015-03-06 10:10:49
阅读次数:
253
前言:最近如饥似渴似得读各种书,IT管理类的、文学色彩的,却不愿用心去读技术学科的,比如说买的《第一行代码,Android》、《Java性能优化权威指南》,我知道自己在技术深度上还需要下很大的功夫,但总是找各种理由让自己错过阅读他们,而对文学色彩的书籍,却让我很想去阅读。今天对《乖,摸摸头》的第一章读了两遍,第二章读了一遍,于是赶紧督促自己记下些什么。
我不知道自己该从这样的文章...
分类:
其他好文 时间:
2015-03-02 09:42:00
阅读次数:
146
一、避免在循环条件中使用复杂表达式1、在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。2、不可使用多层循嵌套。二、集合大小jvm为vector扩充大小的时候需要重新创建一个更大的数组,将原原先数组中的内容复制过来,最后,原先的...
分类:
编程语言 时间:
2015-02-27 22:55:02
阅读次数:
250
现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升,但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比较短的同学挺有意义的。一 循环条件下,循环体和判断条件中,都要避免对使用复杂表达式,减少对变量的重复计...
分类:
编程语言 时间:
2015-01-12 19:09:16
阅读次数:
203
[size=small]在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量使用final修饰符。 带有final修饰符的类是不可派生的。在JAVA核心API中,有许多应用final的例子,例如 java.lang...
分类:
编程语言 时间:
2014-12-24 19:48:51
阅读次数:
245