回答:
プラットフォームに関係なく、単一の大きなファイルを使用すると、パフォーマンスにいくつかの利点があります。多くのPCゲームも大きなファイルを使用します。
大きなファイル内の各ファイルのオフセットを手動でキャッシュして、ファイルシステムディレクトリエントリを読み込む必要を回避できます(キャッシュを見逃した場合、ファイルごとに複数のシークが発生する可能性があります)。
ファイル内のデータの順序を完全に制御できるため、遅いシークの必要性を最小限に抑えるようにデータを調整できます。
一般に、データ圧縮は、個々のファイルよりも単一の大きなファイルでより効果的です。
シークを避けることは、ロード時間を短縮するのに非常に効果的であることに注意してください。一般的なハードドライブのシーク時間は10ミリ秒、転送速度は100 MB /秒です。合計サイズが1MBのシェーダーファイルを100個ロードする必要があるとします。それぞれのシークを行う必要がある場合、すべてをロードするのに1秒かかります。1回のシークでは、すべてをロードするために20ミリ秒を見ています。
もちろん、すべてのコンソールにハードドライブがあるわけではなく、光学ドライブのシークパフォーマンスがさらに悪いため、これらのシェーダーはシーク時にDVDをロードするのに5秒以上かかる場合があります。また、コンソールはPCに比べてキャッシュとして使用するメモリがはるかに少ないため、データをより頻繁にロードする傾向があります。
Adamからの非常に良い答えとは別に、私は他のいくつかの重要な要因を指摘したいと思います。
ファイルの数が少ないほど、アプリケーションの展開が簡単になります。 これは、iOS、Android、Windows Phoneなどのモバイルプラットフォームにアプリケーションを展開する場合に特に当てはまります。Windows Phoneの場合でも、展開に使用されるXAPファイルは単なるzipアーカイブであるため、必要な数のファイルを保持できます。
すべてのアセットを1つのファイルにまとめることで、すべてのアセットが「断片的に」ダウンロード/読み取られることが保証されます。多くのゲーマーは、ゲームの開始前にアセットのダウンロードまたはアンパックに顕著な遅延を許しますが、ゲーム中に微妙な一時停止に直面する限り、彼らは寛大ではありません。もちろん、リソースをRAMに事前にキャッシュすることもできますが、ファイルごとにリソースをロードするよりも、「個別に」リソースをロードする方が簡単です。