[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