Menneisyys
01-08-2005, 09:08 PM
It has always bugged me how many CPU cycles my resident apps / Today plug-ins "eat", mainly because the latter seemingly make the Today screen very slow and sluggish. This makes many people think they slow all their other applications too, even when the Today screen isn't visible. This is why I've made some benchmarks.
First, I've tried to test the programs using Spb Benchmark – running a CPU check before isntalling/starting aprogram and after that. However, it resulted in benchmark results that could not be taken seriously. For example, everybody knows installing any resident application/ Today plug-in decreases the performance. Spb suggested exactly the opposite. For example, when I benchmarked the "clean" Fujitsu-Siemens Pocket Loox 720, I've got the CPU index 941.87.
- when I started WZC (more on these abbreviations later), I got 1234.55 as if the PPC had become much faster.
- When I installed and activated the TO SA driver, I got 952.81 (as opposed to 941.87)
- when I installed and activated MultiIE, I got the result 1337.73.
The most significant "noise" was in the JPEG decompression results (even differences of 50-60%!), but other test results (MFLOPS etc.) have also differed in 4-5%.
All in all, because Spb Benchmark gave me wildly varying and hard-to-take-seriously results, I've chosen to use a much more reliable benchmarking I've been using for two years: searching in very large Mobipocket documents, which is a very CPU-intensive (and, to a certain degree, I/O-intensive) task.
I've put a very large, 101 Mbyte, self-created text-only Mobipocket Reader compressed PRC document on my 40* Ridata CF card. This size equals to 223 Mbytes of input HTML before compression (actually, the full textual database of AVI Forum, as of 03/2003.). I've searched for the word 'testinen' in the text (I've chosen a word that does not exist in the test so that Mobi does search for the end of the text).
I've used a source file this big in order to be able to measure very small differences in the searching time. This test, as opposed to that of the Spb Benchmark, resulted in what I've been waiting for: upon installing resident programs / starting background tasks / putting thousands of files in the main memory, the searching took slightly longer.
Mobipcoket 4.8 was able to search the entire PRC file in 6 minutes and 18 seconds on a totally clean, freshly hard-reset machine.
Incidentally, exactly the same test, under the same conditions, ran for 9:52 on an iPAQ 2210. Astonishing result if you take into account that the 2210 is a snappy, fast device and there's only 120 MHz difference between the two machines. The difference in the clock speed is only 33%, while in the raw CPU+I/O power, 56%! The difference is not that visible in real life, though, especially when browsing with File Explorer. Then, the PL720 (or, for that matter, any VGA machine) seems to be much slower than any decent WM2003 XScale PXA-255 QVGA device.
Now, for the numerical results.
Spb Pocket Plus 2.2 ( http://www.spbsoftwarehouse.com/products/pocketplus/?en ) : a highly popular and configurable Today plug-in, with (compared to the latest versions of MultiIE / PIEPlus / ftxpBrowser) an excellent PIE plug-in. Offers almost everything you could think of.
It caused almost no performance hit. Everything I could measure was probably a +1 second searching time, but I'm not sure about that.
Spb GPRS Monitor 2.2.0 ( http://www.spbsoftwarehouse.com/products/gprsmonitor/?en ), a very handy tool to monitor GPRS connections. It, because it actively polls the connection (even when the connection isn't active), does cause some slowdown in all programs. However, this is not very significant, some 1.3%. (+4 seconds in the test.)
OzBTWF 0.67 ( http://207.153.195.134/ozbt.html ): another very handy tool because it switches on/off Wi-Fi/BT automatically, depending on the actve window's caption. Older versions did have slowdown problems; this is why I was especially interested in what the new version delivers. Fortunately, the latest version only increased the search time by +2 sec. This means you don't have to fear of OzBTWF because it only slows down your PPC by some 0.7%.
WM2003(SE)'s built-in Wireless Zero Configuration (WZC) . It, because constantly polls the network to find available partners to connect to, can also cause some slowdown. I wanted to find out how much it is, and also wanted to know whether we can win any CPU cycles by disabling WZC entirely. The results were astonishing: WZC didn't introduce any additional slowdown. Enabling Wi-Fi itself increased the search time by 5 sec, though.
ThinkOutside StowAway BT keyboard (hx4700) 4.1 driver: An add-on keyboard. Didn't cause any additional slowdown.
Spb Imageer 1.2's memory card-insertion event listener. I wanted to find out whether it causes any kind of slowdown. Fortunately, the benchmark results were very good: registering to events like the card-insertion doesn't cause any kind of slowdown.
Slowdowns depending on the number of user files in the main memory
WinCE has always very sensitive to the number of files in the Object Store. The more files in the main memory, the more apparent slowdown. This is, unfortunately, is apparent with WM2003SE as well.
I synchronized 2865 mails (28.6Mbytes) with 372 (1774 kbytes) attachments onto my (otherwise clean) PPC. Because Pocket Inbox (Messaging in WM2003SE's parlance) stores synchronized e-mails in the main memory in a way that is definitely the worst (no compression at all and one file is used for each mail), this meant 3237 new files in the main memory. Please note that it's the number of additional files in the main memory that counts and not (only) the free memory. I still had some 80-90 Mbytes free when counducting the Messaging test – still, the PDA was much harder to use in everyday situations because of its sluggish response.
This caused a 40-second hit in the searching. (I've double-checked this.) The "normal" operation of the PDA (starting programs etc.), as has already been stated, became much more sluggish.
This means you should always try to put
1, all your files/programs in storage cards
2, use registry hacks to put PIE cache (=a lot of small files) there too
3, use e.g. WebIS Mail to store all your locally downloaded (that is, POP3/IMAP) messages on storage cards
4, try to avoid using ActiveSync's Inbox synchronization (because it can only synchronize with the main memory)
Opinions/comments are welcome!
First, I've tried to test the programs using Spb Benchmark – running a CPU check before isntalling/starting aprogram and after that. However, it resulted in benchmark results that could not be taken seriously. For example, everybody knows installing any resident application/ Today plug-in decreases the performance. Spb suggested exactly the opposite. For example, when I benchmarked the "clean" Fujitsu-Siemens Pocket Loox 720, I've got the CPU index 941.87.
- when I started WZC (more on these abbreviations later), I got 1234.55 as if the PPC had become much faster.
- When I installed and activated the TO SA driver, I got 952.81 (as opposed to 941.87)
- when I installed and activated MultiIE, I got the result 1337.73.
The most significant "noise" was in the JPEG decompression results (even differences of 50-60%!), but other test results (MFLOPS etc.) have also differed in 4-5%.
All in all, because Spb Benchmark gave me wildly varying and hard-to-take-seriously results, I've chosen to use a much more reliable benchmarking I've been using for two years: searching in very large Mobipocket documents, which is a very CPU-intensive (and, to a certain degree, I/O-intensive) task.
I've put a very large, 101 Mbyte, self-created text-only Mobipocket Reader compressed PRC document on my 40* Ridata CF card. This size equals to 223 Mbytes of input HTML before compression (actually, the full textual database of AVI Forum, as of 03/2003.). I've searched for the word 'testinen' in the text (I've chosen a word that does not exist in the test so that Mobi does search for the end of the text).
I've used a source file this big in order to be able to measure very small differences in the searching time. This test, as opposed to that of the Spb Benchmark, resulted in what I've been waiting for: upon installing resident programs / starting background tasks / putting thousands of files in the main memory, the searching took slightly longer.
Mobipcoket 4.8 was able to search the entire PRC file in 6 minutes and 18 seconds on a totally clean, freshly hard-reset machine.
Incidentally, exactly the same test, under the same conditions, ran for 9:52 on an iPAQ 2210. Astonishing result if you take into account that the 2210 is a snappy, fast device and there's only 120 MHz difference between the two machines. The difference in the clock speed is only 33%, while in the raw CPU+I/O power, 56%! The difference is not that visible in real life, though, especially when browsing with File Explorer. Then, the PL720 (or, for that matter, any VGA machine) seems to be much slower than any decent WM2003 XScale PXA-255 QVGA device.
Now, for the numerical results.
Spb Pocket Plus 2.2 ( http://www.spbsoftwarehouse.com/products/pocketplus/?en ) : a highly popular and configurable Today plug-in, with (compared to the latest versions of MultiIE / PIEPlus / ftxpBrowser) an excellent PIE plug-in. Offers almost everything you could think of.
It caused almost no performance hit. Everything I could measure was probably a +1 second searching time, but I'm not sure about that.
Spb GPRS Monitor 2.2.0 ( http://www.spbsoftwarehouse.com/products/gprsmonitor/?en ), a very handy tool to monitor GPRS connections. It, because it actively polls the connection (even when the connection isn't active), does cause some slowdown in all programs. However, this is not very significant, some 1.3%. (+4 seconds in the test.)
OzBTWF 0.67 ( http://207.153.195.134/ozbt.html ): another very handy tool because it switches on/off Wi-Fi/BT automatically, depending on the actve window's caption. Older versions did have slowdown problems; this is why I was especially interested in what the new version delivers. Fortunately, the latest version only increased the search time by +2 sec. This means you don't have to fear of OzBTWF because it only slows down your PPC by some 0.7%.
WM2003(SE)'s built-in Wireless Zero Configuration (WZC) . It, because constantly polls the network to find available partners to connect to, can also cause some slowdown. I wanted to find out how much it is, and also wanted to know whether we can win any CPU cycles by disabling WZC entirely. The results were astonishing: WZC didn't introduce any additional slowdown. Enabling Wi-Fi itself increased the search time by 5 sec, though.
ThinkOutside StowAway BT keyboard (hx4700) 4.1 driver: An add-on keyboard. Didn't cause any additional slowdown.
Spb Imageer 1.2's memory card-insertion event listener. I wanted to find out whether it causes any kind of slowdown. Fortunately, the benchmark results were very good: registering to events like the card-insertion doesn't cause any kind of slowdown.
Slowdowns depending on the number of user files in the main memory
WinCE has always very sensitive to the number of files in the Object Store. The more files in the main memory, the more apparent slowdown. This is, unfortunately, is apparent with WM2003SE as well.
I synchronized 2865 mails (28.6Mbytes) with 372 (1774 kbytes) attachments onto my (otherwise clean) PPC. Because Pocket Inbox (Messaging in WM2003SE's parlance) stores synchronized e-mails in the main memory in a way that is definitely the worst (no compression at all and one file is used for each mail), this meant 3237 new files in the main memory. Please note that it's the number of additional files in the main memory that counts and not (only) the free memory. I still had some 80-90 Mbytes free when counducting the Messaging test – still, the PDA was much harder to use in everyday situations because of its sluggish response.
This caused a 40-second hit in the searching. (I've double-checked this.) The "normal" operation of the PDA (starting programs etc.), as has already been stated, became much more sluggish.
This means you should always try to put
1, all your files/programs in storage cards
2, use registry hacks to put PIE cache (=a lot of small files) there too
3, use e.g. WebIS Mail to store all your locally downloaded (that is, POP3/IMAP) messages on storage cards
4, try to avoid using ActiveSync's Inbox synchronization (because it can only synchronize with the main memory)
Opinions/comments are welcome!