View Full Version : Program only uses 50% of CPU cycles
BlackHawke
December 27th 03, 03:21 PM
Hello!
I am running a server program on windows XP. The computer is capable of
having dual CPU's, but only has one at the moment.
When I run this Java based server, the CPU usage for the app goes up to 50%,
while the system idle remains at roughly 48%.
I suspected immediately that the OS simply believes that there are two CPU's
of the same speed (and indeed, the task manager shows 2 cpu's though there
is only one)... However the responsiveness of the OS indicates to me that
indeed 48% of the resources are in idle. Even when giving the Java app the
highest priority, the os remains perfectly responsive. When launching other
apps, they get significant portions, if not all of the system idle speed,
bringing the total CPU usage to 100% (the java app is still at 48-50%)...
All of this, especially the perfect responsiveness of the OS to commands
despite the high "Java" priority, suggest to me that the numbers are
accurate.
I need the java program to have full use of the CPU... Why is it only using
50%, and how can I change this?
Thank you for your time and attention.
Nick Soutter
Lamar Games
www.lamargames.net
Robert Moir
December 27th 03, 03:21 PM
BlackHawke wrote:
> Hello!
>
> I am running a server program on windows XP. The computer is capable
> of having dual CPU's, but only has one at the moment.
>
> When I run this Java based server, the CPU usage for the app goes up
> to 50%, while the system idle remains at roughly 48%.
>
> I suspected immediately that the OS simply believes that there are
> two CPU's of the same speed (and indeed, the task manager shows 2
> cpu's though there is only one)...
Sounds like you've enabled hyper threading. Disable it.
Bob Willard
December 27th 03, 03:21 PM
BlackHawke wrote:
> Hello!
>
> I am running a server program on windows XP. The computer is capable of
> having dual CPU's, but only has one at the moment.
>
> When I run this Java based server, the CPU usage for the app goes up to 50%,
> while the system idle remains at roughly 48%.
>
> I suspected immediately that the OS simply believes that there are two CPU's
> of the same speed (and indeed, the task manager shows 2 cpu's though there
> is only one)... However the responsiveness of the OS indicates to me that
> indeed 48% of the resources are in idle. Even when giving the Java app the
> highest priority, the os remains perfectly responsive. When launching other
> apps, they get significant portions, if not all of the system idle speed,
> bringing the total CPU usage to 100% (the java app is still at 48-50%)...
> All of this, especially the perfect responsiveness of the OS to commands
> despite the high "Java" priority, suggest to me that the numbers are
> accurate.
>
> I need the java program to have full use of the CPU... Why is it only using
> 50%, and how can I change this?
>
> Thank you for your time and attention.
> Nick Soutter
> Lamar Games
> www.lamargames.net
>
>
Sounds like you have a P4 with HT, and your app is not taking
advantage of HT. You'll need to recode your app.
Turning off HT will let your app use 100% of what's left, but
that may turn out to be no more throughput than what you already
had with HT on.
--
Cheers, Bob
Joshua Smith [MSFT]
December 27th 03, 03:22 PM
Basically you will only hit 100% if you are running either an app that is
SMP aware and able to take advantage of two processors, or running more than
one instance of an app that would normally use 100% of a single processor.
You effectivly have two processors and the CPU usage is the percentage of
use for both. Turning off hyperthreading isn't going to gain you anything.
You are better off leaving hyperthreading on because the system should
effectivly run your app on one processor and everything else on the other
until both are tasked to capacity (100%).
--
Joshua Smith
DirectInput Test Lab
-----
This posting is provided "AS IS" with no warranties, and confers no rights
"BlackHawke" > wrote in message
...
> Hello!
>
> I am running a server program on windows XP. The computer is capable of
> having dual CPU's, but only has one at the moment.
>
> When I run this Java based server, the CPU usage for the app goes up to
50%,
> while the system idle remains at roughly 48%.
>
> I suspected immediately that the OS simply believes that there are two
CPU's
> of the same speed (and indeed, the task manager shows 2 cpu's though there
> is only one)... However the responsiveness of the OS indicates to me that
> indeed 48% of the resources are in idle. Even when giving the Java app the
> highest priority, the os remains perfectly responsive. When launching
other
> apps, they get significant portions, if not all of the system idle speed,
> bringing the total CPU usage to 100% (the java app is still at 48-50%)...
> All of this, especially the perfect responsiveness of the OS to commands
> despite the high "Java" priority, suggest to me that the numbers are
> accurate.
>
> I need the java program to have full use of the CPU... Why is it only
using
> 50%, and how can I change this?
>
> Thank you for your time and attention.
> Nick Soutter
> Lamar Games
> www.lamargames.net
>
>
vBulletin® v3.6.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.