Khi nói về chỉ không gian phát triển (tức là không bao gồm các ứng dụng và các yêu cầu hệ điều hành), nó thực sự phụ thuộc vào loại dự án (s), bạn đang đối phó với. Ví dụ, các ngôn ngữ được biên dịch tạo ra rất nhiều tệp tạm thời lần lượt được đóng gói lại thành các tệp lớn hơn. Trong môi trường hiện tại của tôi, chúng tôi hiện đang chạy khoảng 20 GB cho mã nguồn + các tệp đối tượng được biên dịch. Điều đó chỉ bao gồm phiên bản được biên dịch DEBUG, nó cũng sẽ được nhiều hơn cho việc biên dịch lại.
Xin đừng quên 20% chi phí mà NTFS hoặc hệ thống tệp nhật ký khác (giả sử Windows ở đây) cần có chỗ để ghi nhật ký và giữ cho ổ cứng khỏe mạnh. Bạn sẽ phải tự kích thước ổ cứng cần .
Khi chiếu các nhu cầu đĩa cứng của dự án của bạn, bạn sẽ phải xem xét các khía cạnh sau:
- Tài sản nào là sản phẩm cuối cùng? Các mục trong lớp này bao gồm tài sản nghệ thuật, hình ảnh, tệp âm thanh, v.v. không được kết hợp thành một tệp khác. Trong một ứng dụng web, điều này bao gồm các tệp CSS và JavaScript của bạn. Đừng quên tập lệnh xây dựng của bạn và các mục khác không được biên dịch.
- Tài sản nào tạo ra kết quả trung gian? Các mục trong lớp này bao gồm mã nguồn cho các ngôn ngữ được biên dịch, các tệp liên kết, v.v. Khi bắt đầu dự án, bạn sẽ phải dự kiến mức độ lớn mà bạn mong đợi những thứ này sẽ nhận được và sửa đổi các ước tính đó ít nhất hai lần khi dự án tiếp tục .
- Làm thế nào lớn là những sản phẩm cuối cùng? DLL của bạn hoặc thư viện chia sẻ cũng chiếm không gian. Tương tự như khi bạn đóng gói ứng dụng web của mình thành một đơn vị có thể triển khai dễ dàng (tương tự như tệp Java WAR hoặc tệp EAR).
Để ước tính sơ bộ mức độ ước tính cuối cùng của bạn lớn như thế nào, hãy sử dụng công thức sau:
(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2
Nếu bạn đang nghĩ cho chính mình, làm thế nào có thể? Hãy xem xét những điều sau đây:
- Quá trình biên dịch sao chép các tệp tĩnh vào thư mục xây dựng, cũng như các lớp được biên dịch.
- Giai đoạn liên kết và đóng gói sẽ tạo ra các nhị phân cuối cùng sẽ nhỏ hơn các tệp trung gian kết hợp và các tệp tĩnh trong thư mục bản dựng, nhưng không xóa các tệp đó khi chúng được kết hợp.
- Sản phẩm cuối cùng chỉ nhỏ hơn một chút vì nhị phân không thể nén rất tốt - nhưng bạn có thể loại bỏ sự dư thừa.
- Bạn cần tính đến không gian tạm thời để cho phép trình biên dịch hoạt động. Đây là những gì không gian thêm được phân bổ trong sản phẩm cuối cùng là dành cho.
- Cuối cùng, bạn cần đảm bảo môi trường dev có một số phòng thở để hệ điều hành có thể giữ cho ổ đĩa hạnh phúc. Đó là mức tăng 20% cuối cùng là dành cho.
Nếu bạn đang bắt đầu một dự án, hãy để các nhà phát triển của bạn cung cấp SWAG (Nghiêm túc hoang dã A ** Đoán) về số lượng lớp sẽ cần để thực hiện tính năng này. Nhân số đó với 16KB. Một số lớp sẽ tạo các tệp đối tượng nhỏ hơn nhiều và các lớp khác sẽ tạo ra các tệp lớn hơn. Nhưng điều này là đủ cho ước tính SWAG của bạn về không gian đĩa. Cũng giả sử sản phẩm cuối cùng của bạn sẽ có cùng kích thước với các lớp bạn ước tính.
Tôi cho rằng chủ nhân của bạn đang muốn thiết lập hạn ngạch cho mỗi hồ sơ người dùng. Tôi chân thành hy vọng họ không giải trí hồ sơ chuyển vùng với môi trường dev. Vấn đề với hồ sơ chuyển vùng là khối lượng cắt của các tệp cần được chuyển. Hệ điều hành Windows (và giao thức Samba) nổi tiếng là không hiệu quả trong việc chuyển số lượng lớn tệp. Sẽ mất một thời gian dài hơn để chuyển 100 tệp 1k hơn 1 tệp 100k.
Hy vọng rằng điều này cung cấp cho bạn đủ thông tin để đàm phán với chủ nhân của bạn.