Your SlideShare is downloading. ×
0
Java ドラッグレース
チューニング
Takayoshi Kimura
Senior Software Maintenance Engineer
Global Support Service, Red Hat
Java VM
起動速度遅い
そんな幻想を
!ぶち壊す
環境
● Dell Latitude E6320
● 法人向けラップトップ
● Intel(R) Core(TM) i7-2620M CPU @
2.70GHz
● 16GB memory
環境
● Fedora 19 64bit
● Linux 3.10.5-201.fc19.x86_64
● java-1.7.0-openjdk-1.7.0.25-
2.3.12.3.fc19.x86_64
WildFly
8.0.0.Alpha4
started in
2412ms
Tuned
WildFly
8.0.0.Alpha4
started in
1059ms
?なにをしたのか
● 2412ms から 1059ms
● 224% パフォーマンス向上
● 2 点
● ふつうに JVM オプションの変更
● ふつうそんなことやらねーよ、って
いう荒技
Java VM オプション
● -client
● 32bit のみ
● -server
● -XX:+TieredCompilation
● -XX:TieredStopAtLevel=1
Java VM オプション
● サーバアプリケーションでは最
適化が抑制されるため長期的に
はパフォーマンス不利
● -client
● -XX:TieredStopAtLevel=1
Java VM オプション
● TieredCompilation
● Java 8 からデフォルトで有効
● codecache の使用量が多くなる
Java VM オプション
● -Xverify:none
● クラス検証無効化
● テスト環境や本番環境では検証は有
効にしておこう
デモ
● WildFly 8.0.0.Alpha4 の JVM オ
プションチューニング
● 前 : 2400ms
● 後 : 1200ms
!まだいける
荒技
#!/bin/sh
# Example: $ find . -type f -name *.jar | xargs -n1 fatjar
set -e
JARFILE=$(realpath $1)
TMPDIR=/tmp/fatjar.t...
デモ
● WildFly 8.0.0.Alpha4 に荒技適
用
● 前 : 1200ms
● 後 : 1050ms
まとめ
ソフトウェア チューニング前
(ms)
チューニング後
(ms)
WildFly 8.0.0.Alpha4 2400 1100
GlassFish 4.0.0 4000 1300
JBoss EAP 6.1.0 2200 1100
JB...
まとめ
● JVM オプション
● -Xverify:none
● -XX:+TieredCompilation
● -XX:TieredStopAtLevel=1
● 非圧縮 jar
Java Drag Race Tuning
Upcoming SlideShare
Loading in...5
×

Java Drag Race Tuning

4,775

Published on

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,775
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
13
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

Transcript of "Java Drag Race Tuning"

  1. 1. Java ドラッグレース チューニング Takayoshi Kimura Senior Software Maintenance Engineer Global Support Service, Red Hat
  2. 2. Java VM 起動速度遅い
  3. 3. そんな幻想を !ぶち壊す
  4. 4. 環境 ● Dell Latitude E6320 ● 法人向けラップトップ ● Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz ● 16GB memory
  5. 5. 環境 ● Fedora 19 64bit ● Linux 3.10.5-201.fc19.x86_64 ● java-1.7.0-openjdk-1.7.0.25- 2.3.12.3.fc19.x86_64
  6. 6. WildFly 8.0.0.Alpha4
  7. 7. started in 2412ms
  8. 8. Tuned WildFly 8.0.0.Alpha4
  9. 9. started in 1059ms
  10. 10. ?なにをしたのか ● 2412ms から 1059ms ● 224% パフォーマンス向上 ● 2 点 ● ふつうに JVM オプションの変更 ● ふつうそんなことやらねーよ、って いう荒技
  11. 11. Java VM オプション ● -client ● 32bit のみ ● -server ● -XX:+TieredCompilation ● -XX:TieredStopAtLevel=1
  12. 12. Java VM オプション ● サーバアプリケーションでは最 適化が抑制されるため長期的に はパフォーマンス不利 ● -client ● -XX:TieredStopAtLevel=1
  13. 13. Java VM オプション ● TieredCompilation ● Java 8 からデフォルトで有効 ● codecache の使用量が多くなる
  14. 14. Java VM オプション ● -Xverify:none ● クラス検証無効化 ● テスト環境や本番環境では検証は有 効にしておこう
  15. 15. デモ ● WildFly 8.0.0.Alpha4 の JVM オ プションチューニング ● 前 : 2400ms ● 後 : 1200ms
  16. 16. !まだいける
  17. 17. 荒技 #!/bin/sh # Example: $ find . -type f -name *.jar | xargs -n1 fatjar set -e JARFILE=$(realpath $1) TMPDIR=/tmp/fatjar.tmp echo "Fat $JARFILE" rm -rf $TMPDIR mkdir -p $TMPDIR (cd $TMPDIR; jar xf $JARFILE) if [ -f $TMPDIR/META-INF/MANIFEST.MF ]; then jar c0fm $JARFILE $TMPDIR/META-INF/MANIFEST.MF -C $TMPDIR . else jar c0f $JARFILE -C $TMPDIR . fi rm -rf $TMPDIR
  18. 18. デモ ● WildFly 8.0.0.Alpha4 に荒技適 用 ● 前 : 1200ms ● 後 : 1050ms
  19. 19. まとめ ソフトウェア チューニング前 (ms) チューニング後 (ms) WildFly 8.0.0.Alpha4 2400 1100 GlassFish 4.0.0 4000 1300 JBoss EAP 6.1.0 2200 1100 JBoss EAP 5.2.0 13800 7000 JRuby 1.7.4 1000 620 Clojure 1.5.1 800 390 Scala 2.10.2 460 410 Groovy 2.1.6 550 270
  20. 20. まとめ ● JVM オプション ● -Xverify:none ● -XX:+TieredCompilation ● -XX:TieredStopAtLevel=1 ● 非圧縮 jar
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×