background image

达芙妮女鞋§ http://www.shoes029.cn§ 

                          Java 虚拟机性能优化

    Tomcat 是运行在 Java 虚拟机上的 web 服务器,用户可以根据 r1 己的需要选择不同的
操作系统和对应的 y1)K 的版本.但要确保用户所使用的版本是最新的,因为 sun 公司和
其他一些公司一直在为提高性能顺对 Java 虚拟机做一些升级改进。用户可以为 J ava 虚拟
机设置使用的内存,如果设置的内存规模不合适.将会影响虚拟机的运行效率。但在运行
中,用户可以通过命令行的方式改变虚拟机使用内存的大小,如表 2—1 历示,有两个参
数用来设置虚拟机使用内存的大小。
表 2—1 中两个值的大小一般根据需要进行设置。初始化堆的大小执行 f 虚拟机在启
动时向系统申请的内存的大小,如果虚拟机启动时设置的使用内存比较小,而这时又有
许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。由于这种原因.一舶把
—xms

和 xmx 设为一样大,而堆的最大值受限于系统使用的物理内存。一般来说,使用


据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长,当应用程序需要的

存超出堆的最大值时虚拟机就会提尔内存溢出.并且导致应用服务崩溃。因此,建议堆的
最大值设置为可用内存的最大值的 80%。
    TomcM 默认可以使出的内存为 128MB,在较大型的应用项目中,这样的内存是不够
的,需要调入。即在 W1ndows 系统市的 4Tomc

叭 home)/bin/catalina.b 叭和 Unix 系


的(Tomc

玻 ho 毗)/bin/catalm*sh 文件中,其前面需要增加如下设置 2JAvA—〔)PTS=

f—xms[初始化内存大小]—xmxI 可以使用的最大内存]’,来把这两个参数值调大。例如,
Sd JAVA—OPTS

= xms256m—xmx512m 表示初始化内存为 256MB,可以使用的最大内

存为 512MB。
    另

曙光公司

要考虑的是 J ava 提供的垃圾回收机制。虚拟机的可用内存规模决定了

虚拟
机的垃圾回收时间和频度。垃圾回收可以接受的速度与具体应用有关,如果堆过大,那么
完全垃圾收集就会很慢,频度会降低。如果堆过小,完全收集就很快,但是会频繁启动垃
圾回收。调整堆大小的目的是最小化垃圾收集的时间,以在特定的时间内最大化实际处
理的客户请求数。在基准测试中.为保证最好的性能,要把堆设置大一些.防止在基难测
试的过程中小现垃圾问收。如果观察到系统花费很多的时间进行垃圾回收.就要减小推
的大小,一次完全的垃圾收集应该不超过 3—5 秒。