開発スペース(つまり、アプリとOSの要件を除く)だけについて話すとき、それは実際には、扱うプロジェクトの種類に依存します。たとえば、コンパイルされた言語は多くの一時ファイルを作成し、それらはさらに大きなファイルに再パッケージ化されます。私の現在の環境では、現在、ソースコード+コンパイル済みオブジェクトファイル用に約20GBを実行しています。これはDEBUGコンパイル済みバージョンのみを含みます。RELEASEコンパイル済みの場合も同様です。
NTFSまたはその他のジャーナリングファイルシステム(ここではWindowsと想定)がジャーナリングとハードドライブの正常性を維持するための余地を必要とする20%のオーバーヘッドを忘れないでください。 必要なハードドライブのサイズを決める必要があります。
プロジェクトのハードディスクのニーズを予測するときは、次の点を考慮する必要があります。
- 最終製品はどのような資産ですか? このクラスのアイテムには、別のファイルに結合されていないアートアセット、画像、サウンドファイルなどが含まれます。Webアプリケーションでは、CSSおよびJavaScriptファイルも含まれます。コンパイルされていないビルドスクリプトやその他のアイテムを忘れないでください。
- どの資産が中間結果を生成しますか? このクラスの項目には、コンパイル済み言語のソースコード、リンクファイルなどが含まれます。プロジェクトの開始時に、これらがどのくらいの大きさになるかを予測し、プロジェクトの進行に合わせてこれらの見積もりを少なくとも2倍修正する必要があります。 。
- 最終製品の大きさは? DLLまたは共有ライブラリもスペースを占有します。Webアプリケーションを(Java WARファイルまたはEARファイルと同様に)簡単にデプロイ可能なユニットにパッケージ化した場合と同じです。
最終的な見積もりの大まかな見積もりについては、次の式を使用します。
(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2
あなたが自分で考えているなら、それはどうですか?以下を検討してください。
- コンパイルプロセスでは、静的ファイルとコンパイルされたクラスがビルドディレクトリにコピーされます。
- リンクとパッケージ化の段階では、ビルドディレクトリ内の結合された中間ファイルと静的ファイルよりも小さい最終的なバイナリが作成されますが、結合されたときにこれらのファイルは消去されません。
- バイナリは十分に圧縮できないため、最終的な製品はわずかに小さくなりますが、冗長性を取り除くことができます。
- コンパイラーが機能するためには、一時スペースを考慮する必要があります。これが、最終製品で割り当てられる追加のスペースの目的です。
- 最後に、OSがドライブを快適に保つことができるように、開発環境にある程度の余裕があることを確認する必要があります。これが、最終的に20%増加する理由です。
プロジェクトの開始時に、機能を実装するために必要なクラスの数について、開発者にSWAG(Seriously Wild A ** Guess)を提供してもらいます。これに16KBを掛けます。一部のクラスははるかに小さいオブジェクトファイルを生成し、他のクラスはより大きなオブジェクトファイルを生成します。しかし、これはSWAGのディスク容量の見積もりには十分です。また、最終製品は、見積もったクラスと同じサイズになると想定します。
あなたの雇用主は、各ユーザープロファイルに割り当てを設定したいと考えています。開発環境で移動プロファイルを楽しまないことを心から願っています。移動プロファイルの問題は、転送する必要のあるファイルの膨大な量です。Windows OS(およびSambaプロトコル)は、多数のファイルを転送する際に非常に非効率的です。1つの100kファイルよりも100つの1kファイルを転送するには、1桁長い時間がかかります。
うまくいけば、これはあなたの雇用主と交渉するのに十分な情報を提供します。