Apakah ada gunanya menggunakan Prelink lagi?

11

Selama bertahun-tahun menggunakan berbagai kotak linux, saya sudah terbiasa menggunakan prelink secara ritual untuk mempercepat waktu pemuatan aplikasi.

Namun, manfaat menjalankan prelink dinegasikan setiap kali sebuah paket diinstal ulang, karena semua ketergantungannya, dan tanggungannya, harus ditinjau ulang.

Prapink ini dapat menyebabkan banyak masalah, dan salah satunya adalah pembatalan MD5 biner, yang bermasalah untuk hal-hal yang membandingkan MD5 vs revisi hulu atau menggunakan MD5 untuk menentukan apakah biner telah diubah atau tidak dan dengan demikian tidak ingin dibersihkan setelah penghapusan paket .

Baru-baru ini, komputer telah menjadi jauh lebih cepat, dan keuntungan hasil prelink sekarang hampir tidak terlihat.

Apakah menggunakan prelink masih merupakan konsep yang rasional, atau bisakah itu dibuang begitu saja dan ditinggalkan sebagai sesuatu dari era masa lalu?

Kent Fredric
sumber

Jawaban:

4

Anda tidak dapat membacanya hingga 23 Juli 2009 kecuali Anda berlangganan LWN.net, tetapi Anda mungkin menemukan http://lwn.net/Articles/341244/ berguna.

David Pashley
sumber
Maka Anda dapat memberikan "tautan pelanggan" ke artikel ini.
wazoox
5
Saya selalu merasa tidak enak karena menggunakan tautan pelanggan. Seperti aku merobeknya atau semacamnya.
David Pashley
2
Saya setuju. Saya tidak keberatan memberikan tautan pelanggan ke kontak langsung (teman atau rekan kerja) ketika saya menemukan artikel yang menarik, tetapi rasanya salah untuk mempostingnya secara publik.
Christopher Cashell
1

Saya tidak akan mengatakan bahwa itu harus dibuang secara sewenang-wenang, namun saya pasti akan mengatakan bahwa penggunaannya harus dipikirkan lebih lanjut.

Pada mesin modern kelas atas yang sering diperbarui, prelink mungkin bukan optimasi yang berguna. Namun, masih ada sejumlah kasus yang layak digunakan. Misalnya, pada mesin yang lebih tua atau lebih rendah, atau pada mesin yang cukup statis dan tidak sering mengalami perubahan atau pembaruan. Ini juga bisa bermanfaat jika Anda memiliki program tingkat tinggi yang sedang dijalankan berulang kali (saya bisa memikirkan beberapa situasi di mana Anda mungkin memiliki program yang dijalankan secara berurutan atau secara paralel di mana prelink dapat meningkatkan kinerja).

Secara keseluruhan, Anda perlu mempertimbangkan situasi spesifik Anda, dan kemudian memutuskan apakah manfaatnya lebih besar daripada kerja dan usaha tambahan.

Christopher Cashell
sumber
1
"tingkat tinggi program yang dijalankan berulang kali" - jika Anda berada dalam situasi itu, binari dan pustaka akan berakhir di cache sistem file Anda. Satu-satunya waktu prelink akan membantu adalah jika Anda begitu memori kelaparan bahwa Anda memiliki fs sangat sedikit-cache yang tersedia
Daniel Lawson
2
Prelink akan mempercepat program dimulai bahkan jika program disimpan dalam cache sistem file. Diakui, ketika program (dan pustaka terkait) di-cache, peningkatan kinerja kurang terlihat. Namun, tergantung pada tingkat program yang dijalankan, beberapa mikrodetik dapat bertambah hingga akhirnya membuat perbedaan.
Christopher Cashell
1

Saya akan mengatakan prelink pasti berguna pada server desktop multi-pengguna seperti server LTSP yang digunakan di sekolah dan kafe internet misalnya. Prelink tidak hanya mempercepat pemuatan aplikasi, tetapi juga meningkatkan pemanfaatan RAM dan meronta-ronta disk karena pertikaian antara pengguna, memungkinkan banyak pengguna simultan di server.


sumber
0

Saya pikir dengan harga memori jatuh prelinking menjadi kurang bermanfaat. Jika Anda masih ingin sedikit mempercepat, Anda mungkin melihat preload .

Nick Anderson
sumber
Saya mencoba preload, saya hanya menemukan itu membuat waktu startup lebih lambat sementara duduk di sana mengunyah kedua core melakukan hal readahead. Dan itu juga untuk beberapa alasan saya tidak bisa melihat menyebabkan X mati saat boot. Juga, jika Anda tidak sering reboot, preload berhenti berguna sama sekali.
Kent Fredric
0

