Perangkat lunak simulasi Anda kemungkinan besar terikat dengan CPU atau terikat memori . Untuk beban kerja seperti itu, orang tidak akan kecuali melihat perbedaan yang signifikan antara menjalankan kode pada "bare metal" atau di dalam WSL (atau lapisan kompatibilitas lain atau VM yang menggunakan eksekusi asli), karena dalam kedua kasus OS sebagian besar hanya menunggu sedangkan kode simulasi berjalan langsung pada CPU.
Namun, ada kemungkinan juga bahwa simulasi Anda setidaknya sebagian terikat I / O, dan di situlah perbedaan mungkin muncul. Rupanya, WSL (saat ini) memiliki lapisan antarmuka sistem file yang agak lambat yang dapat memperlambat disk I / O secara signifikan. * Itu mengatakan, sementara disk I / O dapat menjadi hambatan utama untuk berbagai jenis tugas pemrosesan data massal, sebuah "simulasi" biasanya tidak menghabiskan sebagian besar waktunya untuk membaca dan menulis file. Jika milik Anda, Anda mungkin ingin mempertimbangkan untuk menjalankannya dari disk RAM (mis. Tmpfs pada native ** Linux) untuk menghindari akses disk fisik yang tidak perlu.
Bagaimanapun, satu-satunya cara untuk memastikan adalah menguji simulasi Anda di kedua lingkungan dan waktu berapa lama untuk berjalan. Namun, sebelum melakukan itu, Anda mungkin ingin melihat tolok ukur yang ada, seperti WSL vs Docker vs VirtualBox vs tolok ukur kinerja Linux asli oleh Phoronix dari Februari 2018 , dan periksa hasilnya untuk setiap tes yang menekankan komponen yang sama dari sistem seperti simulasi Anda.
(FWIW, hasil Phoronix tampaknya sebagian besar cocok dengan prinsip-prinsip umum yang saya uraikan di atas, meskipun ada beberapa keanehan yang menonjol seperti VirtualBox yang ternyata mengungguli Linux asli dalam beberapa tolok ukur terikat I / O, tampaknya karena disk virtualnya tidak selalu segera menyinkronkan data ke disk fisik .Salah satu masalah yang berpotensi relevan yang saya gagal catat di atas adalah bahwa tolok ukur menunjukkan perbedaan signifikan dalam kinerja OpenMP multi-threaded baik antara lingkungan host yang berbeda dan juga antara distro Linux yang berbeda bahkan ketika berjalan pada perangkat keras yang telanjang. itu tidak terlalu mengejutkan, karena threading dan IPC ditangani oleh kernel. Saya kira banyak perbedaan antara distro-distro yang ada mungkin disebabkan oleh runtime yang berbeda dan / atau kompilasi parameter tuning kernel waktu.)
*) Menurut posting blog MSDN ini dari 2016, sebenarnya ada dua komponen antarmuka sistem file di WSL: VolFs, yang secara dekat mengemulasi semantik sistem file Linux asli di atas NTFS dan digunakan untuk me-mount eg /
dan /home
, dan DrvFs, yang menyediakan sebagian besar semantik seperti Windows dan digunakan untuk mengakses drive Windows host melalui /mnt/c
dll. Jika perangkat lunak Anda tidak secara khusus memerlukan fitur sistem file Linux asli seperti banyak tautan keras ke file yang sama, mengonfigurasinya untuk menyimpan file datanya dalam folder DrvFs dapat meningkatkan kinerja akses file pada WSL.
**) Menurut utas Reddit ini dari Mei 2017, "tmpfs saat ini ditiru menggunakan disk" di WSL. Kecuali ada sesuatu yang berubah selama setahun terakhir, ini mungkin berarti bahwa menggunakan tmpfs pada WSL tidak memberikan manfaat kinerja dibandingkan menggunakan sistem file pada disk normal.