Webパフォーマンスの最適化の実践
8343 ワード
本文は主にTomcat+H 5ゲームの性能最適化に対して,応答時間文の後にApache+PHPが付く最適化方法を優先的に考慮する.
HTTPリクエストの削減 Webサイト上のオブジェクト数を減らす Webサイトのリダイレクト数を最小化 CSS Sprites技術 を使用 JavaScriptsとCSS を結合
画像圧縮
PNG Compression JPG Compression
CSS minify
Minify and Compress CSS Css Minifier
JS minify
Minify and Compress JS
HTML minify
HTML Minifier Html Compressor
ExpiresFilterリソースキャッシュの設定
これはTomcatに対する最適化であり、他のサーバではconf/webが異なる.xmlファイル
GZIP圧縮とHTTP持続接続
これはTomcatの最適化であり、他のサーバアプリケーションは異なります.
Tomcatでは長い接続を構成できる、conf/serverを構成する.xmlファイルは、ブラウザとTomcatの接続を制御するコネクタノードを構成し、長い接続に直接関連する2つの属性があります.これは、コネクタが接続を閉じる前に、コネクタが別の要求Keep Aliveに待機している微妙な数であり、デフォルト値はconnectionTimeoutと同じです.もう1つは、HTTP/1.0 Keep AliveとHTTP/1.1 Keep Alive/Pipelineの最大リクエスト数を表し、1に設定するとKeep AliveとPipelineが無効になり、0未満に設定するとKeep Aliveの最大リクエスト数に制限はありません.つまりTomcatでは、デフォルトの長い接続は開いています.長い接続を閉じたい場合は、maxKeepAliveRequestsを1に設定すればいいです.
conf/server.xmlファイル
binディレクトリ
上記の最適化作業が完了すると、PageSpeed ScoreとYslowはいずれも高い値に達することができます.
ただし、リソースキャッシュは設定しません.
両者のPageLoad Timeはかなり差があります!!!(疑惑中)
JVM java仮想マシン
メモリを増大して、同時にもたらすHTTPの遅延を減らすことができて、スループットのJVMの原理と最適化を増加します
参考サイト:
WordPress最適化のオープンGzip圧縮Webフロントエンド性能最適化実践一回WEBフロントエンド最適化試みtomcat Gzip圧縮有効化最適化Tomcat性能チューニングExpiresFilter設定リソースキャッシュGTmetrixによってウェブサイト性能を検出し、ヒントに応じてウェブサイトのロード速度を最適化する14のテクニック注:PHP
Content Delivery Network(CDN)CDNサービスプロバイダcookie-free domains Best Practices for Speeding Up Your Web Site Java Web performance–part 1 Java Web performance–part 2
に付随
環境Apache+PHP
.htaccessファイル増加
HTTPリクエストの削減
画像圧縮
PNG Compression JPG Compression
CSS minify
Minify and Compress CSS Css Minifier
JS minify
Minify and Compress JS
HTML minify
HTML Minifier Html Compressor
ExpiresFilterリソースキャッシュの設定
これはTomcatに対する最適化であり、他のサーバではconf/webが異なる.xmlファイル
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
<init-param>
<param-name>ExpiresByType image</param-name>
<param-value>access plus 1 month</param-value>
</init-param>
<init-param>
<param-name>ExpiresByType text/css</param-name>
<param-value>access plus 1 week</param-value>
</init-param>
<init-param>
<param-name>ExpiresByType application/javascript</param-name>
<param-value>access plus 1 week</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping>
GZIP圧縮とHTTP持続接続
これはTomcatの最適化であり、他のサーバアプリケーションは異なります.
Tomcatでは長い接続を構成できる、conf/serverを構成する.xmlファイルは、ブラウザとTomcatの接続を制御するコネクタノードを構成し、長い接続に直接関連する2つの属性があります.これは、コネクタが接続を閉じる前に、コネクタが別の要求Keep Aliveに待機している微妙な数であり、デフォルト値はconnectionTimeoutと同じです.もう1つは、HTTP/1.0 Keep AliveとHTTP/1.1 Keep Alive/Pipelineの最大リクエスト数を表し、1に設定するとKeep AliveとPipelineが無効になり、0未満に設定するとKeep Aliveの最大リクエスト数に制限はありません.つまりTomcatでは、デフォルトの長い接続は開いています.長い接続を閉じたい場合は、maxKeepAliveRequestsを1に設定すればいいです.
conf/server.xmlファイル
<!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 -->
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" maxKeepAliveRequests="20" keepAliveTimeout="20000" redirectPort="8443" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="textml,text/xml,text/javascript,text/css,text/plain, application/JSON" useSendfile="false"/>
binディレクトリ
./shutdown.sh
./startup.sh
上記の最適化作業が完了すると、PageSpeed ScoreとYslowはいずれも高い値に達することができます.
ただし、リソースキャッシュは設定しません.
両者のPageLoad Timeはかなり差があります!!!(疑惑中)
JVM java仮想マシン
メモリを増大して、同時にもたらすHTTPの遅延を減らすことができて、スループットのJVMの原理と最適化を増加します
参考サイト:
WordPress最適化のオープンGzip圧縮Webフロントエンド性能最適化実践一回WEBフロントエンド最適化試みtomcat Gzip圧縮有効化最適化Tomcat性能チューニングExpiresFilter設定リソースキャッシュGTmetrixによってウェブサイト性能を検出し、ヒントに応じてウェブサイトのロード速度を最適化する14のテクニック注:PHP
Content Delivery Network(CDN)CDNサービスプロバイダcookie-free domains Best Practices for Speeding Up Your Web Site Java Web performance–part 1 Java Web performance–part 2
に付随
環境Apache+PHP
.htaccessファイル増加
# header Specify a Vary: Accept-Encoding header
<IfModule mod_headers.c>
<FilesMatch ".(js|css|xml|gz)$"> Header append Vary Accept-Encoding </FilesMatch>
</IfModule>
# Leverage browser caching
# JV : 0, :A ( ) ExpiresActive On ExpiresDefault A0
# 1
<filesmatch "\.(ico|mp3|wav)$"> ExpiresDefault A29030400 Header append Cache-Control "public"
# 1
<filesmatch "\.(gif|jpg|png)$"> ExpiresDefault A604800 Header append Cache-Control "public"
# 2
<filesmatch "\.(html|js|css)$"> ExpiresDefault A7200 Header append Cache-Control "proxy-revalidate"
#
<filesmatch "\.(php|htm)$"> ExpiresActive Off Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" Header set Pragma "no-cache"