よくある質問

IncrediBuildについて、技術的なよくある質問と
ライセンスに関するお問い合わせをまとめました。

IncrediBuildについて「よくある質問」とその回答をご紹介します。
問題が解決しない場合は、[email protected] までお気軽にご連絡ください。

インストール方法や使い方について教えてください。

ローカルマシンへ IncrediBuild をインストールする場合の手順と使い方を動画で解説しています。

・開始画面では、AgentとCoordinatorの両方を選択ください
・バックアップCoordinatorのインストールは不要です
・インストール フォルダ、ポート、キャッシュファイルのサイズは既定値で進めてください
・IncrediBuildアイコンの隣に ! マークが表示される場合はCoordinatorライセンスファイル (Webサイトでの登録完了後に送信) の読み込みが必要です
・CoordinatorとAgentをマシンにインストールします。次の動画で使用方法をご確認ください

IncrediBuild をインストールしたマシンで Visual Studio のビルドコマンドを使用できますか?

使用可能です。ビルドスクリプトを使用する場合は、VCのコマンドラインビルドツールをIncrediBuildのものに置き換える必要があります。

IncrediBuildを使う際に C++プロジェクトの変更は必要ですか?

いいえ。IncrediBuildでは Visual Studioでビルド可能なあらゆるC/C++プロジェクトをビルドできます。

IncrediBuild をインストールすると Visual Studioの環境は変わりますか?

ビルド、リビルド、消去、バッチビルドなど、IncrediBuildのメニュー/ツールバーや、現在のビルドを停止などのコマンドが利用可能になります。これらを Visual Studio の代わりにご利用ください。ビルド時の出力は「ビルドモニター」ディスプレイに表示さます。ビルドモニターではビルド出力の他にもビルドステータスバー (進行状況を表示) などの機能もご利用になれます。
ビルドモニターの例:

コマンドラインやビルドスクリプトから使用できますか?

はい。コンパイルのための豊富なコマンドライン インターフェイスを用意しており、msbuild.exe/devenv.exe の実行スクリプトに簡単に追加できます。BuildConsole.exe は devenv/msbuild のコマンドライン構文をサポートしているので、スクリプト内の実行ファイル名を置き換えるだけです。

Visual Studioプロジェクトのビルドでは、どの処理が分散されますか?

C/C++のコンパイルと MIDLステップが分散されます。IncrediBuild for Dev Toolsライセンスを利用すれば、カスタムビルド、ビルドイベント (プレビルド、プレリンク、ポストビルド)、カスタムルールで実行するファイルを分散することができます。

C++プロジェクトのコンパイルでは、どんな効果がありますか?

実際に試してみるのが一番です。再コンパイルが必要なファイル数によりますが、数ファイル程度のプロジェクトではビルド時間が 10~30%程度、インクリメンタルビルドが10~75%短縮されます。

IncrediBuild は大規模なビルド向けに設計されているため、プロジェクトのサイズが大きいほど高速化を実感できます。

どのようなファイル形式に対応していますか?

次のファイル形式に対応しています。
・Microsoft Visual C++ 2010、2012、2013、2015、2017: vcxprojファイル、.slnファイル
・MSVC 2008/2005/.NET: .vcxprojファイル、.slnファイル
・インテル® C++ コンパイラ: .icprojファイル
・eMbedded Visual C++ 4.0: .vcpファイル
・Microsoft Visual C++ 6.0: .dsp、.dswファイル

IncrediBuildがコンパイルやリンクプロセスを変更することで、ビルドに問題が生じることはありますか?

いいえ。IncrediBuildはコンパイル、リンクなど全てのビルドステップで同じ実行ファイルを使用します。IncrediBuildはコンパイラではありません。コンパイラをより効率的に使用するためのツールです。

「Predictive Excution (予測実行)」機能により依存するプロジェクトの一部を同時に実行し、処理をさらに最大 10~15% 高速化できます。依存関係に不要なファイルを同時にビルドするため、依存関係が壊れることはありません。

コンパイルを分散された側のマシン速度は低下しますか?

IncrediBuildはインストールされているマシンの使用状況に応じて、動作が自動的に調整されます。デフォルトでは Agentがコンパイルを実行する優先度はシステム内の他のプロセスよりも低く設定されおり、OSがIncrediBuildに割り当てるCPUリソースは、ユーザーやOSのプロセスに割り当てるものよりも少なくなります。

