[fpc-pascal] Passing around Pascal strings vs AnsiString

Peter B peter at pblackman.plus.com
Thu Jun 15 14:02:12 CEST 2023

On 14/06/2023 14:20, Hairy Pixels via fpc-pascal wrote:
> I was curious, if you had a Pascal (short) string and it was going to be passed around often would that be slower than using an AnsiString since its size is that of a pointer? I always prefer short strings when I know the length will be less than 255 but can copying that value between function calls add up to be more than the cost of allocating and reference counting the AnsiString?
> Regards,
> 	Ryan Joseph
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Value parameter passing will be slower for shortstring, but anything else is likely to be much faster.
Best to profile the app if concerned about this.

I recall many years ago, an application that ran about 50 times slower, following a Delphi upgrade.
It turned out the issue was switching the string default from pascal shortstring to ansi.

YMMV, but I would always use shortsting locally where length permits.


P.S.  Think this was D4

More information about the fpc-pascal mailing list