poor CPU performance?

Report bugs, bug fixes and workarounds here.
Topic author
Theliel
Posts: 6
Joined: 19.08.2006
With us: 18 years 3 months

poor CPU performance?

Post #1by Theliel » 19.08.2006, 20:07

hi all!

I'm note that when I run Celestia 1.4.1 CPU always are load minimun about 50%:

I open celestia, wait to load... and once celestia are open and runnig and nothing more, CPU load are about 50%. If i do anything in celestia, CPU load up to 100%. When task finished (for example go to moon) cpu down to 50% again. Maybe problems is HT?

My sistem:

CPU: Intel P4 650 (with HT enabled)
OS: Windows XP x64
RAM: 2x 1024Mb DDR2
HD: 2x 200Gb SATA (RAID 0)
Video: Nvidia 7600GT 256MB
Celestia 1.4.1

i think aren't normal that only with celestia open CPU load are 50%.

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #2by selden » 20.08.2006, 11:20

Celestia has to recalculate the positions and visibility of everything you see in its window every time your system refreshes its screen. If you have set the screen refresh rate to be 75Hz, then Celestia has to recalculate everything in 1/75 of a second. If it finishes recalculating everything before the screen is refreshed, then it will use less than 100% of one CPU. If it takes longer, then it will use 100% of the CPU and Celestia will redraw its window more slowly than the screen's refresh rate.

In a dual processor or dual-core system or in a hyperthreaded system simulating a dual processor system, 100% of one of the CPUs is shown as 50% of total system usage.

Type a ` (=backslanted apostrophe =accent grave) to enable Celestia's fps (frames per second) display in the lower left corner. If you have a keyboard that supports diacritical marks, then you may need to type a [space] after the `

What refresh rates are you getting?

p.s.
I have updated the "preliminary user's faq" that's near the top of the Users Forum. See Q/A#29 for ways to reduce Celestia's CPU usage.
Selden

Topic author
Theliel
Posts: 6
Joined: 19.08.2006
With us: 18 years 3 months

Post #3by Theliel » 20.08.2006, 14:22

yes, but i don't understand. Forcing refresh rate to 60Hz or 75Hz (TFT) don't give me less CPU use.

For refresh rate 60Hz I have very stable 60 FPS and CPU load 51-54. For 75Hz I have a variable FPS 70-74.5 and CPU load are same, about 52-56.

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #4by selden » 20.08.2006, 15:21

In order to reduce Celestia's CPU use you must ask it to do less. Reducing the frame rate is only one of the things to try.
Selden

cdlvcdlv
Posts: 2
Joined: 25.08.2006
With us: 18 years 2 months

Post #5by cdlvcdlv » 26.08.2006, 00:20

selden wrote:Celestia has to recalculate the positions and visibility of everything you see in its window every time your system refreshes its screen.
(...)
- reduce the screen refresh rate
Really has to do it? It's important to have a high refreshing rate in your screen in order to reduce eye strain (it's the main cause of that condition) but, on the other hand, you usually watch TV at 30 or 25 fps and movies at 24 fps (even less if it is a cartoon) without noticing independent frames.

I have my monitor configured at 85 Hz (P4 3.2 GHz) and it takes 100% CPU to draw variable fps from 40 to 85 in Celestia. The animation is always fluent, so the CPU is helplessly calculating useless pictures, and the CPU fan begins to work trying to cool it.

selden wrote:You can make Celestia use less of the CPU if you ask it to draw less.

With all due respect, I think actually that applies to you -- it would be great that Celestia would have a 'max fps' option somewhere. :wink:

phoenix
Posts: 214
Joined: 18.06.2002
With us: 22 years 5 months
Location: Germany - Berlin

Post #6by phoenix » 26.08.2006, 00:34

framerate and screen-refreshrate are 2 totally different things... don't mix them up.

and no you are not watching tv at 25 Hz... regardless of the input-video your screen refreshes more often... presumably ~60 Hz or more depeding on your tv

I also have never seen celestias framerate above my current tft-refresh-rate (72 Hz) but that might just be a weird coincidence ;)
most recent celestia win32-SVN-build - use at your own risk (copy over existing 1.5.1 release)

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #7by selden » 26.08.2006, 12:19

Celestia recalculates the visibility and positions of all of the objects within the field of view each time it generates a new image to be displayed. That's the way it's designed. As a result, you can change the time or location and it'll immediately show you that new viewpoint in its next frame.

If Celestia completes its calculations before your computer is ready to display a new frame, it'll stop calculating and the CPU usage will be less than 100%. Or at least, that's what's supposed to happen. That's what it does on my system, which has the Nvidia option "Vertical sync: application controlled" enabled.

If the "Vertical sync" feature is disabled, Celestia probably will start calculating the next frame without waiting. Many gamers disable vertical sync because it gives a slightly higher fps and thus more "fluid" motion of on-screen objects. Disabling vertical sync has the disadvantage that it causes the visible image to "tear". There is a discontunity in the image shown on the screen where the computer starts drawing the lower part of the new frame while the top part of the old frame is still visible.