PCが使用されていない場合は、IncrediBuildにリソースを最大限に割り当て、PCが使用中の場合はAgentの活動レベルは低いまま維持されます。通常は自分のマシンにIncrediBuildがインストールされていると感じることさえありません。

IncrediBuildをインストールするためのソフトウェア / ハードウェアのシステム要件を教えてください。

IncrediBuildは Windows XP、Server 2003、Vista、Windows 7/8.1/10 で、TCP/IPベースのネットワークに対応しています。

Agentを Visual Studioのビルドで使用する場合は、Microsoft Visual C++ 2013、2012、2010、2008、2005、.NET、6.0 (Visual Studio Express にはアドオンできませんが、コマンドラインから使用可能)に対応しています。

Helper Agent (「パッシブ」なリソースとしてのみ使用され、ビルドを開始しないAgent) は特別なソフトウェアは不要です。

ハードウェアのシステム要件は、Intel Core i3、4GB RAM、1000Mbpsネットワーク接続です。

IncrediBuildが帯域幅をすべて使い果たすことはありますか?

いいえ。ネットワークのトラフィックを最小限に抑えるために、キャッシュや圧縮などを行っています。標準的なネットワークでは、複数のコンパイルが行われている場合でもまったく問題ありません。

ユーザーごとにOS、Visual Studio のバージョン、DLLバージョンが違っても問題ありませんか?

問題ないです。リモートAgent上でビルドを実行する際には、実行元のビルドマシンの状態をコピーした「仮想環境」の下ですべてが行われます。つまり、コンパイルで使用される実行ファイルは、ビルドマシンのものです。

IncrediBuildのインストールフォルダにある「File Cache」は何ですか?

「File Cache」フォルダには分散ビルドを高速化するために、ビルドマシンから転送されたソースファイルがキャッシュされています。
フォルダのサイズと場所は Agent Settingsダイアログと Coordinator Monitorから設定できます。
ソースツリーをすべて保管するには十分なサイズが必要ですが、リモートAgentでのインデックスの作成を素早く行い、ビルドを高速化するために、フォルダのサイズはできるだけ小さい値に設定することをお勧めします。

ビルドがIncrediBuildを使って実行されたことを確認するためのスクリプトを教えてください。

IncrediBuildは自動的に「XoreaxBuildContext」(ビルド実行時の値は [1]) と呼ばれる環境変数を定義します。この環境変数を照会して、IncrediBuild によりビルドが実行されているかどうかを確認できます。

また、ビルドを開始するマシン上に「buildSystem.exe」が、ビルド中のリモートマシン上に「BuildHelper.exe」プロセスが作成されます。

IncrediBuildの分散システムは、セキュリティ上どのような対策をしていますか?

IncrediBuildのライセンス構成では、分散システムに参加できる「許可済み」の Agent一覧が作成され、作業グループ外から侵入は阻止します。他にもネットワークプロトコルをセキュリティ上の脅威から保護するための対応が多く施されています。万が一システムの悪用を阻止できない場合でもファイルを保護できるよう、クローズドな仮想環境下でファイルを扱います。また、社内ですでにご利用中のセキュリティインフラ (ファイアウォールなど) による保護も受けます。

IncrediBuildはプリコンパイル済みのヘッダーに対応していますか?

はい。IncrediBuildはプリコンパイル済みヘッダーを使用したプロジェクトに対応しており、PCHを使用してプロジェクトを高速化します。ただし、「自動」PCH を IncrediBuildで使用するとビルドが遅くなるので、標準のヘッダーベースのPCHに切り替えるか、PCHを完全に無効にすることを推奨します。

IncrediBuildでも、Visual Studioのブラウザ情報機能を使用できますか?

はい。ブラウザ情報ファイルの作成に対応しています。

カスタム、プレビルド、プレリンク、ポストビルドステップが含まれるプロジェクトもにも対応していますか?

はい。カスタムビルドステップとカスタムビルドイベントは、デフォルトではビルドを行うマシンのローカル環境で実行されます。複数のCPUを持つローカルマシンでは、各CPUで複数のステップを同時に実行できます。

カスタムステップのプロパティを調整して、リモートで実行することもできます。次のリンクを参照ください。

