Linux dan windows kernel [ditutup]

9

Saya bekerja di Linux dan seorang teman di Windows 7.

Saya kagum dengan kecepatan yang NetBeans, Eclipse, pgAdmin dan program lainnya banyak buka, sebenarnya, BANYAK lebih cepat di Linux daripada di windows.

Apa perbedaan utama antara Linux dan kernel windows yang menyebabkan perbedaan waktu muat itu?

Kedua mesin memiliki konfigurasi perangkat keras yang persis sama.

Gerep
sumber
1
Lucu, pengalaman saya justru sebaliknya - di semua PC saya, program di Windows cenderung memuat jauh lebih cepat daripada di Linux (terutama di Windows 7, yang menebak program mana yang akan Anda buka berdasarkan penggunaan sebelumnya, dan memuatnya ke dalam memori ) . Mungkin mesin Windows-nya penuh dengan bloatware? Apakah perusahaan itu anti virus hanya Windows? Sudahkah Anda mencoba menjalankan Linux pada mesin yang sama (kegagalan hard disk memengaruhi waktu muat secara drastis) .
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft terima kasih atas komentar Anda. Seperti yang saya katakan pada pertanyaan, kedua mesin memiliki konfigurasi perangkat keras yang sama, keduanya datang dengan windows 7 tapi saya pengguna Linux dan tidak, windows-nya tidak membengkak
Gerep
1
@ BlueRaja-DannyPflughoeft Saya menemukan hal menarik bahwa setelah antivirus ke Windows diatur, itu menjadi jauh lebih lamban. Jadi, sebenarnya, tidak perlu di bloatware, cukup instal antivirus. GNU / Linux tidak membutuhkan satu (setidaknya belum) , dan hal kecil ini memberikan kinerja lebih banyak juga.
Hi-Angel

Jawaban:

8

Ini hanya dugaan saya, tetapi saya pikir ketika Anda bekerja untuk sebuah perusahaan, di mana setelah semuanya dikompilasi (dikonversi ke data biner, yang dapat dieksekusi komputer), tidak ada yang dapat melihat kode sumber lagi, Anda cenderung lebih malas, karena itu tidak masalah selama itu berhasil .
Linux adalah open source, sehingga semua orang dapat melihat kode sumbernya jika mereka ingin melakukannya. Jika Anda malas, dan menulis sepotong kode yang benar-benar jelek yang benar-benar akan memperlambat sistem atau semacamnya, hilanglah reputasi Anda, seperti yang baru saja dilihat semua orang. Pengembang dan pengguna sama-sama. Saya pikir itu salah satu alasan mengapa pengembang open souyce cenderung kurang malas.

Ini juga merupakan fakta bahwa inti dari kernel Windows tidak pernah ditulis dengan maksud untuk menjadi seperti sekarang ini (juga Linux, tetapi mereka melakukan upaya untuk mengoptimalkan bit lama), dan pengembang hanya selalu menambahkan dan menambahkan di atasnya, sampai kode itu begitu samar sehingga tidak ada yang bisa membuat sesuatu dari itu lagi. Dua sifat kode berantakan adalah sering kali ada banyak redundansi, dan Anda tidak lagi melihat tautan di antara dua bagian kode dengan mudah, yang membuat Anda bahkan tidak dapat mencoba untuk mulai mengoptimalkannya. Hanya sebuah contoh (bukan yang samar);

for (int i = 0; i < 20; i++)
{
    if (x == y)
    {
        if (z <= u)
        {
            goto banana;
        }
    }
}

Contoh di atas dapat dilakukan dengan lebih efisien;

for (int i = 0; (i < 20) && (x == y) && (z <= u); i++)
{
    banana ();
}
RobinJ
sumber
1
Saya percaya pada area programmer, konsensus saat ini adalah bahwa coding malas dan / atau ceroboh dioptimalkan dengan baik di kompiler. Namun, kompiler tidak dapat membantu mengasapi dan warisan, yang mungkin ada - dan terkait dengan niat Anda.
Chris K
4
Kedua contoh kode itu hampir pasti akan dikompilasi ke hal yang sama (minus function-call vs goto) ...
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft saya tahu, tapi saya perlu contoh sederhana untuk menjelaskannya.
RobinJ
5

