`
neptune
  • 浏览: 357686 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

性能优化

阅读更多

一.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/
分享到:
评论

相关推荐

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    性能优化手册是一套java性能学习研究小技巧,包含内容:Java性能优化、JVM性能优化、服务器性能优化、数据库性能优化、前端性能优化等。 内容包括但不限于: String 性能优化的 3 个小技巧 HashMap 7 种遍历方式...

    大型网站性能优化实战

    具体内容包括:基于用户体验的性能优化要素、前端性能优化实战、网站性能分析、服务端性能优化、TCP优化、DNS优化、CDN优化、大型网站性能监控体系、大型网站容量评估、高性能系统架构模式、大促保障体系、数据分析...

    SQLServer性能优化与管理的艺术

    资源名称:SQL Server性能优化与管理的艺术内容简介:本书共15章,分为三部分,第一部分(第1-2章)为概述部分,阐述SQLServer方面的“性能”及相关概念。并给出常规的性能及性能相关的问题侦测的“方法论”,读者...

    DB2 性能优化PDF

    DB2性能优化 DB2性能优化 DB2性能优化 DB2性能优化

    oracle数据库性能优化.pdf

    oracle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdforacle数据库性能优化.pdf

    sql server2005/2008 性能优化大全 .pptx

    SQL2005性能优化大全,sqlserver性能优化,包括:什么叫做索引、利用索引优化sqlserver查询、使用数据库分区表提高程序检索效率、提高数据库查询效率的实用方法、SQL数据进行排序、分组、统计技巧;SQL Server查询...

    ORACLE SQL性能优化系列

    ORACLE SQL性能优化系列 ORACLE SQL性能优化系列 ORACLE SQL性能优化系列

    java程序性能优化

    java程序性能优化Java是目前应用最为广泛的软件开发平台,学习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的...

    Java 性能优化实战 21 讲2021年

    │ 开篇词 Java 性能优化,是进阶高级架构师的炼金石.mp4 │ 02 理论分析:性能优化有章可循,谈谈常用的切入点.mp4 │ 03 深入剖析:哪些资源,容易成为瓶颈?.mp4 │ 04 工具实践:如何获取代码性能数据?....

    threejs性能优化与GPU优化.md

    threejs性能优化与GPU优化

    Android性能优化.pdf

    Android性能优化:ANR问题解析 crash监控方案 启动速度与执行效率优化 内存优化 耗电优化 网络传输与数据存储优化 APK大小优化

    前端性能优化与实践.zip

    前端性能优化与实践.zip

    Java程序性能优化

    《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优以及程序故障排斥等方面介绍针对Java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项。第2章...

    java性能优化java性能优化

    java性能优化介绍java性能优化方面的好的书籍,希望大家下载

    Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这...如何进行 Python 性能优化,是本文探讨的主要问题。本文会涉及常见的代码优化方法,性能优化工具的使用以及如何诊断代码的性能瓶颈等内容,希望可以给 Python 开发人员一定的参考。

    嵌入式LINUX内存使用与性能优化

    《嵌入式Linux内存使用与性能优化》主要讲述嵌入式系统开发中的两个难点:系统的内存使用与系统性能优化。关于系统的内存使用,《嵌入式Linux内存使用与性能优化》试图完成两项任务:增加系统整体的空闲内存数量,...

Global site tag (gtag.js) - Google Analytics