01-20-2024, 12:56 AM
(This post was last modified: 01-20-2024, 12:58 AM by Alexandre Machado.)
Hi guys,
I was doing some performance measurements using a really wide range of Delphi compilers and I decided that I'll write a more complete blog post showing some results and discussing the memory managers available to Delphi users. It's not ready yet, but it will be soon.
Anyway, until then, I'd like you - Delphi/IntraWeb developer - to open your IntraWeb project and double check what is the memory manager that you are currently using.
The results that I obtained testing different memory managers are shocking!! Here's the result of one test case:
- Delphi default MM (based on FastMM4): 13K req/s
- FastMM 4 with std options: 10K req/s
- FastMM 4.992 (options included with IntraWeb installer): 30K req/s
- MSHeap: 43K req/s
- FastMM 5: 44K req/s
- ScaleMM2: 45K req/s
Forget minor differences now and focus on the most important thing:
If you don't use any memory manager other than the Delphi built-in (based on FastMM4) or you are using an older version of FastMM4 (anything other than 4.992), your IntraWeb application is probably limited to 1/3 of its real capacity, due to the limited capacity of the old MMs to handle memory allocation/deallocation in a multi-threaded application
More on it to come, but for now, check your source code and fix it right now. I'd recommend you to start with the version of FastMM 4.992 that can be installed with IntraWeb (it's the exact same version that you can find on Github but we configured the options to give you maximum performance in production).
Cheers
I was doing some performance measurements using a really wide range of Delphi compilers and I decided that I'll write a more complete blog post showing some results and discussing the memory managers available to Delphi users. It's not ready yet, but it will be soon.
Anyway, until then, I'd like you - Delphi/IntraWeb developer - to open your IntraWeb project and double check what is the memory manager that you are currently using.
The results that I obtained testing different memory managers are shocking!! Here's the result of one test case:
- Delphi default MM (based on FastMM4): 13K req/s
- FastMM 4 with std options: 10K req/s
- FastMM 4.992 (options included with IntraWeb installer): 30K req/s
- MSHeap: 43K req/s
- FastMM 5: 44K req/s
- ScaleMM2: 45K req/s
Forget minor differences now and focus on the most important thing:
If you don't use any memory manager other than the Delphi built-in (based on FastMM4) or you are using an older version of FastMM4 (anything other than 4.992), your IntraWeb application is probably limited to 1/3 of its real capacity, due to the limited capacity of the old MMs to handle memory allocation/deallocation in a multi-threaded application

More on it to come, but for now, check your source code and fix it right now. I'd recommend you to start with the version of FastMM 4.992 that can be installed with IntraWeb (it's the exact same version that you can find on Github but we configured the options to give you maximum performance in production).
Cheers