Hạn chế của việc sử dụng tải trước? Tại sao nó không được bao gồm theo mặc định?


110

Tôi muốn biết những hạn chế của việc sử dụng là preloadgì? Nếu không có nhược điểm, preloadsẽ được bật theo mặc định, vì vậy tôi đoán có một số.

Được rồi, bạn cần thêm một chút RAM, nhưng hầu hết mọi người đều có RAM nhiều hơn thì Ubuntu cần - vậy nhược điểm của việc sử dụng là preloadgì?


6
Cảm ơn bạn cho câu hỏi hữu ích của bạn. Tôi muốn biết, nó có phải là một huyền thoại?
Saeed Zarinfam

1
Việc sử dụng cpu và pin có thể là một nhược điểm đối với một số ... lỗi.launchpad.net/ubfox/+source/preload/+orms/481861
Mateo

1
Câu hỏi hay. Một số bản phân phối được tải sẵn với tải trước, chẳng hạn như HĐH cơ bản (đó là những gì tôi chạy trên máy tính xách tay của mình vì gala nhanh hơn so với sự thống nhất của Ubuntu).

1
Chỉ cần đoán: Một lý do để không bao gồm nó theo mặc định là thực tế là nó không thể sử dụng được trên tất cả các hệ thống (yêu cầu phần cứng của nó có thể khác với yêu cầu tiêu chuẩn).
don.joey

2
brainstorm.ubfox.com/idea/1122 một bài đăng ở đây cho thấy rằng "nó chạy như một daemon với các đặc quyền gốc." Đây có thể là một vấn đề bảo mật, cũng có người động não này muốn nó được đưa vào mặc định là brainstorm.ubfox.com/idea/14092
Mateo

Câu trả lời:


65

Nói một cách đơn giản, Preload không dành cho tất cả mọi người. Thật tuyệt nếu bạn mở các ứng dụng hoặc thư viện nhiều. Nó có hại nếu bạn chỉ tải các ứng dụng hoặc thư viện. Tôi sẽ sử dụng hai ví dụ từ việc sử dụng thực tế của tôi (và có, tôi sử dụng tải trước).

Đầu tiên, Google Chrome. Bây giờ một trình duyệt chỉ được mở một lần cho mỗi lần khởi động, có thể hai lần (đối với tôi, tôi là nhà phát triển web). Chrome và các thư viện liên quan của nó nằm trong bộ nhớ vì tôi luôn sử dụng nó. Ngay cả khi tôi đóng tất cả các cửa sổ chrome, nó vẫn ở chế độ nền. Do đó, tất cả các ram dành riêng để giữ một bản sao tải trước của Chrome là một sự lãng phí hoàn toàn và hoàn toàn. Nó không bao giờ (hoặc hiếm khi) không tải. Đối với người dùng trung bình, điều này đúng với rất nhiều ứng dụng. Một người dùng Office hầu như sẽ luôn mở ứng dụng email của họ. Vì vậy, khoản tiết kiệm nhỏ trong thời gian khởi động là hoàn toàn lãng phí vì họ chỉ mở ứng dụng email của họ một lần một ngày và để nó mở.

Ví dụ thứ hai là cào. Là một nhà phát triển ruby ​​tin vào thử nghiệm, tôi chạy ra TON. cào chạy, thực hiện trong vài giây - vài phút rồi thoát ra. Tải trước giúp tôi tăng tốc công việc hàng ngày vì nó tải rake và các thư viện cần thiết (có thể rất rộng) trước thời hạn. Vì vậy, có rất nhiều bắt đầu và dừng lại để chạy cào. Ram thêm được sử dụng để tăng tốc 400 hoặc 500 lần cào trong khoảng vài giờ là hoàn toàn xứng đáng.

Vì vậy, lý do nó không được bật theo mặc định là vì khả năng thực sự cải thiện hiệu suất của nó chủ yếu dựa vào cách bạn sử dụng hệ thống của mình. Đối với một số người, nó sẽ là một tiêu cực và đối với những người khác là tích cực.

Cuối cùng, tải trước, ngay cả khi bạn không sử dụng, sẽ tiêu thụ ram. Vì vậy, nếu bạn không khởi chạy ứng dụng thường xuyên, bạn thực sự có thể làm cho toàn bộ hệ thống của mình chậm hơn một chút bằng cách không có ram đó cho các loại bộ đệm khác. Hãy nhớ rằng, ngay cả khi bạn có 32 Gigs ram, Linux sẽ cố gắng sử dụng nó nhiều nhất có thể để lưu trữ dữ liệu để giúp tương tác của bạn nhanh hơn. Bằng cách sử dụng tải trước, bạn giảm một số bộ nhớ trống. Ngay cả khi chỉ là một chút xíu, 2 giây bạn đã lưu khởi chạy chrome 1 lần có thể khiến bạn mất 60 giây trong tháng nó vẫn chạy.


