• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Java Drag Race Tuning
 

Java Drag Race Tuning

on

  • 4,641 views

 

Statistics

Views

Total Views
4,641
Views on SlideShare
2,468
Embed Views
2,173

Actions

Likes
8
Downloads
11
Comments
0

7 Embeds 2,173

http://d.hatena.ne.jp 2023
https://twitter.com 74
http://nekop.hatenablog.com 43
http://cloud.feedly.com 29
http://summary 2
http://reader.aol.com 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java Drag Race Tuning Java Drag Race Tuning Presentation Transcript

    • 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.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
    • デモ ● 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 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
    • まとめ ● JVM オプション ● -Xverify:none ● -XX:+TieredCompilation ● -XX:TieredStopAtLevel=1 ● 非圧縮 jar