Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I would like to know what are the drawbacks of using preload? If there would be no downside, preload would be enabled by default, so I guess there are some.

Okay you need a bit more RAM, but most people have by far more RAM then Ubuntu needs - so what are the downsides of using preload?

share|improve this question
3  
Thank you for your useful question. I want to know, Is it a myth? –  Saeed Zarinfam Sep 5 '12 at 5:09
1  
cpu usage and battery might be a drawback for some... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861 –  Mateo Sep 7 '12 at 1:12
    
Nice question. Some distributions do come loaded with preload, such as the elementary OS (which is what I run on my laptop because gala is way faster than Ubuntu's unity). –  William Jan 6 '13 at 15:14
    
Just a guess: One reason for not including it by default is the fact that it is not usable on all systems (its hardware requirements might be different from the standard requirements). –  don.joey May 1 '13 at 8:48
1  
brainstorm.ubuntu.com/idea/1122 a post here suggests that it "that it runs as a daemon with root privileges." Which may be a security issue, there is also this brainstorm wanting it's default inclusion brainstorm.ubuntu.com/idea/14092 –  Mateo May 4 '13 at 1:17

5 Answers 5

up vote 22 down vote accepted
+100

Simply put, Preload isn't for everyone. It is great if you open applications or libraries a lot. It is harmful if you load applications or libraries only occasionally. I will use two examples from my actual usage (and yes I use preload).

First, Google Chrome. Now a browser is opened only once per boot, maybe twice (for me, I am a web developer). Chrome and its related libraries stay in memory because I am always using it. Even when I close all the chrome windows it's still in the background doing its thing. Thus all the ram dedicated to holding a preload copy of Chrome is a total and utter waste. It's never (or rarely) unloaded. For the average user this is true for a great number of applications. A Office user will almost always have their email app open. So the small savings in startup time is completely wasted because they only open their email app once a day, and leave it open.

The Second example is rake. As a ruby developer that believes in testing I run rake a TON. rake runs, executes for a couple of seconds - minutes then exits. Preload helps me speed up my daily work because it loads rake and its needed libraries (which can be very extensive) ahead of time. So there are a lot of starts and stops to the running of rake. The extra ram used to speed up the 400 or 500 launches of rake over the span of a few hours is totally worth it.

So the reason it's not enabled by default is because its ability to actually improve performance is based largely on how you use your system. For some people it will be a negative and for others a positive.

Lastly, having preload on, even if you're not using it, consumes ram. So if you're not launching applications frequently, you could actually make your entire system fractionally slower by not having that ram available for other types of caching. Remember, even if you have 32 Gigs of ram Linux will try to use as much of it as it can to cache data to make your interaction faster. By using preload you reduce that free memory some. Even if it is just a little tiny bit, the 2 seconds you saved launching chrome 1 time could cost you 60 seconds over the month it stays running.

share|improve this answer

Question asked by bountier Saeed Zarinfam on September 5, 2012:

Hi all, I want to know, Is it a myth? Does [preload] really improve my performance? What are drawbacks of using it? I have a laptop with this specification (Core i5 CPU, 4GB RAM, 128GB SSD Hard). Thank you so much.

  • There's no real need for preload if you have an SSD
    • This is because SSDs provide much faster random access times than hard disks, so "pre-loading" binaries/dependencies in memory is a waste, IMO
    • The basic downside then is that preload is "using" additional memory without providing a tangible benefit.
share|improve this answer
14  
This doesn't cover the OP's question as are there any drawbacks to using preload? Second, you have formed an opinion, made a statement about "pre-loading" and then introduced "SSD" into the equation. At what point were you actually going to answer the question? –  Ringtail Sep 8 '12 at 21:42

Preload is an “adaptive readahead daemon” that runs in the background of your system, and observes what programs you use most often, caching them in order to speed up application load time. By using Preload, you can put unused RAM to good work, and improve the overall performance of your desktop system.

Don’t expect to see a drastic change in performance right away. Also, if you’re just opening/closing applications repetitively, your computer will store those files in cache anyway (this is called a “warm” load), so you won’t see any difference in speed there. You will, however, see a speed improvement if, for example, you use a program intermittently; these programs will start up faster than without Preload.

Preload can provide a great improvement in application start up time; since most modern machines have a good deal of memory to spare, Preload puts this RAM to good use.1

Now that being said, it seems that preload is a great utility, and it might be.

I think that the reason its not preloaded with the OS, is because the user has to know exactly what there doing, and have enough experience to be able to use it, and the system has to have enough RAM.

On a more technical aspect, preload works by moving data from the hard disk to RAM, which makes most hard disk to go to sleep mode if not used, and then have to spin back up when needed. So spinning up/down the drive, would cause the Load/Unload Cycle count, and the Power-On time count rise, and that will shorten the life of the drive.

We designed and implemented preload, a Markov-based adaptive prefetching scheme that works on application-level predictions. Moreover, preload is implemented in the userspace and does not change the application run-time environment in any sense. This is the first work experimenting with file-system prefetching at this level as far as we know.

Our experimental results show promising improvements on application start-up time compared to cold caches, and a decent hit rate compared to a na¨ıve prediction algorithm.

However, being in user-space introduces major obstacles into making preload a competitive solution to the startup-time problem. In particular, not having full information about applications’ I/O requests, and lack of strong communication channels with the page-cache subsystem degrades preload’s effectiveness drastically, especially under tight memory conditions.

Another inherent problem with the preload design is high variance and low prediction confidence caused by the relatively loose correlation of application start-ups. While we successfully build a model to track application correlations, the fact that application launches are very rare events compared to the timescale that computers work on, an application-level prefetching scheme is condemned to consume huge prefetching memory over practically infinite periods of time. This memory can be used to improve short-term cache behavior.

Finally, we come up with a set of recommendations for system developers on how to improve boot-time, login-time, and application startup-time without falling back to a prefetcher integrated with the cache subsystem in the kernel. Of course, a file-based prefetcher in the kernel can improve on top of that.2

1Source:techthrob

2Source:Preload - An Adaptive Prefetching Daemon by Behdad Esfahbod - A thesis submitted in conformity with the requirements for the degree of Master of Science - Graduate Department of Computer Science - University of Toronto Copyright (c) 2006 by Behdad Esfahbod.

share|improve this answer
    
Thank you for your answer, Mitch. These were my thoughts as well. Especially on laptops preload might be a problem. But still, I would love to find an official source/discussion on why the Ubuntu team decided against shipping preload. –  Glutanimate Apr 28 '13 at 9:48

Drawbacks? There are NONE!

Increased performance opening applications by the user. I have used it for years on my systems as well as "read-ahead" and have no issues. The bug page for preload doesn't suggest any drawbacks either.

Preload monitors applications that users run, and by analysing this data, predicts what applications users might run, and fetches those binaries and their dependencies into memory for faster startup times.

It does increase the boot time slightly however the speed decrease fetching time of applications far exceeds this little issue.

see article

If you're constantly using common apps like Firefox or Gimp you'll notice some greatly improved load times. Preload is a daemon that runs discretely in the background and will not disrupt your desktop in anyway. Ubuntu users can install preload with:

sudo apt-get install preload

Results:

Graph showing difference between normal and preload start

ref

share|improve this answer
3  
I know what it dose and I read several 'preload HowTos', but nowhere I could read something about the drawbacks. If there would be no draw backs it would be shipped by default with many Linux distributions - but as far as I know - thats not the case. –  Paradiesstaub Mar 5 '12 at 23:20
1  
The performance is not decreased, but increased. That's the whole point of using preload. Maybe it's just a typo. –  Marco Sep 5 '12 at 10:10
1  
Your diagram looks great but it lacks important information. It would 100% fit in a powerpoint presentation of a sales guy, but it is an example of 'bad statistics'. Where do these figures come from? What protocol was used to record them? Whas it a single snapshot? How many machines were involved in the sample? What was the hardware? How was the preload program configured? –  user85164 May 4 '13 at 22:31
1  
@Ringtail: You're right. You're not the author of that diagram. But if you click through all the links in the articles, you come on a Techthrob.com page that should have hosted an article written by the author of the program. But that page has gone. So there is only source: the thesis of the author. –  user85164 May 4 '13 at 23:50
1  
One should upgrade the hardware if a gnome terminal takes more than 2 seconds to start up... –  Peter and the wolf Jan 24 at 10:07

Have a look at this document by Lorenzo Colitti about analyzing and improving GNOME startup time.

Coletti is not the author of preload. In his document he references to the preload project page on Sourceforge.net.

Basically, there are 2 reasons.

  1. It was a GNOME development. GNOME got unpopular, and as Coletti states in this paper, developers of other environments saw this work as the wrong approach.

  2. preload is aimed at single user performance, not at multiuser. So the scope of the project doesn’t match the scope of all distros.

Read pages 9 & 10 of Colitti's document.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.