性能优化

一.JDK方面

1.设置为Server版JVM

参照:http://www.itpchome.biz/software/Article/Catalog14/10720.html

下面的这两个文件,尺寸差别很大.

%JAVA_HOME%/jre/bin/client/jvm.dll   2,248KB(注意有可能jvm在不同的JRE路径中,这个因JRE安装路径而定。)

%JAVA_HOME%/jre/bin/server/jvm.dll  3,200KB(注意有可能jvm在不同的JRE路径中,这个因JRE安装路径而定。)

Jvm动态库有client和server两个版本,以上是JAVA6下的两个JVM,很明显server文件夹下的jvm.dll比client文件夹下的jvm.dll文件大,它们分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较快。

如果独立安装JDK与JRE的朋友在JRE的BIN目录中找不到SERVER文件夹,可以从JDK中的JRE下的BIN下复制过来。

让Tomcat 使用Server版本的jvm吧,在开始菜单 tomcat5 ->tomcat config的java属性中有一项 jvm路径指向server目录下的jvm就行了。

更改默认java.exe调用的jvm.dll,这个由jvm.cfg决定。

编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg(注意有可能jvm在不同的JRE路径中,这个因JRE安装路径而定。)里面第一行写的是 -client 默认就是client版本 ,把第二行的-server KNOWN 放到第一行,

 如下面所示

www.itpchome.com
# @(#)jvm.cfg 1.8 05/11/17
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#
#
#
#
# List of JVMs that can be used as an option to java, javac, etc.
# Order is important -- first in this list is the default JVM.
# NOTE that this both this file and its format are UNSUPPORTED and
# WILL GO AWAY in a future release.
#
# You may also select a JVM in an arbitrary location with the
# "-XXaltjvm=" option, but that too is unsupported
# and may not be available in a future release.
#
-server KNOWN
-client KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR


改完保存,然后看看默认版本:
C:\java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
这时您会看到有 Server VM 字样,表明将JAVA设置成使用server版本的JVM成功!

2.设置JAVA使用的内存上下限

有两种方式:

JAVA_OPTS=-Xms256m -Xmx512m

操作系统方面可以设置环境变量或在Tomcat的catalina的文件中设置。

 

二.操作系统

2.1.window方面

TcpTimedWaitDelay和MaxUserPort设置

 

描述:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。 停止并重新启动系统。 缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。 建议值:最小值为 0x1E,它将等待时间设置为 30 秒。 MaxUserPort 描述:确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。 停止并重新启动系统。 缺省值:无 建议值:至少十进制 32768。

 

<!----> <script type="text/javascript"> cpro_client='pchomecpr'; cpro_cbd='#trans'; cpro_cbg='#trans'; cpro_ctitle='#0000ff'; cpro_cdesc='#444444'; cpro_curl='#008000'; cpro_clink='#000000'; cpro_flush=4; cpro_w=728; cpro_h=90; cpro_template='text_default_728_90'; </script> <script src="http://cpro.baidu.com/cpro/ui/cp.js" type="text/javascript"></script>

二.Apache
压缩

在 apache 1.3 版本,大家常用 mod_gzip 对输出内容进行压缩,现在主流的浏览器都支持 gzip 解压缩。在 apache2 下,这个模块换名为 mod_deflate ,对应的模块文件名是 mod_deflate.so 。mod_gzip 本文不做介绍,下面描述一下在 Apache 2 下如何启用并配置 mod_deflate 模块。默认安装的 Apache 不管是 Windows 还是 Linux/Unix,都是不启用该模块的, Linux/Unix 下甚至不带该模块,你需要手工编译这个模块。

下面我们分别介绍在 Windows 和 Linux 操作系统下如何启用并配置 mod_deflate 模块。

在 Windows 下采用安装程序安装的 Apache 服务器已经带有 deflate 所需要的模块 mod_deflate.somod_headers.so ,我们只需要在 httpd.conf 配置文件中启用并进行相关的配置即可,配置如下:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>

而如果是 Linux/Unix 操作系统,如果你没有在编译安装的过程中将所需要的两个模块 mod_deflatemod_headers 编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块,请在执行 configure 程序时增加两个参数分别是:

# ./configure --enable-deflate --enable-headers

这样在编译完 Apache 后就可以直接在 httpd.conf 中启用并配置 deflate 模块了,配置的方法跟 Windows 平台下是相同的。

如果说您的 Apache 已经在运行了,不想再重新编译一次,那也可以选择只编译 deflate 模块所需的文件 mod_deflate.cmod_headers.c 。这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。

# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c
# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c

其中 {apache-bin} 为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。

很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示是:

Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate

解决的方法如下:

编辑 /usr/local/apache2/bin/apr-config 文件修改其中的 LDFLAGS 值为 "-lz",然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。

为了省却不必要的麻烦,请尽量在编译安装时直接加上 --enable-deflate --enable-headers 参数。


三.Tomcat
1.APR支持
2.URL字符编码集过滤 URIEncoding="GBK"
3.压缩支持
compression="on"
  compressionMinSize="256"
  noCompressionUserAgents="gozilla,traviata"
  compressableMimeType="text/html,text/xml,text/css,text/javascript
 

2. 手工压缩静态内容

    用gzip先压缩好静态内容的文件,改用一个文件扩展名。在网页中引用静态内容文件。

    关键是要实现一个过滤器,设置压缩的静态内容文件响应的Http头信息:

  response.setHeader("Content-Encoding", "gzip");

或者

  response.setHeader("Content-Encoding", "x-gzip");

 
四.HTML压缩方面参照
http://www.ibm.com/developerworks/cn/web/wa-lo-webcompress/

你可能感兴趣的:(JavaScript,apache,jvm,tomcat,linux)