Skip to content
Thorsten Otto edited this page Feb 6, 2018 · 1 revision

ARAnyM speed in various configurations

Goal

I wanted to find out how some of the compatibility compile-time switches affect the ARAnyM performance. My goal was to find a default set of options that would bring as much speed as possible while retaining high compatibility with real Atari hardware. I also wanted to set up a reasonable real-world test case and compare normal, MMU and JIT builds.

Test

Tested setup: my Athlon XP 2200+ (1866 MHz), selfcompiled ARAnyM 0.9.4beta in various configurations (see below), AFROS 0.9.4beta default boot (FreeMiNT, XaAES, fVDI 800x608). FreeMiNT's ramdisk (in 64 MB FastRAM), 600 files in 59 folders (total size about 10893 kB) copied to the ramdisk and used as source for the compressing programs. The destination file resided in ramdisk as well. I think I managed to set up the worst case real world scenario for testing the CPU power and RAM throughput... For comparison I also added CPU and Mem speed as measured by a synthetic benchmarking program named Kronos.

ARAnyM 0.9.4 configurations tgz [s] zip [s] sum [s] 1/sum Kcpu Kmem
addressing real 67.7 72.5 140.2 103.2% 25.2 203.6
addressing direct 67.9 76.9 144.8 100.0% 24.2 200.8
real + protect2k 70.3 73.9 144.2 100.4% 25.6 205.3
direct + protect2k 73.4 74.4 147.8 98.0% 24.9 196.0
real + cxx 67.6 72.7 140.3 103.2% 25.3 203.7
direct + cxx 68.3 74.2 142.5 101.6% 25.1 201.3
real + protect2k + cxx 71.8 74.9 146.7 98.7% 25.3 203.5
direct + protect2k + cxx 73.0 76.1 149.1 97.1% 24.6 197.5
MMU + addressing real 259.4 230.6 490.0 29.6% 10.1 26.6
MMU + addressing direct 265.9 231.8 497.7 29.1% 10.0 26.7
MMU + real + protect2k 259.8 229.2 489.0 29.6% 10.1 26.6
MMU + direct + protect2k 268.9 232.1 501.0 28.9% 10.0 26.7
MMU + real + cxx 156.2 154.8 311.0 46.6% 14.1 71.2
MMU + direct + cxx 159.0 154.0 313.0 46.3% 14.1 70.8
MMU + real + protect2k + cxx 156.6 154.9 311.5 46.5% 14.1 70.9
MMU + direct + protect2k + cxx 158.9 154.0 312.9 46.3% 14.0 70.8
JIT 5.9 7.1 13.0 1113.8% 777.0 575.0
  • tgz = time to tar + gzip the file set
  • zip = time to zip the file set
  • sum = total time to tgz + zip the files
  • 1/sum = relative speed compared to Debian 0.9.4beta default build (direct addressing)
  • Kcpu = Kronos 1.71a Processor test
  • Kmem = Kronos 1.71a Memory + Video bus speed

Conclusion

My conclusions from the results above:

  • protect2k can be enabled by default. It "costs" us about 3% of speed in this specific (rather worst-case) test, a small price payed for better compatibility with real Atari hardware.
  • cxx-exceptions can be enabled by default. They bring massive speed up in MMU mode (+60%!) and never slow us down. The only downside is that they must not be enabled when sseg handler is checking the memory boundaries (JIT mode).
  • the full MMU mode is in fact not that slow. Only about twice slower (Kronos is even more optimistic) than normal build. Good news for us. With upcoming generation K8/Conroe processors it will be possible to run in MMU mode with reasonable performance (hopefully faster than real hardware :-)

Written by Petr Stehlik on 2006/10/09

Clone this wiki locally