[General Topics] Menneisyys:
Anyone having read my well-known articles on measuring the power consumption of Windows Mobile devices (see for example this Pocket PC & Smartphone Magazine article) knows the really excellent, free tool acbPowerMeter perfectly suited for the job.

Now, the same developer, acbPocketSoft, has (finally) released a vastly updated & enhanced version of the application, renamed to acbTaskMan.

The homepage of the application is here and is highly recommended for a quick read so that you'll see what it's all about. In below, I explain why I recommend this application that much and how it compares to the alternates.

acbTaskMan has a free version (not that the commercial one would be THAT expensive - actually, for $7.95 only, it's definitely cheaper than most of the comparable, but, charting-wise, still inferior alternatives), which is still pretty usable - unless you need quantitive CPU usage results and simple, non-app-specific chart is sufficient for you.

I’ve been using this utility (as a beta) for almost a year and have been absolutely pleased. It helped me hundreds of times in examining the CPU, memory or power usage of a particular application (actually, almost all my CPU usage reports in the last year have been based on the results measured with acbTaskMan – except for some where also the current CPU speed needed to be measured too – for example, in Everything you will ever need to know about the power consumption of Pocket PC audio players, where I also needed to turn to an alternative utility, Dogfood's RegTweak). All I can say it’s perfect and highly recommended, should you really want to maximize your battery life and, for some reason, I haven’t elaborated on the CPU usage of the application you’d like to test.

I also highly recommend the application to ALL software developers. Many applications / games are released with exceptionally high CPU usage, meaning greatly reduced battery life. Many of these games / applications are found by me (when I publish a review, I also check the CPU usage to find if a particular app is misbehaving in this respect.) By getting and using this monitor, you can be absolutely sure you can iron out the CPU usage-related bugs (for example, busy waiting causing 100% CPU usage) before you release it.

Why do I recommend it that much? In what way is it better than the alternatives? It’s pretty simple: it’s perfectly suited for the task, most importantly because it has sophisticated history graphing capabilities, as opposed to the alternates. Let me elaborate on this a bit more.

Say you want to measure the CPU usage of a game or an MP3 player. This situation is very common with Windows Mobile applications as you can be never sure what third-party game or application will chew through your battery if you (as far as multimedia players are concerned) enable the scrolling of the song title or the Real-Time Spectrum Analyzer (both of them are pretty CPU-hungry in general).

If the tested app is clever enough NOT to run the code in charge of doing these, you can’t use the most traditional task managers (for example, TekSoft’s SmartBar as of version 1.2.010 or FdcSoft’s Task Manager - two apps that are, otherwise, excellent) to benchmark the CPU usage of these applications because you only see the CPU usage numbers when the benchmark app’s window is maximized and not that of the just-checked app (and, in addition, the CPU usage meter of SmartBar doesn’t work on some devices; for example, the HTC Universal). (Example screenshot here. Note that Task Manager also has a tendency NOT to display the normal CPU usage of a given app. In the screenshot above, WMPlayer.exe has 0.57% CPU usage (at 520 MHz), which, of course, isn’t valid. Not even the maximal 3% it reports – it’s way bigger.)

Dogfood's RegTweak is better in this respect, but, as it only uses a single bar at the bottom (no numeric and/or process-specific results; see screenshot here and here – note the two bars at the bottom; one of them showing the current CPU speed and the other showing the load) and has no filtering capabilities, is still far inferior to acbTaskMan. Also, the bars won’t be visible in most full-screen apps like games – that is, you won’t be able to check the CPU usage of a game.

SuperTasks 2.0, the, in addition to Pocket Hack Master, only application that offers history and background graphing capabilities, doesn’t let for charting a given process only. This may result in some problems when you, for example, run two CPU-intensive tasks in the foreground and would like to separate the CPU usage of the two from each other. This is why, for example, the thread starter post in this thread had to do twice as many tests to reliably get the CPU usage of a given task. Unfortunately, its chart drawing capabilities is far inferior to that of Pocket Hack Master (let alone acbTaskMan) – the chart only spans about a minute (as opposed to the about 5 minutes of Pocket Hack Master) and has a bit higher (5-7% at 520 MHz) CPU usage when run in background mode: while, in that case, Pocket Hack Master only uses some 1-2% CPU time (at 520 MHz). Of course (as with Pocket Hack Master) you can’t chart just a given app and it has no file output capabilities. The only advantage is its taskbar icon, which shows the batter and the CPU load and can also be used to close / switch to apps. (However, if you do need monitoring, use RegTweak instead – it’s free and uses slightly less resources.)

Here’s a screenshot of the Process monitor and here’s that of Tasks. Note that it, in the last screenshot, it listed abcTaskMan as consuming 15% of CPU time, and, in the next second, it listed it as a 0% task; this means it’s pretty unreliable and much less dependable than abcTaskMan because the results will change all the time and you need to do the averaging yourself.

PHM Task Manager 0.1, while it’s free and running OK even under WM6, only shows the number of internal threads and the CPU time, the latter not really showing the CPU usage of a given app.

Wizcode LLC’s (ex-Anton Tomov’s) well-known Pocket Hack Master, as of version v4.14.033, has a CPU charter module even being able to run in the background (and, as opposed to acbTaskMan, also using high-resolution on VGA devices); it, however, 1. can’t chart a given process only 2. you can’t set the timescale (as opposed to acbTaskMan), which means it’s impossible to make long-time measurements (for example, filesys.exe compaction measurements spanning 12-24 hours) with it – again, unlike with acbTaskMan. The latter is really a pain in the back for any long-time measurements; with short-time ones, not so. Incidentally, as can also be seen in this screenshot, its CPU usage is pretty close to 0 (some 1-2%) when run in background (definitely better than that of acbTaskMan, comparing the two apps using the same refresh rate); on the other hand, when run in the foreground, it’s around 50% (run at 520 MHz). It can’t display task-level CPU usage figures at all as can be seen in here and here. Unfortunately, the debug logging facilities only allow for logging of app-related information; that is, no CPU usage data can be logged.

emProcess by the infamous(?) emCon: it was last updated over 4 years ago (01/2003). The trial doesn’t support process / memory debugging and it seems it doesn’t support any kind of charting.