1
Ngoài ra, sử dụng tải trước làm chậm khởi động lên. Càng nhiều thứ được tải sẵn, càng mất nhiều thời gian để hệ thống của bạn hoạt động. Bây giờ, hãy tưởng tượng rằng tất cả những gì bạn muốn làm là khởi động, viết một câu trong bản ghi nhớ và tắt ngay sau đó. Bạn sẽ chờ đợi để thậm chí có thể viết bản ghi nhớ, bởi vì hệ thống của bạn đang tải trước những thứ rất có thể không liên quan đến nhiệm vụ đó. Do đó, theo một cách nào đó, tải trước (nói chung) là con dao hai lưỡi.
F-3000

1
Preload không thực sự hoạt động theo cách đó ... Nó đưa ra gợi ý về kernel như "hey tải cái này vào bộ nhớ cache của bạn khi bạn ở đó, tôi sẽ cần nó sớm" và kernel làm như vậy. Vì vậy, nó thực sự không sử dụng RAM như bạn mô tả. Hai điều có thể xảy ra, tho: Tải vào bộ đệm sẽ loại bỏ các ứng dụng mà bạn sẽ sử dụng sớm - điều này dẫn đến hoạt động đóng băng ngắn và ổ cứng khi bạn quay lại ứng dụng.
Hurikhan77

1
Thứ hai: Nếu tải trước dự đoán mô hình sử dụng của bạn sai (có thể là trường hợp tương tự nếu bạn đã tải ứng dụng liên tục), nó sẽ lưu lại những thứ mà sau đó sẽ bị đẩy ra khỏi RAM và lần lượt đẩy bộ nhớ cache ra khỏi RAM mà bạn có thể có sử dụng tốt hơn cho. Nhưng cuối cùng, nó chỉ "tiêu thụ" RAM như bộ nhớ cache vfs - vì vậy nó thực sự loại bỏ RAM và do đó "RAM miễn phí" theo một cách nào đó. Tuy nhiên, nó không cạnh tranh với "bộ đệm thông thường" khi bạn viết.
Hurikhan77

1
Với coteyr và @ Hurikhan77 nhớ lại ở trên, bạn có đồng ý Preload là một cách hiệu quả để giúp cải thiện tốc độ nhận thức trên các hộp máy tính để bàn cũ, RAM thấp (~ 800 MB khi khởi động). FYI kích hoạt Preload trên các hộp được tân trang lại như vậy sẽ cung cấp cho trình quản lý bộ nhớ ảo rất nhiều công việc cho sự ngẫu hứng?
tuk0z

2
@lliseil Nếu 800 MB đó thực sự là RAM chưa được phân bổ, tải trước có thể giúp ... Nhưng nó có thể hoạt động tốt hơn với nhiều RAM hơn. Và điều đó có nghĩa là: Tải trước sẽ xung đột với các ứng dụng ngốn bộ nhớ mà bạn có thể bắt đầu sau. Việc hạ thấp swappiness có thể là cần thiết ở đây mà sau đó có thể khiến tải trước vô dụng ngay khi bạn sử dụng quá nhiều RAM.
Hurikhan77

21

Câu hỏi của bountier Saeed Zarinfam vào ngày 5 tháng 9 năm 2012:

Hi tất cả, tôi muốn biết, nó có phải là một huyền thoại? Liệu [tải trước] thực sự cải thiện hiệu suất của tôi? Hạn chế của việc sử dụng nó là gì? Tôi có một máy tính xách tay với thông số kỹ thuật này (CPU Core i5, RAM 4GB, SSD cứng 128GB). Cảm ơn bạn rất nhiều.

  • Không có nhu cầu thực sự tải trước nếu bạn có ổ SSD
    • Điều này là do SSD cung cấp thời gian truy cập ngẫu nhiên nhanh hơn nhiều so với đĩa cứng, do đó, các tệp nhị phân / phụ thuộc "tải trước" trong bộ nhớ là một sự lãng phí, IMO
    • Nhược điểm cơ bản sau đó là tải trước là "sử dụng" bộ nhớ bổ sung mà không mang lại lợi ích hữu hình.

