Kesulitan dalam melakukan itu adalah karena fakta bahwa C ++ cenderung menyebar sendiri dan proses kompilasi pada banyak file kecil, individual. Itu adalah sesuatu yang baik untuk Linux dan Windows tidak. Jika Anda ingin membuat kompiler C ++ yang sangat cepat untuk Windows, coba simpan semuanya dalam RAM dan sentuh sistem file sesedikit mungkin.
Itu juga bagaimana Anda akan membuat rantai kompilasi Linux C ++ yang lebih cepat, tetapi kurang penting di Linux karena sistem file sudah melakukan banyak penyetelan untuk Anda.
Alasan untuk ini adalah karena budaya Unix: Secara historis kinerja sistem file telah menjadi prioritas yang jauh lebih tinggi di dunia Unix daripada di Windows. Bukan untuk mengatakan bahwa itu belum menjadi prioritas di Windows, hanya saja di Unix itu telah menjadi prioritas yang lebih tinggi.
Akses ke kode sumber.
Anda tidak dapat mengubah apa yang tidak dapat Anda kendalikan. Kurangnya akses ke kode sumber Windows NTFS berarti bahwa sebagian besar upaya untuk meningkatkan kinerja telah melalui perbaikan perangkat keras. Artinya, jika kinerjanya lambat, Anda mengatasi masalah dengan meningkatkan perangkat keras: bus, media penyimpanan, dan sebagainya. Anda hanya dapat melakukan banyak hal jika Anda harus mengatasi masalah, bukan memperbaikinya.
Akses ke kode sumber Unix (bahkan sebelum open source) lebih luas. Karena itu, jika Anda ingin meningkatkan kinerja, Anda harus mengatasinya dalam perangkat lunak terlebih dahulu (lebih murah dan lebih mudah) dan perangkat keras kedua.
Akibatnya, ada banyak orang di dunia yang mendapatkan gelar PhD dengan mempelajari sistem file Unix dan menemukan cara baru untuk meningkatkan kinerja.
Unix cenderung ke banyak file kecil; Windows cenderung ke arah beberapa (atau satu) file besar.
Aplikasi Unix cenderung menangani banyak file kecil. Pikirkan lingkungan pengembangan perangkat lunak: banyak file sumber kecil, masing-masing dengan tujuan mereka sendiri. Tahap terakhir (menautkan) membuat satu file besar tetapi itu adalah persentase kecil.
Akibatnya, Unix memiliki panggilan sistem yang sangat dioptimalkan untuk membuka dan menutup file, memindai direktori, dan sebagainya. Sejarah makalah penelitian Unix mencakup beberapa dekade optimasi sistem file yang menaruh banyak pemikiran dalam meningkatkan akses direktori (pencarian dan pemindaian direktori penuh), pembukaan file awal, dan sebagainya.
Aplikasi Windows cenderung membuka satu file besar, tahan terbuka lama, tutup ketika selesai. Pikirkan MS-Word. msword.exe (atau apa pun) membuka file sekali dan menambahkan selama berjam-jam, memperbarui blok internal, dan sebagainya. Nilai mengoptimalkan pembukaan file akan terbuang waktu.
Sejarah benchmarking dan optimisasi Windows adalah seberapa cepat seseorang dapat membaca atau menulis file yang panjang. Itulah yang dioptimalkan.
Sayangnya pengembangan perangkat lunak cenderung mengarah pada situasi pertama. Heck, sistem pengolah kata terbaik untuk Unix (TeX / LaTeX) mendorong Anda untuk menempatkan setiap bab dalam file yang berbeda dan # memasukkan semuanya.
Unix berfokus pada kinerja tinggi; Windows berfokus pada pengalaman pengguna
Unix dimulai di ruang server: tidak ada antarmuka pengguna. Satu-satunya hal yang dilihat pengguna adalah kecepatan. Karena itu, kecepatan adalah prioritas.
Windows dimulai pada desktop: Pengguna hanya peduli dengan apa yang mereka lihat, dan mereka melihat UI. Oleh karena itu, lebih banyak energi dihabiskan untuk meningkatkan UI daripada kinerja.
Ekosistem Windows tergantung pada keusangan yang direncanakan. Mengapa mengoptimalkan perangkat lunak ketika perangkat keras baru hanya satu atau dua tahun lagi?
Saya tidak percaya pada teori konspirasi tetapi jika saya melakukannya, saya akan menunjukkan bahwa dalam budaya Windows ada lebih sedikit insentif untuk meningkatkan kinerja. Model bisnis Windows tergantung pada orang yang membeli mesin baru seperti jarum jam. (Itu sebabnya harga saham ribuan perusahaan terpengaruh jika MS mengirimkan sistem operasi terlambat atau jika Intel melewatkan tanggal rilis chip.). Ini berarti ada insentif untuk menyelesaikan masalah kinerja dengan menyuruh orang membeli perangkat keras baru; bukan dengan memperbaiki masalah sebenarnya: sistem operasi yang lambat. Unix berasal dari akademisi di mana anggarannya ketat dan Anda bisa mendapatkan PhD dengan menciptakan cara baru untuk membuat sistem file lebih cepat; jarang seseorang di dunia akademis mendapatkan poin untuk memecahkan masalah dengan mengeluarkan pesanan pembelian.
Juga, karena Unix adalah open source (bahkan ketika tidak, semua orang memiliki akses ke sumber) setiap mahasiswa PhD yang bosan dapat membaca kode dan menjadi terkenal dengan membuatnya lebih baik. Itu tidak terjadi di Windows (MS memang memiliki program yang memberikan akses akademis ke kode sumber Windows, jarang dimanfaatkan). Lihatlah pilihan makalah kinerja terkait Unix ini: http://www.eecs.harvard.edu/margo/papers/ atau lihat sejarah makalah oleh Osterhaus, Henry Spencer, atau lainnya. Heck, salah satu perdebatan terbesar (dan paling menyenangkan untuk ditonton) dalam sejarah Unix adalah bolak-balik antara Osterhaus dan Selzer http://www.eecs.harvard.edu/margo/papers/usenix95-lfs/supplement/rebuttal. html
Anda tidak melihat hal semacam itu terjadi di dunia Windows. Anda mungkin melihat vendor saling mendukung, tetapi yang tampaknya jauh lebih jarang akhir-akhir ini karena inovasi tampaknya semua berada pada level standar badan.
Begitulah cara saya melihatnya.