Idling and CPU utilization and performance
|Opened on:||Wednesday, December 17, 2008 - 11:20|
|Last modified:||Sunday, August 21, 2011 - 22:15|
I wanted to report this earlier, but I was rather folding, instead of doing a thorough test. But now, as the app is useless for folding, I spent some time to share my finding with you guys.
The Foldit app uses much more CPU then that I could justify.
AMD Athlon Dual core 4400+ (2.3 GHz), 2 GB memory, Vista Ultimate SP1.
Waiting for user to click "Start": 12-15%
Waiting for login: 12-15%
Selecting puzzle type: 12-15%
Selecting puzzle: 17-23%
These were all waiting for user interaction, no animation.
After loading the puzzle, waiting for user input to decide if they want to open shared solves: 39-45%
The molecule is in front of me. Side chains are not displayed. Animations: Hydrogen bonds and problem locations: 47-51%. One CPU core is around 90%
Same molecule, all animations turned off: 40-45%. One CPU core dropped back to around 80%
Same molecule global wiggled: 83-91% (It seems the previously used core does the visualization/waving of the backbone, the other one does the calculations)
After nudging the molecule and global wiggling, while it is still far from the stable state, the "Calculating" core drops back to its half power, and when it reaches the stable point it ramps up to 90-some percent.
When the app is minimized the Visualization core is still using 60% it that core's CPU. (30 totally)
When side chains are displayed but there is no calculation, app is minimized the Visualization core still running 95%
- The app should use minimum CPU while waiting for user input. This is a very minimum requirement, particularly when there is no animation on the screen.
- The graphical elements could be optionally turned off to increase calculation performance (speed in other terms)
- A minimized app, when does not do any calculation must relinquish control to the operating system scheduler immediately, not using any CPU time, and be a good silent guy until it is brought up. When I minimize the app and want to use it for something else, I want my active app to use the CPU, not a minimized, supposedly idle app.
- When global wiggle (calculations) are done, the possible maximum available CPU should be used, when the app is in foreground, and about 75% when in background. This 75% should be adjustable on a per user level.
If you don't mind, I consider this a bug. It is not normal how the CPU is used. :)
Waiting for the response on this.