20
Điều này không bao gồm câu hỏi của OP vì có bất kỳ hạn chế nào khi sử dụng tải trước không? Thứ hai, bạn đã hình thành ý kiến, đưa ra tuyên bố về "tải trước" và sau đó đưa "SSD" vào phương trình. Tại thời điểm nào bạn thực sự sẽ trả lời câu hỏi?
Đuôi chuông

12

Preload là một trình điều khiển đọc thích ứng của người dùng, chạy trên nền của hệ thống của bạn và quan sát những chương trình bạn sử dụng thường xuyên nhất, lưu trữ chúng để tăng tốc thời gian tải ứng dụng. Bằng cách sử dụng Preload, bạn có thể đặt RAM không sử dụng để hoạt động tốt và cải thiện hiệu suất tổng thể của hệ thống máy tính để bàn của bạn.

Đừng mong đợi để thấy một sự thay đổi mạnh mẽ trong hiệu suất ngay lập tức. Ngoài ra, nếu bạn chỉ mở / đóng các ứng dụng lặp đi lặp lại, máy tính của bạn sẽ lưu trữ các tệp đó trong bộ nhớ cache (đây được gọi là tải trọng ấm trên mạng), do đó bạn sẽ không thấy bất kỳ sự khác biệt nào về tốc độ ở đó. Tuy nhiên, bạn sẽ thấy một sự cải thiện tốc độ nếu, ví dụ, bạn sử dụng một chương trình không liên tục; các chương trình này sẽ khởi động nhanh hơn mà không cần tải trước.

Tải trước có thể cung cấp một cải tiến lớn trong thời gian khởi động ứng dụng; vì hầu hết các máy hiện đại đều có bộ nhớ dự phòng tốt, Preload đưa RAM này vào sử dụng tốt. 1

Bây giờ đang được nói, có vẻ như tải trước là một tiện ích tuyệt vời, và nó có thể.

Tôi nghĩ rằng lý do nó không được cài đặt sẵn hệ điều hành là vì người dùng phải biết chính xác những gì đang làm và có đủ kinh nghiệm để có thể sử dụng nó và hệ thống phải có đủ RAM.

Trên khía cạnh kỹ thuật hơn, tải trước hoạt động bằng cách di chuyển dữ liệu từ đĩa cứng sang RAM, điều này khiến hầu hết các đĩa cứng chuyển sang chế độ ngủ nếu không được sử dụng, sau đó phải quay ngược lại khi cần. Vì vậy, quay lên / xuống ổ đĩa, sẽ làm cho số lượng Chu kỳ tải / hủy tải và thời gian bật nguồn tăng lên và điều đó sẽ rút ngắn tuổi thọ của ổ đĩa.

Chúng tôi đã thiết kế và triển khai tải trước, một sơ đồ tìm nạp thích ứng dựa trên Markov hoạt động dựa trên các dự đoán ở cấp ứng dụng. Hơn nữa, tải trước được triển khai trong không gian người dùng và không thay đổi môi trường thời gian chạy ứng dụng theo bất kỳ nghĩa nào. Đây là công việc đầu tiên thử nghiệm với việc tìm nạp trước hệ thống ở cấp độ này theo như chúng tôi biết.

Kết quả thử nghiệm của chúng tôi cho thấy những cải tiến đầy hứa hẹn về thời gian khởi động ứng dụng so với bộ đệm lạnh và tỷ lệ trúng khá so với thuật toán dự đoán chưa từng có.

Tuy nhiên, trong không gian người dùng giới thiệu những trở ngại lớn trong việc làm cho tải trước trở thành một giải pháp cạnh tranh cho vấn đề thời gian khởi động. Cụ thể, không có thông tin đầy đủ về các yêu cầu I / O của ứng dụng và thiếu các kênh liên lạc mạnh với hệ thống con bộ đệm trang làm giảm đáng kể khả năng tải trước, đặc biệt là trong điều kiện bộ nhớ chặt.

Một vấn đề cố hữu khác với thiết kế tải trước là phương sai cao và dự đoán thấp gây ra bởi sự tương quan tương đối lỏng lẻo của khởi động ứng dụng. Mặc dù chúng tôi xây dựng thành công một mô hình để theo dõi các mối tương quan của ứng dụng, nhưng thực tế là việc khởi chạy ứng dụng là những sự kiện rất hiếm so với thời gian mà máy tính hoạt động, một sơ đồ tìm nạp ở cấp ứng dụng bị kết án là tiêu thụ bộ nhớ tìm nạp rất lớn trong thời gian thực tế. Bộ nhớ này có thể được sử dụng để cải thiện hành vi bộ nhớ cache ngắn hạn.

