[fpc-pascal] GetMem slow in threads

Marco van de Voort fpc at pascalprogramming.org
Sat Nov 9 15:52:07 CET 2024


Op 9-11-2024 om 14:59 schreef Hairy Pixels via fpc-pascal:
>
> The solution would be to be to use a different allocator but because 
> FPC only allows overriding NewInstance per class it would be mean you 
> would need a mutex anyway to control which allocator was used 
> depending on the thread.
>
> Maybe a threadvar could be used to get the allocator for the class 
> type? I haven’t tried but I know there’s a penalty to use that too and 
> it may wipe out of the gains again. I’m not sure what a threadvar is 
> though or how it’s implemented just that the docs say it could be slow.
>
> Any ideas would be appreciated.


Afaik the FPC heapmanager's design is to avoid that lock too frequently 
and have a small per thread heap. This can get frustrated when you do a 
lot of allocating in one thread, and releasing into another.



More information about the fpc-pascal mailing list