Saya menyerahkan keputusan itu ke versi OS. Jika secara default OS memilih untuk memanggil prelink secara teratur menggunakan cron, maka baik-baik saja mungkin itu tidak begitu berguna. Saya harap para pencipta distribusi telah memikirkan sebelum memilih untuk menambah / menghapus opsi prelink secara default. Jadi saya pergi dengan mereka daripada menganalisis hal-hal lagi sendiri.

Saurabh Barjatiya
sumber
eh, ini tidak benar-benar default, ini adalah paket yang harus Anda instal, dan jika tidak diinstal Anda tidak mendapatkan barang prelink. Jika diinstal, ia cenderung membuat skrip cron, yang dinonaktifkan secara default, yang harus Anda aktifkan secara manual.
Kent Fredric
Default pada fedora tidak mati secara default. Itu diubah menjadi 19 tetapi tidak off. Sudah sama sejak Fedora 6 atau 7.
Saurabh Barjatiya
0

Gentoo menggunakan prelink. Mereka mengatasi masalah md5sum dengan mengabaikan info prelink sebelum menghitung hash.

Prelink akan selalu memberi Anda peningkatan kecepatan meskipun mungkin menjadi semakin tidak terlihat karena perangkat keras menjadi lebih cepat. Satu-satunya cara untuk mengetahui dengan pasti pada perangkat keras Anda adalah mematikan prelink dan melihat bagaimana Anda menyukai perlambatan saat peluncuran aplikasi.

Sidenote: OS X digunakan untuk melakukan suatu prelink juga, tetapi itu telah ditinggalkan demi cache yang ditautkan. Terbaik dari kedua dunia, tidak ada perubahan biner dan tidak ada overhead nyata versus tautan normal. Saya harap Linux mengambil ide ini di beberapa titik :)

Pembaruan: Saya baru-baru ini mencoba prelink di Linux , dan untuk kompilasi cscope dengan banyak file dan proses, saya mendapat peningkatan kecepatan 5%.

w00t
sumber
1
Itu tidak benar-benar ... masih sesuatu yang harus Anda instal dan konfigurasikan, saya mengatakan ini karena saya menggunakan gentoo. Dan Anda tidak bisa benar-benar "mematikan" prelink, Anda hanya bisa berhenti menjalankan prelink, atau pergi dan hapus centang pada seluruh sistem Anda. Juga, untuk beberapa alasan tanpa sepengetahuan saya, paludis memiliki masalah dengan binari prelink, dan tanpa kait undo-prelink (tidak didukung) ia meninggalkan binari di belakang, menghasilkan cruft. Baru-baru ini saya menemukan beberapa aplikasi KDE yang tertinggal karena fakta sebelum saya menginstal hook, dan mereka berada di jalan sebelum orang-orang baru di lokasi yang berbeda, menyebabkan seg ini
Kent Fredric
Kemungkinan, mengaktifkan optimasi penghubung (-Wl, -O1) ¸ dan perubahan baru dalam alokasi gnu-hash lebih mirip dengan apa yang telah dipindahkan OSX, yang mungkin merupakan pilihan yang lebih efektif.
Kent Fredric
Saya harus mengakui sudah lama sejak saya menggunakan gentoo ... Sejak saya pindah ke OS X :). Saya ingat tes yang pernah saya lakukan pada OS X: mulai semua aplikasi sekaligus dan waktu itu (sekitar 1 menit iirc). Kemudian, hapus semua informasi prelink dan mulai semua aplikasi lagi. Waktu itu butuh 5 menit ... Ini pada tahun 2005 di menara Mac, binatang buas.
w00t
1
Sebagai lawan dari ide Anda bahwa speedup prelink mungkin kurang terlihat: mereka cenderung menjadi lebih penting ketika program meroket dalam penggunaan penggunaan lib loadable runtime. Gvim dari 2009 menggunakan 55 runtime libs. Satu dari 2 tahun lalu menggunakan 73. 'mount' dari 2009 digunakan 7, mount dari hari ini, menggunakan 10 dengan 4 di / usr / lib64 dan 6 di / lib64 ... sehingga mereka berkembang, menjadi lebih besar dan lebih tersebar . - sama seperti sebelumnya - begitu HW semakin cepat, SW menjadi lebih kompleks untuk menyerap dorongan.
Astara
@astara benar, tetapi pertumbuhan dalam penggunaan perpustakaan tidak secepat pertumbuhan dalam harddisk dan kecepatan memori.
w00t