Cuối cùng, chúng tôi đưa ra một loạt các khuyến nghị cho các nhà phát triển hệ thống về cách cải thiện thời gian khởi động, thời gian đăng nhập và thời gian khởi động ứng dụng mà không cần quay lại trình nạp trước được tích hợp với hệ thống con bộ đệm trong kernel. Tất nhiên, trình tìm nạp trước dựa trên kernel có thể cải thiện trên đó. 2

1 Nguồn: techthrob

2 Nguồn: Preload - Một Daemon tải trước thích ứng của Behdad Esfahbod - Một luận án được đệ trình phù hợp với các yêu cầu về bằng Thạc sĩ Khoa học - Khoa Khoa học Máy tính - Đại học Toronto Bản quyền (c) 2006 bởi Behdad Esfahbod.


1
Cảm ơn câu trả lời của bạn, Mitch. Đây là những suy nghĩ của tôi là tốt. Đặc biệt trên máy tính xách tay tải trước có thể là một vấn đề. Tuy nhiên, tôi vẫn muốn tìm một nguồn / thảo luận chính thức về lý do tại sao nhóm Ubuntu quyết định chống lại việc tải trước.
Glutimate

9

Hạn chế? Không có gì cả!

Tăng hiệu suất mở ứng dụng bởi người dùng. Tôi đã sử dụng nó trong nhiều năm trên các hệ thống của mình cũng như "đọc trước" và không có vấn đề gì. Các trang lỗi cho tải trước không cho thấy bất kỳ nhược điểm một trong hai.

Tải trước giám sát các ứng dụng mà người dùng chạy và bằng cách phân tích dữ liệu này, dự đoán những ứng dụng nào người dùng có thể chạy và tìm nạp các nhị phân và phụ thuộc của chúng vào bộ nhớ để có thời gian khởi động nhanh hơn.

Nó không làm tăng thời gian khởi động một chút tuy nhiên thời gian tìm nạp giảm tốc độ của các ứng dụng vượt xa vấn đề nhỏ này.

xem bài viết

Nếu bạn liên tục sử dụng các ứng dụng phổ biến như Firefox hoặc Gimp, bạn sẽ nhận thấy một số thời gian tải được cải thiện đáng kể. Preload là một trình nền chạy riêng biệt trong nền và sẽ không làm gián đoạn máy tính để bàn của bạn. Người dùng Ubuntu có thể cài đặt tải trước với:

sudo apt-get install preload

Các kết quả:

Biểu đồ cho thấy sự khác biệt giữa khởi động bình thường và tải trước

tham chiếu


3
Tôi biết liều lượng của nó và tôi đã đọc một số 'tải trước HowTos', nhưng không nơi nào tôi có thể đọc được điều gì về những hạn chế. Nếu không có sự hỗ trợ thì nó sẽ được vận chuyển theo mặc định với nhiều bản phân phối Linux - nhưng theo như tôi biết - thì không phải vậy.
Paradiesstaub

1
Hiệu suất không giảm , nhưng tăng . Đó là toàn bộ quan điểm của việc sử dụng tải trước. Có lẽ nó chỉ là một lỗi đánh máy.
Marco

2
Sơ đồ của bạn trông tuyệt vời nhưng nó thiếu thông tin quan trọng. Nó sẽ phù hợp 100% trong bài thuyết trình powerpoint của một anh chàng bán hàng, nhưng đó là một ví dụ về 'số liệu thống kê tồi'. Những con số này đến từ đâu? Giao thức nào đã được sử dụng để ghi lại chúng? Ảnh chụp nhanh là gì? Có bao nhiêu máy đã tham gia vào mẫu? Phần cứng là gì? Chương trình tải trước được cấu hình như thế nào?

1
@Ringtail: Bạn nói đúng. Bạn không phải là tác giả của sơ đồ đó. Nhưng nếu bạn nhấp qua tất cả các liên kết trong các bài viết, bạn sẽ vào trang Techthrob.com nên đã lưu trữ một bài viết được viết bởi tác giả của chương trình. Nhưng trang đó đã biến mất. Vì vậy, chỉ có nguồn: luận án của tác giả.

2
Mọi người nên nâng cấp phần cứng nếu thiết bị đầu cuối gnome mất hơn 2 giây để khởi động ...
Peter và con sói
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.