关于jvm优化问题

来源:互联网 发布:vmware虚拟机性能优化 编辑:程序博客网 时间:2024/06/05 04:25


关于jvm优化问题,分享点经验给大家

首先是写代码的时候,最好是分配局部变量,也就是说如果在方法里面用的,就在方法里面去定义变量。堆的管理实质上是一棵树,如果一个分支上的节点统一分配和回收,效率会提示很多,而且不会形成大量的碎片。

其次,对于一些通讯程序,比如频繁的分配数据包,这种情况通常是做一个对象池。比如netty之类的,提供许多对象池。

如果再深入一点,可以了解一些off heap的缓存技术,这个类似大型机写标准c的思路,先搞一大块共享内容。

还有一些特殊情况,比如写视频编码算法,一般都是直接malloc分配内容,但是这个分配过程需要扫描很多分叉,实际效率很慢。我试过改成单向栈的方式,变成线性的,虽然内存占用会大一点,但是效率提升是指数级的。


项目调优的时候,首先是改大jvm的最大内容,比较现在机器内存都打;其次可以打开任务管理器,如果看到运行时内存蹭蹭往上跳的时候,就找出频繁new的地方,改成对象池就好了。



原创粉丝点击