课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
性能优化对于任何一个程序员来说都是需要长期关注的一个问题,而今天我们就通过案例分析来了解一下,java编程进程优化处理都有哪些方法。
只要接触过IT行业的人都知道“java进程运行时占用的内存很大”,很多程序员都有类似的遭遇,而且会认为运行Java程序时使用-Xmx和-Xms参数指定的就是程序将会占用的内存,但实际上只是Java堆对象占用的内存,堆只是影响Java程序占用内存数量的一个因素。要想了解java进程占用内存大的原因,可以先了解是哪些因素会影响到内存的占用。
大致来说,JAVA进程包含如下因素:对象(Objects)、类(Classes)、线程(Threads)、本地数据结构(Nativedatastructures)、本地代码(Nativecode)。而且随着程序启动和运行后,上面的这些因素对内存占用的影响又实时根据应用程序、运行业务系统环境和不同的操作系统类型(windows、linux或mac)的不同而发生变化,因此该如何计算总的内存占用量?
想通过各种计算方式使用一个准确的数字是很困难的,因为程序员很难控制自己服务器上的特定参数,但是对照上面的影响因素能控制以下部分:
堆大小:-Xmx
类占用的内存:-XX:MaxPermSize
线程栈:-Xss控制每个线程占用的内存
Xmx是java进程启动的一个配置项,主要用于设置相应业务应用程序(不是整个jvm)运行时能够使用的大内存数。如果该程序运行的服务器配置不高,但程序运行会占用很大内存时,那就需要修改缺省的设置;特别是配置tomcat的程序时,如果流量、程序都不低的话就需要修改这个缺省值。当然不要大得超过服务器的内存,否则就会出现程序一运行,服务器就挂掉的问题(内存爆掉);反之,如果这个值设置的比较低,每次运行的时候,就会出现内存不够的情况。
Xms是设置内存的另一个重要参数,用它来设置该程序进行初始化时所需要的内存栈的大小。增加这个值的话,程序的启动性能会得到提高。不过同样有前面的限制,并受到Xmx的限制。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。