随笔分类 - 程序性能&优化&重构
摘要:如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610mjava -Xmx1610M -versionjava -Xmx1610m -version网摘的tomcat内存溢出解决方案Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内
阅读全文
摘要:1、 服务端安装JProfiler(与客户端版本一致) 2、 客户端配置连接: A)、session——integration wizards——New remote integration B)、选择远程监控的平台windows,点击next C)、选择jdk版本,如果服务器是64位的jdk则勾上
阅读全文
摘要:hi,all: 最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。 前段时间因为系统代码问题,造成性能到了天花板,于是就dump了一份stack出来进行分析。 看stack其实也需要一定的经验,毕竟它里面很多线程不可能都是有问题,所以,需要对
阅读全文
摘要:天分析了当前比较流行的几个不同公司不同版本JVM的最大内存,得出来的结果如下: 除非特别说明,否则JVM版本都运行在Windows操作系统下 附:如何获得JVM的最大可用内存 在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示
阅读全文
摘要:这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca37.jar 笔者直接在生产环境下直接通过它对产生的 javacore 文件进行分析,令人惊喜的是,
阅读全文
摘要:原文 http://www.cnblogs.com/persist-confident/p/4516741.html今天阅读源码的时候,无意中看到了Collections.unmodifiableList的用法,因为以前没有这样做过,所以查询了他的API,是这样写的public static Li...
阅读全文
摘要:这里列出了很多Java静态分析工具,每一种工具关注一个特定的能发挥自己特长的领域,我们可以列举一下:Pmd它是一个基于静态规则集的Java源码分析器,它可以识别出潜在的如下问题:– 可能的bug——空的try/catch/finally/switch块。– 无用代码(Dead code):无用的本地...
阅读全文
摘要:让VisualVM+BTrace进入unsafe modehttp://kenai.com/projects/btrace/pages/UserGuideBTrace很强大,但有很多安全限制,比如:---------------------------------------------------...
阅读全文
摘要:一、背景 在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部...
阅读全文
摘要:java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互 java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互 一个优秀的Java 程序员必须了解GC 的工作原理、如何优化GC的性能、如何和GC进行有效的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统
阅读全文
摘要:finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因为收集的对象只和JVM的垃圾收集策略有关。 1.构造函数 要点: 构建器(Constructor)属
阅读全文
摘要:闲来无事,用Java的软引用写了一个山寨的缓存博客分类:java基础众所周知java中的引用分为 StrongReference、SoftReference、WeakReference、PhantomReference。这几种引用有不同那个的 使用场景,平时我们用的最频繁的也就是StrongRefe...
阅读全文
摘要:写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯。这篇文章主要是整理的资料。留给自己做个警戒,提示以后写代码的时候注意!在文章的后面,会提供整理的原材料下载。一、类和对象使用技巧1、尽量少用new生成新对象 用new创建类的实例时,构造雨数链中所有构造函数都...
阅读全文
摘要:功能开关:参数默认值或限制说明参数默认值功能-XX:-AllowUserSignalHandlers限于Linux和Solaris,默认不启用允许为java进程安装信号处理器,信号处理参见类:sun.misc.Signal, sun.misc.SignalHandler-XX:+DisableExp...
阅读全文
摘要:首先介绍一下新生代、老年代。所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有
阅读全文
摘要:在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具。有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用。NetBeans ProfilerNetBeans profiler是一个NetBeans IDE插件,主要为NetBeans IDE提供...
阅读全文
摘要:栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介...
阅读全文
摘要:Java代码优化方案 J2ME内存优化从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的避免内存溢出l 不用的对象释放(置空)如 :a不为空时 a=new object()//这句代码执行时将有两个对象存在于内存中较好的写法是a=n...
阅读全文
摘要:1.别用new Boolean 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是通过Boolean封装传递的,大部分ORM也是用Boolean来封装boolean类型的,比如: ps.setBoolean("isClosed",new Boolean(t...
阅读全文
摘要:NetBeans IDE 6.0 包含一个强大的性能分析工具,可提供与应用程序运行时行为有关的重要信息。通过 NetBeans 性能分析工具,我们可以方便地在 IDE 中监控应用程序的线程状态、CPU 性能以及内存使用情况,而且产生的开销相对较少。本文将概述 IDE 中包含的性能分析工具,并指导您快...
阅读全文