On Mon, 1 Jan 2024, Hairy Pixels via fpc-pascal wrote:
On Dec 30, 2023, at 3:18 PM, Michael Van Canneyt via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote: And try to avoid "for r in data" because it will create a copy for each element in the list.This seems more like bad compiler design than anything. From the users perspective a for loop is a read-only operation and shouldn't be copying anything. I know it's how the enumerator thing is done but that may have been a bad design from the start or needs some extra optimization somewhere.
You can't optimize that. As said, a generic is convenient but slow.
For OP I would just kill the for-in loop in favor of a normal for-do loop and be done with the problem.
That will not help, since he is using a TList<TMyRecord>, it cannot work without copy: any read implies a copy. Unless you use a pointer as Marco and I suggested. Michael.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal