LoginSignup
1
0

octobuildでUnreal Engineのビルドを高速化する

Posted at

はじめに

octobuildはUnreal Engine用のビルド高速化ツールです.

動作原理

ccacheicecreamと同じくコンパイルコマンドを元にコンパイル結果をキャッシュすることでビルドを高速化します. つまり2回目から速くなります.
また, Incredibuildの振りをしているので併用はできません. Incredibuildにもキャッシュ機能があるので, 併用する意味はありません.

インストール

インストーラがあるので, そのまま実行してもらうといいです.
2023/12の時点では, キャッシュディレクトリの扱いに不具合があるらしく工夫が必要です. (気が向いたらIssueなりPull Requestを投げる.)

Windowsのマイ ドキュメント以下がキャッシュ保存ディレクトリのデフォルトなのですが, ディレクトリへのアクセス処理が不具合を起こしているようです. 特殊フォルダあるあるです.
次のどちらかに設定ファイルを作成して, キャッシュディレクトリを変更します.

C:\ProgramData\octobuild\octobuild.conf
C:\Users\<user_name>\AppData\Roaming\octobuild\config\octobuild.conf

例えば次のようにします.

cache: C:\octobuid\cache
cache_limit_mb: 65536
cache_compression_level: 1
coordinator: null
coordinator_bind: 0.0.0.0:3000
helper_bind: 0.0.0.0:0
process_limit: 16
run_second_cpp: true
use_response_files: true

さらに, octobuildのサービスは起動時に設定ファイルをロードしているので, 設定ファイル変更後はWindowsを再起動するといいでしょう.

トラブルシューティング

  • オブジェクトファイルが壊れている等のエラーでビルドが失敗する.
    • 動作原理的にコンパイル時の環境で追えない環境変化, グローバルなプリプロセッサマクロの変化などに弱いです. 何かおかしいなと思ったら, xgConsole /resetを試してみてください.

計測

軽く計測しました。

CPU Ryzen 7 7700
Memory DDR5-4800 64GB
キャッシュSSD CT2000MX500SSD1
エンジンHDD 7200rpm SATA

msvcキャッシュはSSD, エンジンのソースコードはHDDに置いてあります.
エンジンのソースコードをHDDに置いてしまっているのがいけないのかもしれない. ただ確実に速くはなるようです. あとはキャッシュを共有できるかです, どう設定したらいいのでしょう.

  • 初回
Cache statistic: hit 0 of 2748 (0 %), remote 0, read 0, write 14556535849, total 14556535849
Total time in XGE executor: 10455.87 seconds
Total execution time: 11060.79 seconds
  • リビルド
Cache statistic: hit 2745 of 2748 (99 %), remote 0, read 14554198893, write 2336983, total 14556535876
Total time in XGE executor: 9843.48 seconds
Total execution time: 10390.62 seconds
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0