|distributed.net Faq-O-Matic : the Client software : The client uses 100% cpu time on my computer!|
|No, it's not.
Unless configured otherwise, the client only uses *idle* time (i.e. the cpu time that would go 'wasted' because no other task or application wanted it).
When you are watching CPU utilization (such as with Task Manager or "top"), your computer might not be running anything else that needs to consume a significant amount of CPU time, and consequently you see the dnetc client using 100%.
If however you were to have another task running in the background that was using CPU time, you'd see the client automatically use that much less.
|The way this works is by relying on the "process priority" levels provided by your operating system (OS). Your OS is constantly switching between programs at a fixed interval, called a "time slice", which is usually less than 100ms.
Each time slice, the OS temporarily stops whatever program is running and checks to see if there is any other program that needs to use the CPU. If any other program needs to run, the OS allows it to do so for a time slice. It then repeats the cycle, checking with all other programs that are currently running.
There is also a "priority" for every process in the system that is honored by the OS that allows it to give the opportunity to run more frequently to more important programs. Having a higher priority will mean that a program will have less delay between when it needs a time slice and when it actually gets to have a time slice. Consequently, having a lower priority will mean that a program must wait for higher priority programs to have had their chance to use time slices already.
The dnetc client runs at the "idle" priority, which is the lowest priority offered by the operating system, and will be lower than any other normal priority application. This ensures that all other running programs will have plenty of opportunities (tens to hundreds of chances per second) to have used your CPU. No other programs must need to have fully used it, before the OS will allow the dnetc client to run for a time slice.
|Additionally, if you are concerned that the dnetc client may interfere with the performance of your other programs, there is a configuration option called "Pause when running" that can be enabled. It allows you to specify a list of program names that will cause dnetc to stop using CPU whenever any of those other programs are running. As soon as all of those other programs are exited, then dnetc will continue running (still at idle priority).
Normally, the "Pause when running" should not be needed since the OS priority levels handles scheduling perfectly well, but a few users have extra sensitive concerns and have found this option useful.
© Copyright distributed.net 1997-2013 - All rights reserved