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


.



Relevant Pages

  • Re: MsgCommunicator v.2.00: Instant Messenger SDK, now with databases support
    ... expect persistent connections. ... they will wait for the server to pick them up. ... your Clients can stay "off-line" for about 30 minutes before they have to ... requests *simultaneously*. ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Asynchronous I/O or multiple threads?
    ... A typical load on the server will be less than 1000 connections ... some max, say 500, then block new requests with server busy reply. ... could also use your own thread pool (many existing example out there such as ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Free WebServer Stress-Testing Tool!
    ... internet bandwidth) generate more load than the Server would get when 100 ... people were browsing the web sites on that Server. ... 100-300 connections, to bring any Web Server down with that Tool (unless the ... requests coming from the same IP). ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Performance Issue with Runtime Image
    ... >> setup was such that the server wasn't seeing a lot of concurrent ... > simultaneous clients. ... then you /have/ to limit the number of active connections. ... As a result, existing requests won't be serviced as quickly, but new ...
    (comp.lang.smalltalk.dolphin)
  • Re: SBS 2003 IIS BASED SERVICES FAIL INTERMITTENTLY
    ... If I read your post correctly, you have a switch where the SBS ... Run DHCP server on your SBS, and set all client machine nics to dynamic. ... Once you have your nics configured, run the Connect to the Internet wizard, ... QUESTION1 - what is REFUSING CONNECTIONS? ...
    (microsoft.public.windows.server.sbs)