Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In my experience, setting any process to realtime will make your computer slow down to a snails pace. What is the use of this setting, if it makes your computer unuseable?

share|improve this question
2  
If you have a multi-core processor or a multi-processor system, you can set affinity for only one core. That way, the rest of the system will remain responsive and you can enjoy the rest of the benefits of a real-time process. This of course only works well for processes that only need one core to work. –  AndrejaKo Dec 3 '11 at 15:46

2 Answers 2

up vote 5 down vote accepted

Exactly what you describe, at the cost of slowing the rest of your computer down to a crawl it runs the process in real-time giving it a higher priority than everything else. This is only necessary for time-critical applications, most people don't see these in their daily life...

share|improve this answer
    
Some very common programs, such as sound servers (PulseAudio and JACK as two Linux examples), use real-time priority threads. –  grawity Dec 4 '11 at 12:38
    
@grawity: JACK is not a server, but just a development kit. Both are cross-platform. Good point though that audio stuff requires real-time priority, but I was talking from a Windows 7 viewpoint where these processes you specify don't get real-time priority. Windows has something called the Multimedia Class Scheduler for these kind of processes though... –  Tom Wijsman Dec 4 '11 at 13:30
    
What is jackd, then, if not a sound server? (From what I understand so far, both PA and JACK work the same way in that they provide both a sound server and a library/kit to access it...) –  grawity Dec 4 '11 at 13:39
    
That doesn't make the kit suddenly become a server. We're talking about processes here, not threads... –  Tom Wijsman Dec 4 '11 at 13:42
1  
Other examples of real-time apps are medical apps and directly controlled robotics. Things where 10µs is the difference between correct operation and failure (where failure may involve some robot driving off a cliff or a patient being exposed to too much radiation). –  ligos Dec 7 '11 at 2:31

This may seem unnecessary but when a process is started, parameters can be passed that set the process to run at various levels of priority. The Task Manager shows this as an optional setting because it is an option that can be set for the process by the software that initiated it's execution. Most software runs under a "Normal" level, but occasionally you may see a few that are running at a lower level by default. I've never seen software that starts in an above normal state.

It is also worth mentioning that there is a case when a process can run at the highest priority setting and it not seem to greatly affect your system performance. For instance, if a process is started and it is assigned to work on only 1 of, say, 8 CPU cores, setting the processes priority to "real time" would mean that it would consume one processor, leaving 7 to be used by the OS and any other software. In this case, real time execution could have almost no affect on the system but give a reasonable performance bump to the high priority process.

I would almost never recommend manually setting a process to run in "real time" from within the System Manager. This is because you are changing the execution settings for a process that may have been designed to operate under one specific execution state. Changing the execution priority can, in some cases, crash the application and if it's a data-write operation, possibly corrupt your data!

However, there are some cases where using a maximum execution priority setting for a process can be the right thing to do, but even then, such priority settings should be set by the controlling application and not by the end user through a system management dialog.

I, personally, would recommend NEVER changing a tasks priority unless you really don't care if it crashes and the task is COMPLETELY non-critical. If software documentation explicitly states that you can elevate the process to run at a faster speed in order to expedite a very large load of processor work, then that would be acceptable as well, however, I'd be a bit skeptical if a mechanism from within the application is not provided.

As a personal anecdote, there is only one process that I occasionally change manually-- software compression applications. I haven't had to unzip a massive file in a long time, but I have found that if I am in rush (ahem being impatient) I can crank up the process priority and get a moderate bump in performance. Since these applications start a work task, and then close when they are finished, I don't have to worry about unsetting my processor settings because when the application is finished extracting the data, it will stop on it's own. This is the only time that I have found it personally useful to control the processor speed through system management.

share|improve this answer
1  
As a programmer I can't possibly think of a situation where giving a program more resources would crash it –  TheLQ Dec 5 '11 at 17:39
    
As a programmer, yes, but setting a process to run at a specific level can cause issue, especially if the software was written (possibly even poorly) to run concurrently with other processes. My suggestions come from both experience and with an understanding that not all users are developers. Setting priorities of processes that are running, that you have not developed can certainly elicit unexpected behavior. I don't want to scare any one, however, I also don't want to encourage other users to mess with process settings if there is a chance that their changes could be damaging. –  RLH Dec 6 '11 at 14:13

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.