Có một điểm trong việc sử dụng Prelink nữa?


11

Trong nhiều năm sử dụng các hộp linux khác nhau, tôi đã bắt đầu sử dụng prelink theo nghi thức để tăng tốc thời gian tải của các ứng dụng.

Tuy nhiên, lợi ích của việc chạy prelink bị phủ nhận mỗi khi gói được cài đặt lại, vì nó, tất cả các phụ thuộc và phụ thuộc của nó, cần phải được xem xét lại.

Việc mở đầu này có thể gây ra nhiều vấn đề và một vấn đề là vô hiệu hóa nhị phân MD5, vấn đề đối với những thứ so sánh MD5 với sửa đổi ngược dòng hoặc sử dụng MD5 để xác định xem nhị phân có bị thay đổi hay không và do đó không muốn được xóa khi xóa gói .

Gần đây, máy tính đã nhanh hơn rất nhiều và lợi ích của prelink hiện nay hầu như không đáng chú ý.

Là sử dụng prelink vẫn là một khái niệm hợp lý, hoặc nó có thể bị loại bỏ một cách tình cờ và bị bỏ lại như một cái gì đó của một thời đại quá khứ?

Câu trả lời:


4

Bạn không thể đọc nó cho đến ngày 23 tháng 7 năm 2009 trừ khi bạn đăng ký vào LWN.net, nhưng bạn có thể thấy http://lwn.net/Articles 4321244 / hữu ích.


Sau đó, bạn có thể cung cấp một "liên kết người đăng ký" cho bài viết này.
wazoox

5
Tôi luôn cảm thấy tồi tệ khi sử dụng các liên kết thuê bao. Giống như tôi đang xé toạc chúng ra hoặc cái gì đó.
David Pashley

2
Tôi đồng ý. Tôi không ngại cung cấp các liên kết thuê bao đến các liên hệ trực tiếp (bạn bè hoặc đồng nghiệp) khi tôi gặp một bài viết thú vị, nhưng cảm thấy sai khi đăng nó công khai.
Christopher Cashell

1

Tôi sẽ không nói rằng nó nên được loại bỏ một cách tùy tiện, tuy nhiên tôi chắc chắn sẽ nói rằng việc sử dụng nên được suy nghĩ nhiều hơn một chút.

Trên một máy cao cấp hiện đại thường xuyên được cập nhật, prelink có thể không phải là một tối ưu hóa hữu ích. Tuy nhiên, vẫn còn một số trường hợp có thể đáng sử dụng. Ví dụ: trên máy cũ hoặc cấp thấp hơn hoặc trên các máy khá tĩnh và không gặp phải các thay đổi hoặc cập nhật thường xuyên. Nó cũng có thể có giá trị nếu bạn có tốc độ cao các chương trình được chạy liên tục (tôi có thể nghĩ đến một vài tình huống mà bạn có thể có các chương trình được chạy liên tiếp hoặc song song trong đó việc prelinking có thể cải thiện hiệu suất).

Nói chung, bạn cần xem xét tình huống cụ thể của mình và sau đó quyết định xem lợi ích có vượt trội hơn công việc và nỗ lực bổ sung hay không.


1
"Tỷ lệ cao các chương trình được chạy liên tục" - nếu bạn ở trong tình huống đó, các tệp nhị phân và thư viện sẽ kết thúc trong bộ đệm hệ thống tệp của bạn. Lần duy nhất prelinking sẽ giúp là nếu bạn bị bỏ đói bộ nhớ đến mức bạn có rất ít bộ nhớ cache fs có sẵn
Daniel Lawson

2
Prelinking sẽ tăng tốc khởi động chương trình ngay cả khi chương trình được lưu trong bộ đệm hệ thống tập tin. Phải thừa nhận rằng, khi chương trình (và các thư viện liên quan) được lưu trữ, hiệu suất tăng sẽ ít được chú ý hơn. Tuy nhiên, tùy thuộc vào tốc độ của các chương trình đang chạy, một vài micro giây có thể cộng lại để cuối cùng tạo ra sự khác biệt.
Christopher Cashell

1

Tôi có thể nói prelink chắc chắn hữu ích trên các máy chủ để bàn nhiều người dùng như máy chủ LTSP được sử dụng trong các trường học và quán cà phê net chẳng hạn. Prelink không chỉ tăng tốc độ tải ứng dụng mà còn cải thiện việc sử dụng RAM và đập đĩa do sự tranh chấp giữa người dùng, cho phép nhiều người dùng đồng thời hơn trên máy chủ.


0

Tôi nghĩ rằng với giá của bộ nhớ giảm prelinking đang trở nên ít hữu ích hơn. Nếu bạn vẫn muốn tăng tốc mọi thứ lên một chút, bạn có thể xem xét tải trước .


Tôi đã thử tải trước, tôi chỉ thấy nó làm cho thời gian khởi động chậm hơn trong khi nó ngồi đó nhai cả hai lõi làm việc đọc. Và cũng vì một số lý do mà tôi không thể khiến X chết trong khi khởi động. Ngoài ra, nếu bạn không khởi động lại thường xuyên, tải trước dừng lại không hữu ích.
Kent Fredric

