Saya mendapat 20,3 Gig file dan folder dengan total 100k + item. Saya menduplikasi semua file itu dalam satu direktori dari Windows 10, dan saya butuh waktu 3 jam untuk menyalin. Selesai
Suatu hari, saya boot di Linux Fedora 24, membuka kembali folder yang sama dan bam! Butuh saya hanya 5 menit untuk menduplikatnya di tempat yang sama tetapi direktori berbeda.
Mengapa Linux begitu cepat? Dan Windows sangat lambat?
Ada pertanyaan serupa di sini
Apakah (Ubuntu) algoritma penyalinan file Linux lebih baik daripada Windows 7?
Tetapi jawaban yang diterima sangat kurang.
linux
windows
performance
Jones G
sumber
sumber
Jawaban:
Dasar-dasar itu memecah menjadi beberapa komponen utama dari total sistem: elemen UI (bagian grafis), kernel itu sendiri (apa yang berbicara dengan perangkat keras), dan format di mana data disimpan (yaitu sistem file ).
Akan mundur,
NTFS
telah menjadi de-facto untuk Windows untuk beberapa waktu, sedangkan de-facto untuk varian Linux utama adalahext
sistem file. Sistem file NTFS sendiri tidak berubah sejak Windows XP (2001), banyak fitur yang ada (seperti penyusutan partisi / penyembuhan, NTFS transaksional, dll.) Adalah fitur OS (Windows Vista / 7/8/10) dan bukan NTFS itu sendiri. Sistemext
file memiliki rilis stabil besar terakhir (ext4
) pada tahun 2008. Karena sistem file itu sendiri yang mengatur bagaimana dan di mana file diakses, jika Anda menggunakanext4
ada kemungkinan Anda akan melihat peningkatan kecepatan dari NTFS; Namun perhatikan jika Anda menggunakanext2
Anda mungkin memperhatikan bahwa itu sebanding dalam kecepatan.Bisa juga bahwa satu partisi diformat dalam potongan yang lebih kecil daripada yang lain. Default untuk sebagian besar sistem adalah ukuran cluster
4096 byte
1 , 2 , tetapi jika Anda memformatext4
partisi Anda menjadi sekitar16k
3 maka setiap pembacaan padaext4
sistem akan mendapatkan 4x data vs sistem NTFS (yang bisa berarti 4x file tergantung pada apa yang disimpan dimana / bagaimana dan seberapa besar, dll). Fragmentasi file juga dapat berperan dalam kecepatan. NTFS menangani fragmentasi file sangat berbeda dariext
sistem file, dan dengan 100k + file, ada peluang bagus ada beberapa fragmentasi.Komponen selanjutnya adalah kernel itu sendiri (bukan UI, tetapi kode yang benar-benar berbicara dengan perangkat keras, OS yang sebenarnya). Di sini, jujur tidak ada banyak perbedaan. Kedua kernel dapat dikonfigurasikan untuk melakukan hal-hal tertentu, seperti caching / buffering disk, untuk mempercepat membaca dan menulis yang dirasakan, tetapi konfigurasi ini biasanya memiliki pertukaran yang sama terlepas dari OS; mis. caching mungkin secara masif meningkatkan kecepatan menyalin / menyimpan, tetapi jika Anda kehilangan daya saat menulis cache (atau menarik drive USB), maka Anda akan kehilangan semua data yang tidak ditulis ke disk dan bahkan mungkin data rusak sudah ditulis ke disk.
Sebagai contoh, salin banyak file ke drive USB yang diformat FAT di Windows dan Linux. Di Windows mungkin butuh 10 menit, sedangkan di Linux butuh 10 detik; segera setelah Anda menyalin file, hapus drive dengan aman dengan mengeluarkannya. Pada Windows itu akan segera dikeluarkan dari sistem dan dengan demikian Anda dapat menghapus drive dari port USB, sementara di Linux mungkin butuh 10 menit sebelum Anda benar-benar dapat menghapus drive; ini karena caching (yaitu Linux menulis file ke RAM kemudian menulisnya ke disk di latar belakang, sedangkan Windows tanpa cache langsung menulis file ke disk).
Terakhir adalah UI (bagian grafis yang berinteraksi dengan pengguna). UI mungkin jendela cantik dengan beberapa grafik keren dan bilah bagus yang memberi saya gambaran umum tentang berapa banyak file yang sedang disalin dan seberapa besar semua itu dan berapa lama waktu yang dibutuhkan; UI mungkin juga konsol yang tidak mencetak informasi apa pun kecuali jika sudah selesai. Jika UI harus terlebih dahulu melalui setiap folder dan file untuk menentukan berapa banyak file yang ada, ditambah seberapa besar mereka dan memberikan perkiraan kasar sebelum benar-benar dapat mulai menyalin, maka proses salin dapat memakan waktu lebih lama karena UI perlu untuk melakukan hal ini. Sekali lagi, ini benar terlepas dari OS.
Anda dapat mengonfigurasi beberapa hal agar sama (seperti caching disk atau ukuran kluster), tetapi secara realistis hal itu bermuara pada bagaimana semua bagian saling terkait untuk membuat sistem bekerja dan lebih khusus lagi seberapa sering potongan-potongan kode tersebut benar-benar diperbarui. OS Windows telah berjalan jauh sejak Windows XP, tetapi sub-sistem disk adalah area yang belum melihat banyak TLC di OS di semua versi selama bertahun-tahun (dibandingkan dengan ekosistem Linux yang tampaknya melihat beberapa FS baru atau perbaikan agak sering).
Harapan itu menambah kejelasan.
sumber