-
Notifications
You must be signed in to change notification settings - Fork 0
speedtest
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.
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
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
- ARAnyM main documentation
- ARAnyM Development
- How to install ARAnyM/AFROS system from scratch
- TOS/GEM Software Compatibility
- Various ARAnyM host platforms and their problems
- Host<->Atari communication: Native Features
- Speed tests
- Articles from aranym.xylab
- Architecture of ARAnyM video subsystem
- Links page