http://www.incredibuild.co.jp/webhelp/#method_1.html

コンパイルにDLLとタイプライブラリが必要なCOMオブジェクトのプロジェクトには対応していますか?

はい。コンパイルはすべてビルドマシン環境をコピーした仮想のミラー環境内で行われます。ですので、リモートマシン上にあるファイルやDLLに関係なく、元のマシン上のDLLとファイルに基づいてコンパイル出力が生成されます。

いくつかのソースファイルがネットワークドライブ上にありますが、分散に影響がありますか?

IncrediBuildはネットワーク上のファイルにアクセスでき、より効果的に分散します。IncrediBuildのキャッシュメカニズムにより、ネットワーク上にあるファイルを含むプロジェクトをコンパイルする場合、Visual Studioやその他のビルドツールに比べて優れた結果を期待できます。

ビルドに参加するマシンはどのように決まりますか?

IncrediBuild Coordinatorは、各AgentのCPUや現在のアクティビティレベルなど、コンパイルでAgentに影響を与える要因を把握しています。Coordinatorモニターの「Performance Rating」でご覧になれます。
View -> Columns -> Hardware -> Performance Rating

ビルドが始まるとCoordinatorは、その時点で利用できる最も効果的なAgentにタスクを割り当てますが、Agentの空き状況に応じて変更されます。例えば、ビルドに参加中のマシンでCPUに負荷がかかる作業を開始した場合、そのマシン上で実行中のコンパイルは中止され、別のマシンに割り当てられます。

複数のAgentが同時にビルドを開始するとどうなりますか?

IncrediBuild Coordinatorはそれぞれのビルドに使用可能なCPUが同程度になるように、マシンを割り当てます。

ビルド中にCoordinatorが利用できなくなるとどうなりますか?

Coordinatorはリモートでコンパイルを行うためのリソースを管理しますが、ビルド自体に必要なわけではありません。ビルドの開始後に何らかの理由でCoordinatorが利用できなくなると、その時点でのアサイン状況のまま、Coordinatorが復旧するまでスタンドアロンモードでビルドを続行します。

メインのCoordinatorが利用できなくなった場合に自動的に作動する「Backup Coordinator」をインストールすることを推奨します。Backup Coordinatorは、メインのCoordinatorが復旧するまでのリソースの管理のみを行います。ライセンス パッケージの割り当て、ライセンスの管理などはできません。

ヘルパーとしてコンパイル中のAgentマシンがダウンした場合どうなりますか?

Agentが使用できなくなった場合や負荷がかかりすぎてコンパイルに支障が出る場合は、動作を停止し、コンパイル中のファイルは別のAgentに再度割り当てられてビルドが継続されます。

どんなコンパイラーをサポートしていますか?

IncrediBuildがサポートしているコンパイラーは次の通りです。
Microsoft cl.exe、Csc、Intel コンパイラー、Nvcc、tcc、dcc、Xbox、PS4、Nintendo プラットフォーム

随時追加でコンパイラーをサポートしていますので、定期的に次のリンクをチェックしてください。
http://www.incredibuild.co.jp/webhelp/#IB_for_Make_and_Build_Tools1.html

また、XGE インタフェース ソリューションを様々なビルドツールやスクリプトで使用して、未対応のコンパイラーを実行することもできます。

どのようなプログラミング言語を高速化できますか?

現在 C/C++ および C# コードを高速化できます。

IncrediBuild はマルチスレッディングをサポートしていますか?

サポートはしていますが、高速化はできません。
IncrediBuild はコード/ツールのマルチプロセス機能を中継して複数のコアで同時に処理を行います。

IncrediBuild でサポートしているゲーム開発プラットフォームを教えてください。

次のゲーミング プラットフォームに対応しています。
XboxOne
Nintendo 3DS/Switch/Wii
Play Station
Google Stadia

スタンドアロンのマシンでも IncrediBuild を使用できますか?

はい。複数のコアがあるマシンでは、それぞれのコアを活用してコンパイル速度を大きく向上させることができます。
C++ビルド向けにデフォルトで有効になっているアクセラレーション機能 (予測実行機能) により、スタンドアロンでも通常のVisual Studioビルドよりも高速に処理できます。

IncrediBuildをインストール後にファイルをコピーしたり、DLLファイルを登録するなど作業は必要ですか?

いいえ。IncrediBuildは仮想環境内でファイルの同期を行うので、コンピューターのファイルシステムが変更されたり、DLLファイルがインストールされることはありません。

1台のCoordinatorに、何台のAgentをアサインできますか?

1台のIncrediBuild Coordinatorに紐付けるAgent数の制限はありません。
ただし、500台以上のAgentが必要な場合は、環境をいくつかのワークグループに分けて、各ワークグループごとに Coordinatorを割り当てることをお勧めします。

Coordinatorと同じマシンにAgentをインストールすることはできますか?

はい。Coordinatorはあまりリソースを必要としない軽量なコンポーネントです。ただし、性能が極端に低いマシンへのインストールは避けてください。また、グリッドリソースを管理するため、Coordinator をインストールしたマシンは常にオンラインにしておく必要があります。

C#プロジェクトを高速化できますか?

はい。Visual Studio 2010以降で、C#の高速化をサポートしています。C#の場合、プロジェクトレベル (1 C# プロジェクト = 1 IncrediBuild タスク) で分散が行われるため、最大限の効果を得られます。

VBプロジェクトをビルドできますか?

はい。ローカルマシン上でのみVBプロジェクトをビルドできます。高速化は C/C++、C#プロジェクトのセクションのみとなります。

makefileベースのプロジェクトを高速化できますか?

Makeやビルドツールで実行されるさまざまなビルドを分散できます。
対応ツールはこちらから

コード解析ツールは高速化できますか?

はい。現在 KlockworksおよびCoverityに対応しています。

どちらの場合も、IncrediBuild は Klocworks / Coverity が解析フェーズで使用される通常のビルドの一部として build trace (ビルドトレース) ファイル (JSON 形式) を生成します。Klocworks では解析フェーズ自体もスピードアップできます。

詳細についてはサポートチームにお問い合わせください。
[email protected]

Visual Studio ビルドの過程で、リモートマシンで生成されたファイルをローカルマシンに同期するにはどうすればよいですか?

ローカル (Initiator) マシンに受け渡すファイルを定義することができます。

設定方法は次の通りです。

1.Coordinator マシン上で IncrediBuild のトレイアイコンを右クリックして、[Coordinator Monitor] を選択します。

2.Coordinator Monitor に Agent の一覧が表示されます。

3.Iniciator Agent を右クリックして [Set Registry Value…] を選択します。

4.[Value Category] が [Builder] になっていることを確認します。

5.[Name] に次の文字列を入力します。AdditionalOutputMasks

6.[Data] に Initiator に受け渡したいファイルを入力します。例: すべての .txt ファイルを Iniciator に受け渡したい場合は「*.txt」と入力。

要件上、ローカルマシン上でしかビルドできません。ローカルマシンのみのビルドはどのように設定できますか?

Visual Studioでプロジェクトをローカルマシンでのみ実行する場合は、
[プロパティ] > [構成プロパティ] > [C/C++] > [プリプロセッサ] > [プリプロセッサの定義] を選択して次の文字列を追加します。
IB_RunLocal

VS2008 以前のバージョンでは IncrediBuild メニューの [Solution Settings] を使用します。

ファイルごとに設定したい場合は、ローカルでのみビルドする必要があるファイルの [プリプロセッサの定義] に IB_RunLocal を追加します。

Visual Studio 以外の環境 (MSBuild.exe のみ) で IncrediBuild を使用するにはどうすればよいですか?

ご利用の環境にMicrosoft MSBuildをセットアップして、IncrediBuildなしでMSBuildビルドコマンドが動作することを確認してから、次のサンプルビルドコマンドを使用します。

BuildConsole.exe MySln.sln /rebuild /cfg=”Debug|Win32″ /UseMSBuild /msbuildargs=”/myarg1 /myarg2’’

トラブルシューティング

IncrediBuild を実行中、プロジェクトの中間フォルダに作成される「vc [NUMBER] _ib_X.pdb」ファイルは何ですか?

2012年以前にリリースされたVisual Studioでは、ビルドに参加しているAgentごとに個別のデバッグ情報と .idb/.pdb ファイルが作成されて、中間フォルダに格納されます。
それ以降のバージョンではリモートマシンのコアごとに同様のファイルが作成されます。例えば、8コアのリモート Agent がある場合はすべてのコアに一時ファイルが作成されます。

