「TwineCompile」は、アップデートサブスクリプションが有効なユーザーを対象としたProfessional版を含むすべてのC++Builderのエディションで無償での利用可能なプラグインであり、 GetItパッケージからインストールすることができます。
TwineCompileは、C++Builderのコンパイル時間を大幅に短縮するソリューションで、C++Builder IDEに直接統合され、マルチスレッド、ファイルキャッシュ、自動バックグラウンドコンパイルなどの技術を活用することで、コンパイル/メイク/ビルド時間を劇的に削減します。
それでは、実際のプロジェクトでどの程度の効果があるのか見てみましょう。これをテストするために、C++Builderでビルドする2つの大規模なオープンソースC++ライブラリを入手しました。
それはXercesとSDL2です。XercesはXMLパーサーのライブラリで、SDL2は非常によく知られたオープンソースのウィンドウおよび入力ライブラリで、ゲームによく使用されています。 どちらも適切なサイズの大規模なC++コードベースであるため、優れたテストケースになります。
下図は、実際にTwineCompileの使用有無によってビルド時間を比較したグラフです。
- IDE(標準のClangコンパイラ)でビルドした場合、Xercesのビルドにかかった時間は5分19秒。それに対してTwineCompileを使用した場合のビルド時間は51秒でした。なんと6倍のスピードアップ!
- IDE(標準のClangコンパイラ)でビルドした場合、SDL2のビルドにかかった時間は2分10秒。それに対してTwineCompileを使用した場合のビルド時間は21秒でした。なんと6.2倍のスピードアップ!!
上記の結果をご覧いただいて理解できるように、TwineCompileの使用有無によってビルド時間に大きな違いが生じます。なぜ C++プロジェクトのビルド時間にこれほどまでの違いがあるのでしょうか。
以下は、今回のテストで使用したPC環境の詳細です。
- CPU: Intel i7-3930Kプロセッサ(ハイパースレッディング搭載6コア)
- メモリ: 16GBのRAM
- ストレージ: Samsung XP941 M.2 PCIe (SSD)
TwineCompileによるパフォーマンスの向上は、主に利用可能なコアの数に依存いたします。 クリーンビルドでは、4コアCPUで約4倍、12コアCPUで約12倍のパフォーマンス向上が期待できます。しかし、TwineCompile はキャッシングを実装しており、他のシナリオ(クリーンビルドではない、またはリソースに制約のあるマシンなど)を備えているため、Makeはさらに高速になります。例えば、非常に時間がかかっていたC++プロジェクトのビルドを現在の半分、もしくは4分の1、さらにはプロジェクトのコンパイル速度が50倍になったという報告もあります。そのためアプリケーションのサイズによっては、1日あたり1時間以上節約でき、開発チーム全体の時間を大幅に節約することができます。
TwineCompileは、GetItパッケージマネージャの「IDE Plugins」のカテゴリの中から見つけることができ、以下のユーザーは無償で利用可能です。
- アップデートサブスクリプションが有効なユーザー
- C++Builder 10.4のすべてのエディション(以前は、Professional版は対象外でしたが、現在は利用可能)
TwineCompileを利用すると、これまでビルドが遅かったClangコンパイラ(bcc64、bcc32c)に比べて、顕著にビルド速度が向上します。もし興味をもちましたら、是非一度ダウンロードし、実際にご自身のプロジェクトをビルドして、その速度を体感してみてください!!
関連情報
「新たにアップデートされたTwineCompileでC++のコンパイル速度をスピードアップ – GetItで入手可能に!」