Friday, April 08, 2005

Solving a laptop performance problem

My main vice these days is Warcraft 3. (Not WoW -- I don't have nearly enough time for that.) It's been frustrating, though, since it could get extremely choppy. Maybe 5 fps choppy. Dropping all the settings to lowest didn't help, which really puzzled me since although a GeForce fx Go5200 isn't the most powerful 3d card around by a long shot, a 2.8 GHz p4 should have been able to render this stuff in software. I didn't do anything about this at first but I got good enough at the game that I started losing games because of the choppiness. So a couple nights ago I went on a killing spree with Task Manager to see if it was a background task causing the problem. I didn't see any likely candidates, and sure enough, it didn't help. I did notice my Insprion 5160 runs rather hot, though, and I wondered if it could be underclocking the CPU and/or GPU to cool off. This program verified this theory: my cpu clock oscillated every few seconds between 2.8 and 1.8 GHz. Now, even the lowest setting of 1.8 GHz is plenty for wc3. Apparently Blizzard did something dumb (a friend who knows more about windows programming than I suggested it might actually be a win32 API problem) and sets its timer based on the maximum clockspeed, and doesn't adjust when it drops down. Turning speedstep off in my BIOS, which sets the cpu clock to its lowest setting permanently, fixed my warcraft problem. I'd be pretty ticked if I still had to run, say, Eclipse, but 1.8 GHz is also plenty for Emacs. So I'm happy for now.

2 comments:

Anonymous said...

SpeedswitchXP at the web page you refer to gives some control over speedstep modes at runtime. Maybe it will do instead of disabling speedstep totally?

If enabled it will also draw a nice diagram of processor speed vs load.

Jonathan Ellis said...

I'm happy with 1.8 GHz... it's much cooler this way. I can actually keep it on my lap most of the time. :)

I think I saved $100 getting the p4 model instead of a Pentium M. Wasn't worth it.