Visual Studioで作成されたOBJ/EXEファイルが IncrediBuild で作成されたものと違うのはなぜですか?

デバッグ情報の配置、バイナリファイルのタイムスタンプ、リンクフェーズでの OBJファイルの順序などにより、IncrediBuildとVisual Studioの出力ファイルにはいくつかの違いがあります。これは正常であり、アプリケーションの動作に影響はありません。

他のビルドに参加しないように Agent を一時的に無効にするにはどうすれば良いですか?

IncrediBuild トレイアイコンを右クリックして [Disable Agent] を選択します。この操作はCoordinatorからリモートで行うこともできます。

Visual Studio の [ツール] > [オプション] メニューの [ディレクトリ] タブでディレクトリの一部を変更しましたが、IncrediBuild に反映されてないようです。

[ディレクトリ] タブで設定したディレクトリは該当のマシンでコンパイルするプロジェクトすべてに影響を与えるため、システム全体を設定する場合にのみ使用する必要があります。
プロジェクトレベルで設定を行う場合は [プロジェクト設定] ダイアログで行います。
Visual Studioでは閉じる際に新規・変更されたディレクトリ情報が保存されるため、IncrediBuild で新しいシステム ディレクトリを認識させるには情報を変更した後、Visual Studioを再起動する必要があります。

コマンドラインからBuildConsoleを実行しようとしていますが 「BuildConsole' is not recognized as an internal or external command, operable program or batch file.」というエラーが表示されます。

IncrediBuildのインストールフォルダに、PATH環境変数が設定されていません。PATH環境変数に BuildConsole.exe の正しいパスが含まれていることを確認してください。

ビルドに自分のマシンの Agent しか参加しません。

いくつかの要因が考えられます。

1. ご利用のマシン上の AgentがCoordinatorに登録されていない。
>システム管理者に問い合わせて、自身のライセンスが購入済みのAgentリストに追加されているかどうかを確認してください。

2. ビルドに必要なソリューションが Agentに割り当てられていない。
>IncrediBuildソリューションライセンスの割り当ては Coordinatorから行います。システム管理者に問い合わせて、必要なソリューションがマシンに割り当てられているか確認してください。

3. プロジェクトのファイルが小さすぎるため、Agent間で分散されない。
>ビルドモニターを開いて [View] > [View System Graph] にアクセスして特定の情報を表示するグラフを選択します。[Ready Tasks]を選択して、任意のタイムライン上にマウスを移動すると、並列処理で実行可能なタスク量を確認できます。これがローカルコアより少ない場合、タスクの分散はされません。

4.「Agent Settings」ダイアログのCoordinator名またはポートが間違っている。
>ビルドモニターの [Message] タブで警告がないかどうかを確認します。

5. 実行中のマシンがシャットダウンされている、ネットワークから切断されている、Coordinatorが利用できない。
>ビルドモニターの[Message]タブで警告の有無を確認します。

6. マシンがネットワークから切断されている。
>ネットワークケーブルと設定を確認してください。

7. ネットワークのセキュリティ制限により、マシンからCoordinatorまたはネットワーク内のAgentへのTCP/IPアクセスがブロックされている。
>システム管理者に問い合わせて、制限を解除してください。

8. ネットワーク制限によりリモート Agent に接続できない。
>ビルドモニターの[Message]タブに警告メッセージ「Failed to connect…port 31105」が表示されている場合はシステム管理者にリモートポートがブロックされている理由を問い合わせてください。

9. IncrediBuildのライセンスが失効した。
>システム管理者にお問い合わせください。

IncrediBuild のトレイアイコンが表示されません。

[スタート] メニューから [Xoreax IncrediBuild] ファイル > [IncrediBuild Agent Tray-Icon] の順に選択して再表示できます。
IncrediBuild トレイアイコンを常時表示するには「Agent Settings」ダイアログの [Tray-Icon] ページで [Enable tray-icon display on system start-up] のチェックボックスをオンにしてください。

Visual StudioにIncrediBuildメニューが表示されません。

「Agent Settings」ダイアログで [Visual Studio Add-in] > [General] の順にクリックして復元します。Visual Studio が閉じていることを確認してから [Restore Add-in] で該当の Visual Studio のバージョンのチェックボックスをオンにします。

IncrediBuildからビルドする際、ブラウザ情報が作成されません。Visual Studio では作成されますがなぜですか?

