Am 22.02.2019 um 07:06 schrieb Paul van Helden:
On Fri, Feb 22, 2019 at 2:35 AM Ben Grasset <operato...@gmail.com
<mailto:operato...@gmail.com>> wrote:
On Sat, Feb 16, 2019 at 5:44 PM Benito van der Zander
<ben...@benibela.de <mailto:ben...@benibela.de>> wrote
it can turn out the enumerators are slower than an old school loop
The trick with enumerators is to never make them classes, and use
advanced records instead, I've found. This way you avoid the heap
allocation and the implicit try/finally. Also make sure you inline
the MoveNext and GetCurrent!
How do you make a (for in) enumerator with a record? I don't use them
for exactly this reason, and they did seem to be another useful
language feature that turned out to be poorly implemented by
Embarcadero. (Haven't checked with FPC).
Just as you would a class (an object is fine, too, by the way). You can
take a look at the testcase here:
https://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/tests/test/tforin25.pp?view=markup
Regards,
Sven
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel