放送裏話:Minecraftの性能向上方法(チューニング)について(2018/03/26更新)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

放送裏話:Minecraftの性能向上方法(チューニング)について(2018/03/26更新)

2016-10-21 04:19
  • 5
前の放送でマイクラのメモリーが足りないとか言っていたのでメモ代わりも含めて紹介

2018/03/26:一部修正と加筆

この記事はJava8の最新版を目標として書いてます(Java9はまだMODとかで使えないからね・・・)
Javaは脆弱性が多いのでマイクラの古いバージョンでMODを使用しない限り最新版利用を推奨します
わからないことが有ったらコメントで聞いてください

1.Minecraftの処理について

MinecraftはJavaの仮想マシン(JVM)を作ってその上でゲームを動かします
なのでJVMのオプション(以下JVMオプション)を指定することにより、ある程度性能向上が見込めます
基本的にメモリーの設定です、よくメモリーの割当を増やすとかもこれですね

2.MinecraftのJVMオプションの指定方法

 1.Minecraftのランチャーを起動し
 2.「起動オプション」をクリックします
 3.その中の「高度な設定を有効にする」にオンにします
 4.JVMオプションを指定したいプロファイルを選択
 5.JVMの引数を有効にし、右の空白にオプションを入力して保存
 6.Minecraftが無事起動すれば指定成功
 次からオプションについて説明していきます

3.JVMのオプションについて(一部)

専門用語は各自ググってください 数字の後のMはメガバイト、Gはギガバイトです
メモリーは自身の環境に合わせて変更してください、わからなければコメントをください
・JVMのメイン処理領域(ヒープ領域※New領域+Old領域)の設定
  指定方法:-Xmx -Xms
  Xmsで初期値、Xmxで最大値指定します。初期値と最大値は一致推奨です。
  例:-Xmx4G -Xms4G

・MODのクラスなどの情報を格納する領域(Metaspace領域)の設定(Java8以降)
  指定方法:-XX:MetaspaceSize -XX:MaxMetaspaceSize
  MODを大量導入、もしくは重量級のMODを導入する際にはこの値を変更しないと
  重たくなったりします
  -XX:MetaspaceSizeで初期値、-XX:MaxMetaspaceSizeで最大値を指定します。
  初期値と最大値は一致推奨です
  例:-XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M

・メモリー管理方法の指定
  上記のXmxやXmsで確保できるメモリーの量に合わせてください
  両方書いてあると両方共無効になったり起動しなくなるので片方は消しておいてください
  ・Forgeインストール時と推奨設定はConcurrent Mark-Sweep Collector方式です
   指定方法:XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
    一度に全てのメモリを掃除せず、細かい単位でメモリーを掃除し
    JVM内のメモリー空き領域を増やす設定です。

  ・大量のメモリーが確保できる場合は上記よりG1 GC方式の方が高速です。
   指定方法:-XX:+UseG1GC
   JVM内のメモリーを細かく細分化し各種領域を割り当てる設定です。
   この設定を使う場合Forgeインストール時に初期設定されている。
   「-Xmn512M(JVM内のある領域のメモリーサイズを指定)」というオプションを
   消してください、G1 GC方式のメリットが薄れてしまいます。
   
・オブジェクト上に持つポインタのビット数を減らし、オーバーヘッドを減らすことでJVMの動作を高速化するための作業領域のサイズ設定
  ヒープ領域を大量に確保できる場合(32GB以上)は「-XX:-CompressedClassPointers」で無効を推奨します
  指定方法:-XX:CompressedClassSpaceSize
  1M~3GBの間で設定します。
  例:-XX:CompressedClassSpaceSize=32M

・その他使用するといいオプション
   サーバー向けの仕様でJVMを起動させる
    指定方法:-server
   スタックサイズを指定する(64Bit版だとデフォルトで1G)
    指定方法:-Xss  例-Xss2G
   将来のアップデートでデフォルトになりそうな最適化フラグを有効にする
    指定方法:-XX:+AggressiveOpts
   変な命令でメモリーを開放することが無いようにする。
    指定方法:-XX:+DisableExplicitGC
   衝突が起こらない同期のパフォーマンスを向上させる。
    指定方法:-XX:+UseBiasedLocking
   Get<Primitive>Fieldの最適化版を使う
    指定方法:-XX:+UseFastAccessorMethods
   スレッドローカルのオブジェクト割り当てブロックを使用する
    指定方法:-XX:+UseTLAB
   ラージメモリページをリクエストできるようにする
    指定方法:-XX:+UseLargePages
   メモリー処理時に多発するエラー「GC overhead limit exceeded」を無効化する。
    指定方法:-XX:-UseGCOverheadLimit
   
おまけ

放送で使ってるオプションは以下のとおり(2018/03/26更新)

-server -XX:+UseG1GC -XX:-UseGCOverheadLimit -XX:+UseTLAB -XX:+UseLargePages -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -Xmx20G -Xms20G -XX:MetaspaceSize=15G -XX:MaxMetaspaceSize=15G -XX:CompressedClassSpaceSize=1G -Xss5G


広告
コメントを書く
コメントをするには、
ログインして下さい。