IncrediBuildはグローバル設定でブラウザ情報の設定を行います。「Agent Settings」で [Visual Studio builds] > [Browse Information] の順にクリックしてください。プロジェクトのビルド時に「Batch Build」ダイアログから、プロジェクトごとに設定を上書きすることもできます。

コンパイルの際、ヘッダファイル/タイプライブラリファイルに「No such file or directory」というエラーが表示されます。

該当のファイルが、カスタムビルドまたはソリューション内の別プロジェクトのMIDLによって作成された場合はプロジェクト間の依存関係の定義が欠落している可能性があります。

IncrediBuild でビルドした後、 Visual Studioでインクリメンタル ビルドを実行すると次のような警告が表示されます。「warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header」

ブラウザ情報を使用する場合:

1.ブラウザ情報を作成するようにプロジェクト構成を設定します (Visual Studioの [プロジェクトの設定]ダイアログの [C/C++]タブと [ブラウザ情報]タブの [ブラウザ情報を生成する]のチェックボックスをオンにします)。
2.この構成のブラウザ情報を作成するには「Agent Settings」ダイアログから [Visual Studio Builds] >[Browse Information] で [Always] または [According to ‘Generate browse info’ project setting] を選択するか、または一致する検索フレーズを使用します。
3.プロジェクトをリビルドします。

ブラウザ情報を使用しない場合:

1.ブラウザー情報を作成しないようにプロジェクト構成を変更します。
2.この構成のブラウザー情報を作成しないには「Agent Settings」ダイアログから [Visual Studio Builds] >[Browse Information] で [Never] または [According to ‘Generate browse info’ project setting] を選択するか、または一致する検索フレーズを使用します。

IncrediBuild Agent が起動しません。

次の手順で原因を特定してください。

1.システムトレイの IncrediBuild Agentアイコンにエラーが表示されている場合は、アイコンをクリックすると IncrediBuild Agentの最新のエラー情報が表示されます。

2.Windowsサービスを開いて「IncrediBuild Agent」を手動で起動します。権限の問題で起動できない場合はシステム管理者に問い合わせてください。この方法でのみ起動可能な場合は、セキュリティ上の制限によりWindowsの起動時に IncrediBuildのサービスが開始できないように設定されている可能性があります。システム管理者に問い合わせてください。

ビルド実行時に一部の Agent はコンパイルを開始しますが、コンパイルが完了する前に停止してファイルのコンパイルバーが消えます。なぜですか?

いくつかの理由があります。

1. ネットワーク接続の問題
>ビルドモニターの [メッセージ] タブをチェックして、Remote Agentに関連する接続メッセージから、ネットワーク上の問題でリモートマシンとの接続が切断されていないか確認してください。

2. プロセスの最適化
IncrediBuild はデフォルトで、ローカルマシンがビジー状態ではない場合にリモートマシンとローカルマシンの両方で同じプロセスを実行することがあります。これは最適化のための機能で、タスクを最初に完了したマシンの勝ちとなります。リモートマシンが頻繁にタスクをキャンセルしている場合、この機能を無効にすることができます。
「Agent Settings」で [Initiator] > [General] で [Restart remote processes on local machine when possible] のチェックボックスをオフにしてください。

IncrediBuild ライセンスをインストールしましたが、ビルドがスタンドアロンモードで実行されるというメッセージが表示されます。

Agentが未登録、またはAgentに必要なソリューションライセンスが割り当てられていません。次の手順に従ってください。

1. メインのCoordinatorマシンで Coordinator Monitorを開きます。

2. Agent一覧から該当するAgentを探します。

3. [Status]列に[Unsubscribed]と表示される場合は Agentを右クリックして [Subscribe]を選択します。[Subscribe] がグレーアウトしている場合は、ライセンスの登録数の上限に達しているので、他のAgentを登録解除する必要があります。

4. [Packages]列に、Coreパッケージのうち1つしか表示されていない、またはプロジェクトのビルドに必要なソリューションと別のパッケージが表示されている (Visual Studio C++をビルドする場合に「Make & Build Tools」を持っている) 場合は、Agentを右クリックして、[Allocate Package]を選択し、適切なソリューションライセンスを Agent に割り当てます。

