Wenn etwa im Gespräch nur die Entwicklung Raum (dh ohne Berücksichtigung von Anwendungen und Betriebssystem), es hängt wirklich von der Art des Projekts (n) die Sie beschäftigen. Beispielsweise erstellen kompilierte Sprachen viele temporäre Dateien, die wiederum in größere Dateien umgepackt werden. In meiner aktuellen Umgebung werden derzeit ca. 20 GB für den Quellcode + die kompilierten Objektdateien ausgeführt. Das beinhaltet nur die DEBUG-kompilierte Version, es wäre auch mehr für RELEASE kompiliert.
Bitte vergessen Sie nicht den 20% igen Overhead, den NTFS oder ein anderes Journaling-Dateisystem (vorausgesetzt Windows hier) benötigt, um Platz für das Journaling zu haben und die Festplatte funktionsfähig zu halten. Sie müssen die Festplattenanforderungen selbst anpassen .
Bei der Projektion der Festplattenanforderungen Ihres Projekts müssen Sie die folgenden Aspekte berücksichtigen:
- Welche Vermögenswerte sind Endprodukte? Zu den Elementen in dieser Klasse gehören Kunstobjekte, Bilder, Audiodateien usw., die nicht in einer anderen Datei kombiniert sind. In einer Webanwendung umfasst dies auch Ihre CSS- und JavaScript-Dateien. Vergessen Sie nicht Ihre Build-Skripte und andere Elemente, die nicht kompiliert wurden.
- Welche Assets generieren Zwischenergebnisse? Zu den Elementen in dieser Klasse gehört der Quellcode für kompilierte Sprachen, Verknüpfungsdateien usw. Zu Beginn des Projekts müssen Sie projizieren, wie groß diese voraussichtlich werden, und diese Schätzungen im Verlauf des Projekts mindestens zweimal mehr überarbeiten .
- Wie groß sind die Endprodukte? Ihre DLLs oder gemeinsam genutzten Bibliotheken belegen ebenfalls Speicherplatz. Das gleiche gilt, als hätten Sie Ihre Webanwendung in eine einfach zu implementierende Einheit gepackt (ähnlich einer Java WAR- oder EAR-Datei).
Verwenden Sie die folgende Formel, um eine grobe Schätzung der Größe Ihrer endgültigen Schätzung zu erhalten:
(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2
Wenn Sie sich denken, wie kann das sein? Folgendes berücksichtigen:
- Der Kompilierungsprozess kopiert statische Dateien in das Erstellungsverzeichnis sowie in die kompilierten Klassen.
- In der Verknüpfungs- und Verpackungsphase werden endgültige Binärdateien erstellt, die kleiner als die kombinierten Zwischendateien und statischen Dateien im Erstellungsverzeichnis sind, diese Dateien jedoch nicht löschen, wenn sie kombiniert werden.
- Das Endprodukt ist nur unwesentlich kleiner, da Binärdateien nicht sehr gut komprimiert werden können - Sie können jedoch Redundanz entfernen.
- Sie müssen den temporären Speicherplatz berücksichtigen, damit der Compiler arbeiten kann. Dafür ist der im Endprodukt zugewiesene zusätzliche Platz vorgesehen.
- Zuletzt müssen Sie sicherstellen, dass die Entwicklungsumgebung über einen gewissen Freiraum verfügt, damit das Betriebssystem das Laufwerk zufriedenstellen kann. Dafür ist die 20% ige Steigerung am Ende gedacht.
Wenn Sie zu Beginn eines Projekts stehen, lassen Sie Ihre Entwickler eine SWAG (Seriously Wild A ** Guess) bereitstellen, wie viele Klassen zur Implementierung der Funktion erforderlich wären. Multiplizieren Sie das mit 16KB. Einige Klassen generieren viel kleinere Objektdateien, andere größere. Dies sollte jedoch für Ihre SWAG-Schätzung des Speicherplatzes ausreichen. Nehmen Sie außerdem an, dass Ihre Endprodukte dieselbe Größe haben wie die von Ihnen geschätzten Klassen.
Ich gehe davon aus, dass Ihr Arbeitgeber Quoten für jedes Benutzerprofil festlegen möchte. Ich hoffe aufrichtig, dass sie keine Roaming-Profile mit der Entwicklungsumgebung unterhalten. Das Problem bei Roaming-Profilen ist das Schervolumen der Dateien, die übertragen werden müssen. Das Windows-Betriebssystem (und das Samba-Protokoll) sind bei der Übertragung einer großen Anzahl von Dateien notorisch ineffizient. Das Übertragen von 100 1k-Dateien dauert eine Größenordnung länger als 1 100k-Datei.
Hoffentlich erhalten Sie so genügend Informationen, um mit Ihrem Arbeitgeber zu verhandeln.