java性能优化

堆内存
堆内存(heap)在JVM启动的时候就被创建,它是JVM中非常关键的一个内存管理区域。堆内存中所存储的对象可以被JVM自动回收,不能通过其他外部手段回收,也就是说开发人员无法通过添加相关代码的手段,回收位于堆内存中的对象。堆内存(heap)通常情况下被分为两个区域:新对象(new object)区域与老对象(old object)区域。这里又引入了两个有关JVM内存管理的新概念:新对象(new object)区域与老对象(old object)区域。下面分别对这两个概念做一下介绍。
新对象(new object)区域。又可以细分为三个小区域:伊甸园(Eden)区域、From区域与To区域。伊甸园区域用来保存新创建的对象,它就像一个堆栈,新的对象被创建,就像指向该栈的指针(如果你熟悉C语言,应该非常熟悉指针的概念)在不断增长一样,当伊甸园区域中的对象满了之后,JVM系统将要做可到达性测试,主要任务是检测有哪些对象由根集合出发是不可到达的,这些对象就可以被JVM回收,并且将所有的活动对象从伊甸园区域拷到To区域,此时一些对象将发生状态交换,有的对象就从To区域被转移到From区域,此时From区域就有了对象。上面对象迁移的整个过程,都是由JVM控制完成的。当我们在使用一些Java应用服务器软件时,通过其所提供的内存与性能监控界面,会看到这一过程引起的系统内存的变化。在这个过程执行期间,Java虚拟机的性能是非常低下的,这个过程会严重影响正在运行的应用的性能。

你可能感兴趣的:(java,jvm,应用服务器,虚拟机,软件测试)