Hal besar lainnya yang belum disebutkan adalah bahwa Linux memiliki sistem file yang lebih baik. Kinerja NTFS dengan file kecil tidak terlalu bagus - ext3 lebih baik, dan ext4 jauh, lebih baik. Ada beberapa spekulasi menarik tentang mengapa dalam pertanyaan lain .

Ketika Anda membuka sebuah program, sejumlah besar waktu startup memuat banyak file kecil dari disk, jadi memiliki sistem file yang melakukan itu dengan cepat sangat penting.

Brendan Long
sumber
4

Ini hanya pendapat saya tetapi saya pikir ada berbagai alasan mengapa sistem GNU / Linux lebih cepat dari Windows dan tidak semua terkait dengan kernel:

  • Jelas ada alasan yang dijelaskan oleh RobinJ, cukup jelas bahwa jika perangkat lunak open source kode cenderung lebih efisien ditulis
  • Linux menggunakan komponen yang sangat optimal misalnya menggunakan penjadwal yang sangat optimal yang cenderung memaksimalkan pemanfaatan CPU.
  • Sistem Linux kurang menderita karena fragmentasi memori
  • Sistem Linux memiliki penggunaan memori utama yang lebih baik dan biasanya cenderung menggunakan cache secara besar-besaran, sebaliknya sistem Windows cenderung menggunakan memori virtual secara masif.
  • Kernel Linux terus diperbarui dan bagian-bagian yang tidak berguna biasanya dihapus, meskipun Linus Torvalds mengatakan bahwa kernel Linux menjadi "besar dan membengkak", dalam pembaruan oposisi ke kernel NT biasanya dibangun di atas yang sudah ada.
Onyris
sumber
3

Saya percaya kernel saja bukan jawabannya. Windows 7 adalah pertama kalinya Windows cukup responsif yang saya anggap dapat diterima.

Saya percaya lebih banyak perbedaan kecepatan terkait dengan pemikiran @ RobinJ pada rekayasa perangkat lunak. Semuanya * di Windows dibangun di atas MSDN melalui semacam kerangka Microsoft atau lainnya. Ini sebenarnya terkait dengan bagaimana Big Business mencintai Microsoft; Microsoft adalah tentang membantu berbagai program / suite / teknologi berbicara satu sama lain.

Selanjutnya ... untuk memudahkan pengembang untuk memiliki hal-hal penting yang tercakup (dan tidak menemukan kembali roda) Microsoft memungkinkan pembuat untuk menggabungkan dan / atau memerlukan perpustakaan yang telah dikompilasi seperti Microsoft Visual C ++ 2008 Redistributable. Atau .Net4.0, MSSQL 2005, ad nauseum. Ada sesuatu seperti paket bernilai sepuluh tahun yang dapat digunakan dan dikembangkan oleh pengembang dan mengharuskan pengguna akhir untuk menginstal pada komputer Windows mereka untuk menggunakan perangkat lunak baru.

Jadi agar program Zyzzyx memuat dan menjalankan, satu atau lebih pustaka yang dapat didistribusikan ulang MSDN harus ada dan berjalan. Perpustakaan ini menentukan bagaimana program berinteraksi dengan OS.

Untuk mendidihkannya, saya akan berpendapat bahwa kompatibilitas Window yang disengaja di beberapa dekade perangkat lunak membuatnya kembung dan kadang-kadang lebih lambat daripada sistem linux yang sebanding. Juga perhatikan bahwa saya telah mengembangkan perangkat lunak visual untuk windows tetapi tidak untuk linux ... bukan GTK, Qt, Py, apa pun, jadi asumsi saya tentang linux menjadi kurang kembung hanyalah itu.

diedit untuk menambahkan: lebih lanjut, perangkat lunak FOSS memang membuat orang-orang memperbaikinya setiap saat, sehingga GTK akan meningkat seiring berjalannya waktu daripada GTK-2005 dan GTK-2008 berada di komputer yang sama, sementara Microsoft melakukan itu sepanjang waktu.

* - ok ada pengecualian, saya yakin.

Chris K
sumber