Kami mendapatkan waktu kompilasi yang sangat lambat, yang bisa memakan waktu lebih dari 20 menit pada mesin dual core 2GHz, 2G Ram.
Banyak dari ini adalah karena ukuran solusi kami yang telah berkembang menjadi 70+ proyek, serta VSS yang merupakan leher botol itu sendiri ketika Anda memiliki banyak file. (menukar VSS bukanlah pilihan, jadi saya tidak ingin ini turun menjadi bash VSS)
Kami melihat penggabungan proyek. Kami juga melihat memiliki beberapa solusi untuk mencapai pemisahan yang lebih besar dari kekhawatiran dan waktu kompilasi yang lebih cepat untuk setiap elemen aplikasi. Ini bisa saya lihat akan menjadi neraka DLL ketika kami mencoba untuk menjaga semuanya tetap selaras.
Saya tertarik untuk mengetahui bagaimana tim lain telah menangani masalah penskalaan ini, apa yang Anda lakukan ketika basis kode Anda mencapai massa kritis yang Anda buang setengah hari menonton bilah status mengirimkan pesan kompilasi.
PEMBARUAN Saya lupa menyebutkan bahwa ini adalah solusi C #. Terima kasih untuk semua saran C ++, tapi sudah beberapa tahun sejak saya harus khawatir tentang header.
EDIT:
Saran bagus yang telah membantu sejauh ini (tidak mengatakan tidak ada saran bagus lain di bawah ini, hanya apa yang telah membantu)
- Laptop 3GHz baru - kekuatan dari utilisasi yang hilang bekerja dengan sangat baik ketika melakukan manajemen
- Nonaktifkan Anti Virus saat dikompilasi
- 'Disconnecting' dari VSS (sebenarnya jaringan) selama kompilasi - Saya mungkin meminta kita untuk menghapus integrasi VS-VSS sekaligus dan tetap menggunakan UI VSS
Masih tidak merobek-robek melalui kompilasi, tetapi setiap bit membantu.
Orion memang menyebutkan dalam komentar bahwa generik mungkin juga bermain. Dari pengujian saya tampaknya ada hit kinerja minimal, tetapi tidak cukup tinggi untuk memastikan - waktu kompilasi dapat tidak konsisten karena aktivitas disk. Karena keterbatasan waktu, pengujian saya tidak menyertakan banyak Generik, atau sebanyak mungkin kode, seperti yang akan muncul dalam sistem langsung, sehingga dapat menumpuk. Saya tidak akan menghindari menggunakan obat generik di mana mereka seharusnya digunakan, hanya untuk kinerja waktu kompilasi
WORKAROUND
Kami menguji praktik membangun area baru aplikasi dalam solusi baru, mengimpor dll dll sesuai kebutuhan, mereka mengintegrasikannya ke dalam solusi yang lebih besar ketika kami senang dengan mereka.
Kami juga dapat melakukan hal yang sama terhadap kode yang ada dengan menciptakan solusi sementara yang hanya merangkum area yang perlu kami kerjakan, dan membuangnya setelah mengintegrasikan kembali kode tersebut. Kita perlu mempertimbangkan waktu yang diperlukan untuk mengintegrasikan kembali kode ini terhadap waktu yang kita peroleh dengan tidak memiliki pengalaman seperti Rip Van Winkle dengan pengompilasi ulang yang cepat selama pengembangan.