ลองจินตนาการว่าเรามีไบนารีที่ขึ้นอยู่กับไลบรารี QtCore เมื่อเราดำเนินการเชื่อมโยงล่วงหน้าแล้วระบบจะค้นหาก่อนในช่องว่างที่กำหนดโดยลิงก์ก่อนและในกรณีที่ไม่พบ (เช่นการอัปเดต) ก็จะค้นหา ในรูปแบบดั้งเดิม
Prelink ทำงานบนระบบที่รองรับ POSIX เช่น GNU / linux หรือ BSD
วิธีสมัครพรีลิงค์
การเพิ่มประสิทธิภาพระบบด้วยลิงก์ล่วงหน้านั้นค่อนข้างง่ายเราสามารถปรับไบนารีให้เหมาะสมโดยใช้ (เป็นรูท):
prelink binario
แต่เพื่อเพิ่มประสิทธิภาพทั้งระบบเราต้องดำเนินการ:
prelink -amvR
คุณจะเห็นสิ่งนี้:
นี่คือคำอธิบายโดยละเอียดเกี่ยวกับความหมายของพารามิเตอร์:
- a: เท่ากับ - ทั้งหมดทำให้ใช้ได้กับทั้งระบบ
- m: เทียบเท่ากับ –conserve-memory คำอธิบายวิธีการทำงานนั้นซับซ้อน แต่ช่วยประหยัดพื้นที่
- v: เทียบเท่ากับ –verbose ช่วยให้เราทราบว่าไลบรารีใดที่เชื่อมโยงล่วงหน้า
- ตอบ: เทียบเท่ากับ –random เพิ่มความปลอดภัยโดยการสุ่มค่า ฉันไม่ทราบรายละเอียดของการทำงานของมัน
เพื่อยกเลิกการเชื่อมโยงล่วงหน้า (ยกเลิกการลิงก์) ไบนารี
prelink -u
ทั้งระบบ:
prelink -au
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # ปลั๊กอิน Flash Player -b /usr/lib/mozilla/plugins/libflashplayer.so # NVIDIA -b / usr / lib / libGL .so * -b /usr/lib32/libGL.so* -b //usr/lib/libOpenCL.so* -b //usr/lib32/libOpenCL.so* -b / usr / lib32 / vdpau / -b / usr / lib / vdpau / -b /usr/lib/xorg/modules/drivers/nvidia_drv.so -b /usr/lib/xorg/modules/extensions/libglx.so* -b / usr / lib / libnvidia- * - b / usr / lib32 / libnvidia- * # Catalyst -b / usr / lib / libati * -b / usr / lib / fglrx * -b / usr / lib / libAMDXvBA * -b /usr/lib/libGL.so* - b / usr / lib / libfglrx * -b /usr/lib/xorg/modules/dri/fglrx_dri.so -b /usr/lib/xorg/modules/drivers/fglrx_drv.so -b / usr / lib / xorg / โมดูล / extensions / fglrx / -b /usr/lib/xorg/modules/linux/libfglrxdrm.so -b /usr/lib/xorg/modules/extensions/libglx.so
เพิ่มประสิทธิภาพ KDE
สิ่งที่สัญญาคือหนี้ หากคุณได้เชื่อมโยงระบบของคุณไว้ล่วงหน้าแล้วคุณอาจไม่สังเกตเห็นความแตกต่างของเวลาในการโหลด KDE เนื่องจาก KDE ทำหน้าที่เป็นยูทิลิตี้ที่เรียกว่า kdeinit เพื่อโหลดไลบรารีที่จำเป็นทั้งหมด เพื่อหลีกเลี่ยงการใช้เครื่องมือนี้เราต้องแจ้งให้ KDE ทราบว่ามีการเชื่อมโยงล่วงหน้า ในการทำสิ่งนี้เราต้อง (ในฐานะรูท) สร้างไฟล์ตัวแปร:
nano /etc/profile.d/kde-prelink.sh
ซึ่งเราวางบรรทัดต่อไปนี้
export KDE_IS_PRELINKED=1
และเราให้สิทธิ์ที่เหมาะสม (เราไม่ต้องการซนเพิ่ม rm-rf /)
chmod 755 /etc/profile.d/kde-prelink.sh
และถ้าคุณไม่เชื่อฉันนี่คือวิดีโอของ KDE ที่บูตระบบของฉัน:
- HDD ที่ 7200 รอบต่อนาที
- Gentoo
- XFS
- Ksplash ถูกปิดใช้งาน (สาเหตุของวิดีโอหน้าจอดำ
Cron และพรีลิงค์
หากคุณใช้ระบบเช่น Archlinux ซึ่งมีการอัปเดตบ่อยมากการเพิ่ม cron ที่รันพรีลิงก์ทุกวันอาจเป็นเรื่องที่น่าสนใจ
ดังนั้นเราจึงเปิดไฟล์ cron ด้วย nano (เป็นรูท):
nano /etc/cron.daily/prelink
และเราวางสิ่งต่อไปนี้:
#! / bin / ทุบตี [[-x / usr / bin / prelink]] && / usr / bin / prelink -amR &> / dev / null
จากนั้นเราให้สิทธิ์ที่เหมาะสม (ฉันได้กล่าวไปแล้วว่าไม่มีใครต้องการให้ใครเพิ่มรหัสที่เป็นอันตราย):
chmod 755 /etc/cron.daily/prelink
นิสัยที่ดีเมื่ออ่านบทความคือการค้นคว้าว่าสคริปต์ทำอะไรกันแน่ นิสัยที่ดีเมื่อเขียนคือการอธิบายว่ามีไว้เพื่ออะไร นี่คือรายละเอียด
- บรรทัดแรกคือการบอกระบบว่าสคริปต์ทุบตีคืออะไรและตำแหน่งของล่าม
- อันที่สองทำให้ bash เรียกใช้ subshell ในโหมด debug ฉันไม่รู้ว่าทำไม แต่ขอแนะนำสามารถกำจัดได้โดยไม่มีความเสี่ยง && หมายความว่าเมื่อคำสั่งเสร็จสิ้นให้รันสิ่งต่อไปนี้
- ดำเนินการเชื่อมโยงล่วงหน้าด้วยพารามิเตอร์บางอย่างที่อธิบายไว้แล้วเครื่องหมาย &> / dev / null จะเปลี่ยนทิศทางเอาต์พุตไปยัง / dev / null นั่นคือจะทิ้งมัน