IncrediBuild ライセンスをインストールしましたが、ビルドで使用されるプロセッサは1つだけです。どうすればよいですか?

「Core」パッケージのどれかが欠けている可能性があります。次の手順に従ってください。

1. Coordinator Monitorを開きます。

2. Agent一覧から該当するAgentを探します。

3. Agent を右クリックして[Allocate Package]を選択し、[Core]パッケージ (「4 Core」パッケージ) のいずれかを選択します。グレーアウトしている場合はライセンスの登録数の上限に達しているので、他のAgentを登録解除する必要があります。

Agentが使用されていないにもかかわらず、Coordinatorで利用可能な CPU が 90%〜100% と表示されます。

スクリーンセーバーの起動中、IncrediBuildはスクリーンセーバーがCPUを使用してもマシンが利用可能であると判断します。そのマシンのAgentがコンパイルに使用されると、コンパイラは優先度の高いプロセスとして実行するのでスクリーンセーバーよりもCPUが多くなります。

ビルド中にコンパイルバーを確認すると、同じファイルが 2 つのマシンでコンパイルされているようです。これは正常ですか?

はい、正常です。低速なリモートAgentのせいでビルドが遅ならないように、ローカルマシン上でファイルのコンパイルを重複して行うことがあります。この場合同じファイルが2回コンパイルされたように見えます。

この設定は「Agent Settings」から [Initiator] > [General] の順にクリックして [restart remote processes on local machine when possible] で変更できます。機能を無効にするとパフォーマンスが低下することがあります。

IncrediBuildとVisual Studioの /MP オプションの違いは何ですか?

IncrediBuildを /MP オプションで使うとさまざまなメリットが得られます。

MSDN参照: https://msdn.microsoft.com/en-us/library/bb385193.aspx
ここでは IncrediBuild と対照的に /MP は次のオプションや言語機能と互換性がありません。#Importプリプロセッサディレクティブ、/E、/EP、/Gm、/showIncludes、/Yc。

異なるCPPファイルに異なるコンパイラディレクティブがある場合、Visual Studioの /MP は並列に実行しませんが、IncrediBuildは並列に実行します。

IncrediBuildは、プロジェクト間に依存関係が存在するシナリオにより適しています。プロジェクトBがプロジェクトA に依存する場合、IncrediBuildは、可能であれば両方を同時にコンパイルします。
IncrediBuild には複数の構成を並列に実行できるバッチビルド機能があります (並列コンパイルに対応するようビルドが適切に構成されている場合)。

Rem IncrediBuild_AllowOverlap ディレクティブをカスタム ビルドステップやビルドイベントに追加すると、カスタムステップやビルドイベントと同時に次のビルドタスクに進むように、IncrediBuildに指示が出されます。

IncrediBuildは、開発者に特定の条件下で並行して実行できるようカスタム ビルドツールやビルドルールの実行を設定する機能を提供します。これは Visual Studioのデフォルト動作ではシーケンシャルにしか実行できません。たとえば、Qtのビルドではコード生成のカスタムビルドツールであるmocステップを、シーケンシャルではなく並列に実行できます。

この機能によりコンパイルのスループットが大幅に向上します。これをIncrediBuldの分散コンピューティングと組み合わせて、並列処理のためにプロセスをリモートCPUリソースに分散することで、ビルド時間を最大90%以上も短縮することができます。

IncrediBuild でビルドしたときに、コード内部の問題でビルドが失敗すると、IncrediBuild の出力にエラーが表示されません。

VS 2010以降のバージョンでビルドしている場合、この動作は「順不同」でタスクをスポーンすることでスループットを向上させる「予測実行」機能に関連しています。順不同でビルドが行われるため、出力の一部が失敗した時点で標準出力に達していない可能性があります。ビルドモニターの [Projects] タブで該当プロジェクトの出力を表示すると、[CL Preview] セクションで実際のエラー確認できます。

「通常」の出力を表示するには、次の手順でこの機能を無効にします。

イニシエーター マシンで「Agent Settings」を開き、[Visual Studio Builds] > [Advanced] の「Predictive Execution」セクションで [Enhance throughput using out-of-order tasks spawning] のチェックボックスをオフにします。

Visual Studio 2013 で IncrediBuild を使ってビルドをすると、次のメッセージが表示されます。「 Microsoft Visual Studio 2013 Version 12.0.31101.0. Copyright (C) Microsoft Corp. All rights reserved. Some errors occurred during migration.For more information, see the migration report」