0

Tôi để quyết định đó cho phiên bản HĐH. Nếu theo mặc định, HĐH chọn gọi prelink thường xuyên bằng cron thì có thể nó không hữu dụng lắm. Tôi hy vọng những người tạo ra các bản phân phối đã suy nghĩ trước khi chọn thêm / xóa tùy chọn prelink theo mặc định. Vì vậy, tôi đi với họ hơn là tự mình phân tích mọi thứ.


er, nó không thực sự mặc định, đó là một gói bạn phải cài đặt, và nếu nó không được cài đặt, bạn sẽ không nhận được những thứ được xem trước. Nếu được cài đặt, nó có xu hướng tạo một tập lệnh cron, mặc định tắt, mà bạn phải kích hoạt thủ công.
Kent Fredric

Nó được mặc định trên fedora không tắt theo mặc định. Nó được đổi tên thành 19 nhưng không tắt. Nó cũng giống như vậy kể từ Fedora 6 hoặc 7.
Saurabh Barjatiya

0

Gentoo sử dụng khúc dạo đầu. Họ giải quyết vấn đề md5sum bằng cách bỏ qua thông tin prelink hen tính toán hàm băm.

Prelink sẽ luôn giúp bạn tăng tốc độ mặc dù nó có thể ngày càng ít được chú ý hơn vì phần cứng trở nên nhanh hơn. Cách duy nhất để biết chắc chắn về phần cứng của bạn là tắt prelink và xem bạn thích sự chậm chạp khi khởi chạy ứng dụng.

Sidenote: OS X cũng từng thực hiện một hình thức prelinking nhưng điều đó đã bị bỏ qua để ủng hộ bộ đệm được liên kết mà liên kết duy trì chính nó. Tốt nhất của cả hai thế giới, không thay đổi nhị phân và không có chi phí thực so với liên kết thông thường. Tôi hy vọng Linux tiếp thu ý tưởng này vào một lúc nào đó :)

Cập nhật: Gần đây tôi đã thử prelinking trên Linux và để biên dịch cscope với nhiều tệp và quy trình, tôi đã tăng tốc độ 5%.


1
Nó không thực sự ... nó vẫn là thứ bạn phải cài đặt và cấu hình, tôi nói điều này bởi vì tôi đang sử dụng gentoo. Và bạn không thể chính xác "tắt" prelink, bạn chỉ có thể ngừng chạy prelink, hoặc đi và làm sáng tỏ toàn bộ hệ thống của bạn. Ngoài ra, vì một số lý do mà tôi không biết, paludis có vấn đề với các nhị phân đã được prelinked, và không có một hook hook trước (không được hỗ trợ), nó để lại các nhị phân phía sau, mang lại hiệu quả. Gần đây tôi đã phát hiện ra một vài ứng dụng KDE bị bỏ lại vì thực tế trước khi tôi cài đặt hook và chúng nằm trong đường dẫn trước những ứng dụng mới hơn ở một vị trí khác, gây ra sự khác biệt
Kent Fredric

Có thể, cho phép tối ưu hóa trình liên kết (-Wl, -O1) và những thay đổi mới trong phân bổ gnu-hash gần giống với những gì OSX đã chuyển sang, có thể là lựa chọn hiệu quả hơn.
Kent Fredric

Tôi phải thừa nhận đã được một thời gian kể từ khi tôi sử dụng gentoo ... Tôi đã chuyển sang OS X :). Tôi nhớ một bài kiểm tra tôi đã từng làm trên OS X: khởi động tất cả các ứng dụng cùng một lúc và khoảng thời gian đó (khoảng 1 phút iirc). Sau đó, xóa tất cả thông tin prelink và bắt đầu lại tất cả các ứng dụng. Thời gian đó mất 5 phút ... Đây là vào năm 2005 trên một tòa tháp Mac, một con thú thực sự.
w00t

1
Để phản bác lại ý tưởng của bạn rằng việc tăng tốc trước có thể ít được chú ý hơn: chúng có thể trở nên quan trọng hơn khi các chương trình tăng vọt trong việc sử dụng libs có thể tải thời gian chạy. Một gvim từ năm 2009 đã sử dụng 55 libs thời gian chạy. Một từ 2 năm trước đã sử dụng 73. 'mount' từ năm 2009 đã sử dụng 7, mount từ hôm nay, sử dụng 10 với 4 trong số chúng trong / usr / lib64 và 6 in / lib64 ... để chúng được mở rộng, ngày càng lớn hơn và lan rộng hơn . - giống như trước đây - ngay khi CTNH nhanh hơn, SW trở nên phức tạp hơn rất nhiều để tăng tốc độ tăng.
Astara

@astara đúng, nhưng sự tăng trưởng trong việc sử dụng thư viện không nhanh bằng tốc độ tăng trưởng của ổ cứng và tốc độ bộ nhớ.
w00t
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.