ANN: Memory Manager Test Results



I have just completed performance tests,
using 4 Memory Managers (in alphabetical order)...

1) BucketMem_ASM
2) Default MM in Delphi 7
3) FastMM 4.56 - default
4) FastMM 4.56 - optimized
5) Nexus DB MM V3

OS used (on all PCs):
Windows XP Pro

Client PCs used (13):
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM

Server PC used (1):
1 x Dual-core AMD X2 at 4,4 GHz with 2 GB RAM
- CPU: AMD Athlon64 X2 4400+ "box" 2x1024KB L2 Cache
(200 MHz FSB, S.939)
- RAM: 2048 MB DDR PC3200/400 - CL 2,5 Corsair Twinx XMS
- Board: MSI K8N SLI-F, S.939 NVIDIA Nforce4 SLI, ATX
- Graphics: MSI NX6600LE TD256E NVIDIA 6600LE, 256MB, PCIe
- Hard-drives: 2 x Samsung HD080HJ P80, 80GB 7200, 8MB Cache

Each of those 13 Client PCs were executing the Multiple Connection Flood
test, using 300 connection in Multithreaded mode (256 threads) with
automatic compression and encryption to constantly flood the AppServer
(total 3.900 connections).

AppServer was running in multithreaded mode (256 threads) with automatic
encryption and compression activated, all PCs were connected to one 24-port
100 MBit full-duplex switch.

Here are the results of my tests, which I have collected after clicking
"Stop" on the Server, which has closed all active connections and stopped
the Server from waiting for new client connections ...

1) BucketMem_ASM = 1.903 req/sec
Testing time: 21 minutes
Processed: 2.398.220 requests
Mem Usage: 60.236 KB = 60 MB
VM Size: 61.432 KB = 62 MB

2) Default MM in Delphi 7 = 106 req/sec
Testing time: 23 minutes
Processed: 145.700 requests
Mem Usage: 111.516 KB = 112 MB
VM Size: 117.956 KB = 118 MB


3) FastMM 4.56 default = 1.806 req/sec
Testing time: 24 minutes
Processed: 2.600.770 requests
Mem Usage: 184.360 KB = 184 MB
VM Size: 209.516 = 210 MB

4) FastMM 4.56 optimized = 2.061 req/sec
Testing time: 150 minutes (2:30 hours)
Processed: 18.549.760 requests
Mem Usage: 180.292 KB = 180 MB
VM Size: 190.320 KB = 190 MB

5) Nexus DB MM V3 = 1.589 req/sec
Testing time:21 minutes
Processed: 2.001.870 requests
Mem Usage: 26.060 KB = 26 MB
VM Size: 26.968 KB = 27 MB

I have double-checked all results!

Sorted by average Performance ...
1) FastMM 4.56 optimized ( 2.061 / sec )
2) BucketMem_ASM ( 1.903 / sec )
3) FastMM 4.56 default ( 1.806 / sec )
4) Nexus DB MM V3 ( 1.589 / sec )
5) Default MM in Delphi 7 ( 106 / sec )

Sorted by VM Size allocated afterwards ...
1) Nexus DB MM V3 ( 27 MB )
2) BucketMem_ASM ( 62 MB )
3) Default MM in Delphi 7 ( 118 MB )
4) FastMM 4.56 - optimized ( 190 MB )
5) FastMM 4.56 - default ( 210 MB )


I am not affiliated with any of the developers or companies which Memory
Managers I have been testing. My only interest is to present results of
tests using RTC SDK components in a high-load client/server environment,
using a fast dual-core CPU as a Server in multithreaded mode.

I don't want to comment the results, but I can assure you that results are
accurate and collected from running the same Client and Server applications,
using the same settings on the same hardware. The only variable in those 5
tests was the Memory Manager in use.

--
Danijel Tkalcec
http://www.deltasoft.hr/rtc/author.htm


.