Komponen PC mana yang memberikan dampak terbesar pada waktu kompilasi Anda untuk Visual Studio?

16

Spesifikasi PC mana yang memiliki dampak terbesar pada waktu kompilasi Anda? Disk? Kecepatan jam? Jumlah inti CPU?

Rob Allen
sumber
1
Bukankah ini pertanyaan pemrograman? Apakah ini memiliki audiens yang lebih besar di StackOverflow?
Kurt W. Leucht

Jawaban:

13

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.

Bevan
sumber
PC di kantor menggunakan TrendMicro OfficeScan. Laptop dev saya di rumah menggunakan AVG 8.
Rob Allen
3
"Tren Mikro". Oh sayang. Jika Anda tidak bisa mendapatkan perubahan itu untuk hal lain, cium selamat tinggal pada kinerja apa pun.
Bevan
8

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. :)

JP Alioto
sumber
+1 Artikel bagus tentang topik ini. Saya lupa tentang itu. Saya pikir dia juga melakukan podcast tentang ini.
BinaryMisfit
4

Pengalaman pribadi saya dengan basis kode C ++ berukuran adil:

Mesin tua

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

Mesin baru:

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.

mmyers
sumber
3

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 .

BinaryMisfit
sumber
1

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.

Sam Harwell
sumber
Tolong, apakah Anda memiliki tautan yang menjelaskan struktur kode yang berbeda. Saya pikir saya tahu apa yang Anda maksudkan tetapi saya tidak yakin.
Rob Allen
Saya mengalami kesulitan menemukan referensi saya, tetapi ide umumnya adalah 1) gunakan deklarasi maju jika memungkinkan, 2) sertakan file hanya ketika deklarasi maju tidak akan berfungsi, dan 3) pastikan file yang Anda masukkan tidak menyatakan lebih banyak hal-hal yang diperlukan, yang pada gilirannya dapat membuatnya menyertakan lebih banyak file yang tidak Anda perlukan untuk file sumber tertentu yang sedang dikompilasi (alias menjaga header Anda kecil dan menggunakan deklarasi maju di dalamnya sama seperti yang Anda lakukan untuk file sumber).
Sam Harwell
1

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.)

teks alternatif

bk1e
sumber