Jawaban:
Scott Gu juga memposting tentang apa yang mempengaruhi kecepatan pembangunan, menunjuk terutama ke sumber daya I / O seperti hard disk.
Faktor yang saya temukan membuat perbedaan terbesar bukan faktor fisik, tetapi faktor perangkat lunak: Anti-virus apa yang telah Anda instal?
Beberapa produk anti-virus tidak menangani pengembangan perangkat lunak dengan sangat baik - mereka melihat semua file aplikasi ini ditulis ulang, dicurigai melakukan pelanggaran dan memindai ulang setiap file setiap saat.
(Lihat /programming/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 untuk lebih lanjut.)
Di sisi lain, jika Anda ingin meningkatkan kinerja mesin yang ada, tidak ada yang mengalahkan memaksimalkan memori yang tersedia untuk kemenangan cepat.
Inilah beberapa penelitian bagus dari Scott Hanselman tentang penggunaan banyak CPU untuk MSBUild. Percepatannya cukup dramatis.
Sunting: Saya harus mencatat, bahwa untuk mendapatkan pengalaman yang baik menggunakan Visual Studio, Anda memerlukan banyak RAM. :)
Pengalaman pribadi saya dengan basis kode C ++ berukuran adil:
Prosesor: Pentium 4 HT 3.06 GHz
Memori: 1 GB DDR RAM (PC 2100, jadi 333 MHz)
Disk: 7200 RPM hard drive (UDMA 100, jika memori berfungsi)
Waktu kompilasi: 50 menit
Prosesor: Core i7 720QM (8 prosesor logis) pada 1,6 GHz, turbo naik menjadi 1,73 GHz ketika semua core aktif
Memori: 8 GB DDR3 RAM pada 1066 MHz
Disk: hard drive 7200 RPM (SATA 2)
Waktu kompilasi: 4 menit (dengan / MP )
Kesimpulan: Semakin banyak prosesor, semakin cerah - bahkan pada kecepatan clock yang relatif rendah. SSD akan meningkatkan kali lebih jauh, tetapi dari pengamatan pesan kompilasi, saya ragu itu akan memperbaikinya lebih dari 30 detik.
Sejauh yang saya ingat terutama Prosesor dan Memori. Google cepat memang mengungkapkan berbagai tweak yang dapat meningkatkan waktu kompilasi.
Joel baru-baru ini memposting tentang efek Solid State Disk pada kompilasi di sini . Kecepatan disk umumnya tidak meningkatkan waktu kompilasi secara drastis. Namun menurut ini ia memang memiliki efek seperti yang ditunjukkan oleh lyngbym .
Untuk membangun program C ++, faktor # 1 sebelum semuanya adalah struktural - jika kode sumber terstruktur secara vertikal, itu akan memiliki dampak yang menghancurkan pada waktu pembangunan, terutama pembangunan bertahap. Saya secara lokal merestrukturisasi beberapa bagian dari proyek untuk peningkatan dramatis pada quad-core Xeon. 18 bulan kemudian dan mereka (orang-orang yang memiliki proyek) masih tidak dapat menandingi waktu pembuatan jam dinding saya bahkan pada mesin Core i7.
Efek (positif atau negatif) dari tata letak perangkat lunak Anda berlipat ganda di setiap anggota tim Anda dan setiap bangunan yang mereka lakukan.
Xoreax IncrediBuild adalah sistem build terdistribusi yang telah membuat peningkatan besar pada waktu kompilasi tempat saya bekerja. (Sayangnya, waktu tautan masih cukup panjang, khususnya rilis yang dibuat menggunakan optimasi seluruh-program dan pembuatan kode tautan-waktu, tapi itu sudah diperkirakan.)