これは、IncrediBuild の有無に関係なく、Visual Studio 2012/2013 で発生することがあります。
この問題を解決する手順は次の通りです。

1. Visual Studio 2013/2012 の devenv.exe が格納されたディレクトリでCMDを開きます。

2. 次のコマンドを実行します。devenv /resetuserdata general

Visual Studioの設定がリセットされて、問題が解決します。

このセクションではよくある質問とその回答をご紹介しています。
ご不明点がある場合は、[email protected] までお気軽にお問い合わせください。


IncrediBuild の「Agent ライセンス」「ソリューションライセンス」「Coordinator」「Agent」とは何ですか?

Agentライセンス
IncrediBuildソフトウェアを使用するグループを指します。
新しくライセンスを購入する場合は、「Agent」の初年度導入費用と「ソリューション」年間使用料が発生します。
既存のライセンスを更新する場合は、「Agent」の年間保守費用と「ソリューション」年間使用料が発生します。
IncrediBuildの新しいバージョンへのアップデート、フィックスへのアクセス、テクニカルサポートが含まれます。

ソリューションライセンス
様々な種類のビルドや処理を開始するのに必要なライセンスです。ビルドや処理を開始するAgent (イニシエーター)にはプロダクトに応じたソリューションライセンスが必要です。

Coordinator
はライセンスの管理、タスク割り当て、共有リソースの同期を行う IncrediBuild のサーバーコンポネントです。ライセンスの初回購入時に無料で提供されます。

Agent
登録されたIncrediBuildユーザーです。IncrediBuild を実行するマシンには、コア数に対応したAgentライセンスがインストールされている必要があります。Agentライセンスがインストールされたマシンは、IncrediBuild のワークグループの一員として、処理の高速化に参加できます。

既存ライセンスにAgentやソリューションを追加購入するのと、新しいライセンスを購入することの違いは何ですか?

既存のライセンスにAgentやソリューションを追加購入した場合、同ライセンスですでに動作しているIncrediBuildのマシングループにプロダクトが追加・アップグレードされます。

新しいライセンスを購入した場合、既存のワークグループやライセンスとは別の新たなグループが作成されます。通常は、異なるネットワークでお使いいただくためのものです。

IncrediBuildを適切に動作させるため、必要なライセンスを教えてください。

1. Agentライセンス
Agentライセンスには、4 / 8 / 16 / 24 / 32 / 48 / 64 コアのオプションがあります。論理コア数に合わせて購入してください。たとえば、物理コアが4/8スレッドのCPUを搭載したマシンでは、IncrediBuild の高速化をフル活用するため、8コアのAgentライセンスが必要です。
イニシエーター(タスクの実行マシン)、ヘルパー(タスクのリモート実行マシン)で必要です。

3. ソリューションライセンス
イニシエーター(タスクの実行マシン)には、Agentライセンスの他にソリューションライセンスが必要となります。

IncrediBuildは、Visual Studioの複数のバージョンで使用できますか?

はい。Visual Studioの各バージョンで「Agentライセンス」と「IncrediBuild for Visual Studio」のソリューションライセンスをご利用いただけます。

ライセンス購入後に、Agentライセンスを別のマシンに移せますか?

はい。利用中のAgentの「登録解除」と新しいマシンへの「登録」はIncrediBuild Coordinatorから行ってください。

FreeDevライセンスで IncrediBuildを試しました。もう数日試してから購入するかどうかを判断したいのですが。

[email protected]までご連絡ください。

IncrediBuild を購入しました。サポートやアップデートを受けることはできますか?

はい。IncrediBuild ライセンスの初回購入には 12ヶ月間のメンテナンスが付属し、IncrediBuildのバージョンアップデートとサポートが含まれます。

どのようにライセンスを受け取ることができますか?

購入が完了すると新しいライセンスファイルがメールで届きます。製品自体の出荷はありません。
クレジットカードでお支払いの場合、最終更新日まで使用可能なライセンスファイルが届きます。
銀行振込でお支払いの場合、注文を受けてから3営業日以内に請求書とライセンスファイルを送信します。

ライセンスを更新し忘れて期限が切れてしまいました。どうすればよいですか?

詳細については [email protected] までお問い合わせください。