[Feature request] Enabling custom memory allocators support

[Feature request] Enabling custom memory allocators support

Given that the new operator is not explicitly redefined for most classes (at least in SMESH) all objects are allocated using default run-time and system allocators. They are (at least were) known to be less efficient when dealing with numerous allocations throughout the app lifetime. Therefore there exist various custom memory allocators that address this problem (especially for multi-threaded cases). Open CASCADE, for instance, redefine operator new for base classes to call Standard::Allocate() and Standard::Free() what in its turn enable very simple allocator substitution (e.g. OCC, system or Intel TBB allocator).

Enabling similar approach (defining operator new and forwarding to some proxy) in Salome will likely increase performance in multiple algorithms. Of course, to avoid isolated memory caching (and hence increased footprint), forwarding to Standard::* methods would likely be the most efficient.

Has this ever been considered and put on a product roadmap ?

Would be great to hear any comments from the development team. Thank you,