I usually see 100% CPU usage on my system while I'm running Celestia. Windows Task Manager shows slightly more than 50% because I have hyperthreading enabled, so XP thinks I have two CPUs, and there are other programs running in the background.

When I remove all Addons, disable antialiasing, and turn off *all* of Celestia's Render/ View Options except for Planets and Stars, with Celestia's window occupying the entire screen (except for the task bar), I get 60fps and Task Manager claims that CPU usage is only 15%. This is after a normal startup, with the Earth occupying most of Celestia's window.

Config:
1GB, 3.4MHz P4-550, WinXP Pro
128MB GF6600GT 16xPCI-e, ForceWare v84.21
1600x1200, 60Hz
Celestia v1.4.1 final & from CVS
Selden

Johaen
Posts: 341
Joined: 14.01.2006
With us: 18 years 10 months
Location: IL, USA

Post #8by Johaen » 26.08.2006, 12:43

I decided to test this on my machine for another POV. People might remember me complaining a while ago about me not finding any way to turn V-sync on. Eventually I found an option in my ATI Catalyst Center called "Wait for vertical refresh", which seems to have the desired effect. I turned off all of Celestia's render and view options (including stars and planets, 'cause my PC's a POS :wink: ). With "Wait for V-Refresh" off, I get 150+ fps. When I turn it on, I get 57-60 fps. Note that it's not stuck right at 60 fps. It does vary, for seemingly no reason. What's different between you and me Selden is that I have 100% CPU usage in both cases. Maybe this is because I'm using an ATI card and you're using an NVidia? Stats are in the sig.
AMD Athlon X2 4400+; 2GB OCZ Platinum RAM; 320GB SATA HDD; NVidia EVGA GeForce 7900GT KO, PCI-e, 512MB, ForceWare ver. 163.71; Razer Barracuda AC-1 7.1 Gaming Soundcard; Abit AN8 32X motherboard; 600 watt Kingwin Mach1 PSU; Windows XP Media Center SP2;

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #9by selden » 26.08.2006, 13:03

Johaen,

My impression is that many of the OpenGL features of the Radeon 9200 series of cards are implemented in software rather than hardware, so a better card, either ATI or Nvidia, probably would help.
Selden

Johaen
Posts: 341
Joined: 14.01.2006
With us: 18 years 10 months
Location: IL, USA

Post #10by Johaen » 26.08.2006, 13:32

selden wrote:Johaen,

My impression is that many of the OpenGL features of the Radeon 9200 series of cards are implemented in software rather than hardware, so a better card, either ATI or Nvidia, probably would help.


