<div dir="auto"><div><div class="gmail_extra"><div class="gmail_quote">Am 09.01.2018 02:59 schrieb "Ryan Joseph" <<a href="mailto:ryan@thealchemistguild.com">ryan@thealchemistguild.com</a>>:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text"><br>
<br>
> On Jan 9, 2018, at 3:30 AM, Graeme Geldenhuys <<a href="mailto:mailinglists@geldenhuys.co.uk">mailinglists@geldenhuys.co.uk</a><wbr>> wrote:<br>
><br>
> Recently I did a very simple test with Delphi XE3 using TList<Integer> and a stock TList. Adding 50,000 and 200,000 integer values to each list, and timing the creation of the list and population of the list. Then I also timed the destruction of the list. I was horified to find out how much slower Delphi's Generics were compared to TList and TObjectList. Destruction was 250x slower in many cases. Creation and population of the list was 5x-10x slower.<br>
<br>
</div>What does this have to do with generics exactly? If I understand correctly generics are “meta-programming” where they essentially just re-insert a generated class based on the template (c++’s naming scheme makes more sense imo) but they don’t actually add any runtime code.<br></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">But you need to program in a way that allows the usage of multiple, different types. That can more often than not lead to worse performance. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div></div></div>