Yeah, I know. Unfortunatly my mobo only has PCI slots :(.

But, I'm currently building a new PC from scratch, that will be waaaaaay better than my current one:

Black NZXT Apollo Case; Abit AN8 32X mobo; 600 watt Kingwin Mach1 PSU; AMD Athlon 64 X2 4400+; 2 GB of OCZ Platinum RAM; 320 GB HDD; NVidia 7900 GT, PCI-e, 512 MB;

I'll be buying the last parts for it with my next paycheck. I can't wait.

Edit: Added a few items for my amusement and for other's curiosity :wink:
Last edited by Johaen on 26.08.2006, 14:16, edited 3 times in total.
AMD Athlon X2 4400+; 2GB OCZ Platinum RAM; 320GB SATA HDD; NVidia EVGA GeForce 7900GT KO, PCI-e, 512MB, ForceWare ver. 163.71; Razer Barracuda AC-1 7.1 Gaming Soundcard; Abit AN8 32X motherboard; 600 watt Kingwin Mach1 PSU; Windows XP Media Center SP2;

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #11by selden » 26.08.2006, 13:49

That looks like a great system. Best of luck!
Selden

cdlvcdlv
Posts: 2
Joined: 25.08.2006
With us: 18 years 2 months

Post #12by cdlvcdlv » 26.08.2006, 17:54

phoenix wrote:framerate and screen-refreshrate are 2 totally different things... don't mix them up.
Exactly, that's what I tried to explain...
selden wrote:Celestia recalculates the visibility and positions of all of the objects within the field of view each time it generates a new image to be displayed. That's the way it's designed.
... and therefore, the design of Celestia is too perfectionist, resulting in unnecesary CPU usage; because nobody needs 85, 75 or even 60 fps to perceive motion (i.e. no independent frames) just because the screen that is watching is configured to refresh 85, 75 or 60 times a second. (By the way, less refresh rate than 72 is unhealthy because of flickering and the higher the rate, the less eye strainer the screen.)

The minumum fps for not perceiving frames but motion is 12, 24 is used to shoot cinema, TV is interlaced (50/~60 fields=25/~30 complete frames/s). If you have a 100/120 Hz TV you can watch programs at that rate, but this kind of TVs don't need 100 fps broadcasting: is compatible and good for your eyes. That's what I mean Celestia could do -- to calculate just necessary frames. This way you could take equal results with lower CPU, or best with the same, or watch more objects or add-ons, etc. More people would have a better experience or even use this great educational (and entertaining, the best combination) program.

I use Celestia 1.4.1 without add-ons in a 1GB, 3.2MHz P4, Win2K Pro SP4-DX9.0c & last patches, 256MB GF FX5200 AGP 8X & ForceWare 91.31 (Vertical Sync Application-controlled), 1024x768 85Hz. And my CPU is always at 100% (except when I browse the menus).

Topic author
Theliel
Posts: 6
Joined: 19.08.2006
With us: 18 years 3 months

Post #13by Theliel » 26.08.2006, 18:16

is curious.

If I only have in screen a planet or moon, I have a 50-60% CPU load (For example, now only have in entire screen the moon). Now, IF I have only stars CPU usage is only 15-20%. If CPU load are because celestia recalculate posstions... only for view one planet i have a great lose performance?

anyway cdlvcdlv, 12FPS for motion? 12FPS are very very poor. the human eye is capable about 25-30FPS. I think that aren't bad idea force celestia FPS to refresh rate, delete some problems.

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #14by selden » 26.08.2006, 18:51

Theliel,

It uses CPU time when looking at a planet because Celestia has to determine what objects are obscured by the planet -- stars, nebulae and galaxies, for example. If you turn off the stars while viewing the Earth, Celestia's CPU requirements will go down because then there are no stars for the Earth to obscure. Also, if you move away from the planet, so that its image is smaller and fewer stars are obscured, CPU usage will go down.

cdlvcdlv,

Different people have different optical abilities. For example, I'm one of those who cannot see any flicker at 60Hz, although apparently many people can.

Hopefully Celestia will include a frame rate throttle someday, but I suspect it won't happen soon.
Selden

Topic author
Theliel
Posts: 6
Joined: 19.08.2006
With us: 18 years 3 months

Post #15by Theliel » 26.08.2006, 21:51

Sorry Selden, view this screen:

Image

All viewers options are disable, stars, galaxies... change renderer, change to low texture resolutions... but CPU load dont change nothing. My earth shouldn't obscured nothing!! same for moon... enable or disable star and other options, don't change my CPU load :(


For star and other objets, efects are very very differents:

Image

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #16by selden » 26.08.2006, 23:11

My timings were all made with Celestia's default textures and models and with antialiasing disabled. Your screenshot shows a high resolution surface texture. My guess is that to make it look that good you also have antialiasing turned on. I suspect those factors may be contributing to the high apparent CPU load.
Selden

guest jo
Posts: 126
Joined: 01.04.2004
With us: 20 years 7 months

Post #17by guest jo » 26.08.2006, 23:27

cdlvcdlv wrote: This way you could take equal results with lower CPU, or best with the same, or watch more objects or add-ons, etc. More people would have a better experience or even use this great educational (and entertaining, the best combination) program.


This is simply wrong. If you want to use as many addons as possible you will get to the point where fps goes below 15-20 .
Then it starts to get laggy and no fps-frame what else limiter helps you at that point to get more performance and fun out of celestia because at that point either your cpu or your gpu is at the limit.

Of course the vsync=on may help to save cpu-power( it will if your fps without adds is over monitor-refresh-rate) and do applications in the background but I wouldn??t have too many apps open while using celestia...
_______________________________________
Celestia 1.6.0 @1600x1200x32; GF8800Ultra; Q6600@3,2GHz;WinXPx64;

Topic author
Theliel
Posts: 6
Joined: 19.08.2006
With us: 18 years 3 months

Post #18by Theliel » 26.08.2006, 23:58

selden wrote:My timings were all made with Celestia's default textures and models and with antialiasing disabled. Your screenshot shows a high resolution surface texture. My guess is that to make it look that good you also have antialiasing turned on. I suspect those factors may be contributing to the high apparent CPU load.


No.

I try now with fresh instalations, no addons, no AA, texture set to low... same.

Image

guest jo
Posts: 126
Joined: 01.04.2004
With us: 20 years 7 months

Post #19by guest jo » 27.08.2006, 00:00

BTW my PC is a good example for a system where the cpu is the bottleneck:
The framerate without AA and AF is the same like 4xAA and 16xAF.
With my tons of addons I only come over 85 fps if I leave the sun-surrounding (2 mill-star database addon) with vsync=on I have instantly around 80% CPU-load.
_______________________________________
Celestia 1.6.0 @1600x1200x32; GF8800Ultra; Q6600@3,2GHz;WinXPx64;

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #20by selden » 27.08.2006, 01:00

Theliel,

You may be glad(?) to know that when I look at a view similar to yours, with the Earth larger than the viewport, I also get maximal CPU usage.

If you reduce the amount of screen area occupied by the Earth, CPU usage should fall off. On my system, when the apparent diameter of the Earth is less than about 48 degrees. with a screen fov of 40 degrees, I see about 38% usage, and it stays at that % even when there's nothing in view.

Interesting.

(But I really can't get too excited about it, so long as the fps stays over 20 for the things I want to look at :) )
Selden


Return to “Bugs”