Abhängig vom Container ist %code% mindestens so schnell wie %code% , aber normalerweise viel schneller, da weniger Methodenaufrufe erforderlich sind.
Statt %code% für jedes Element im Array aufrufen zu müssen, kann das Array mit %code% gleichzeitig einen Block von Objekten in einem C-Array zurückgeben. Iterieren dieses C-Array ist Weg schneller als viele Methodenaufrufe zu tun, die jeweils nachschlagen und nur ein Objekt zurückgeben.
%code% ist nicht schneller als jede "for" -Schleife. In einem allgemeinen Sinn ist das unmöglich, weil Grundschleifen bereits so optimiert sind wie sie sein können.
Stattdessen ist %code% schneller als eine "for" - oder "while" -Schleife, die Daten bei jeder Iteration von einem Objective-C-Objekt mithilfe eines Objective-C-Methodenaufrufs abruft.
Dadurch werden die Daten stapelweise abgerufen, wodurch der Aufwand für den Aufruf einer Methode bei jeder Iteration reduziert wird. Das Entfernen des Methodenaufrufs aus dem inneren Teil der Schleife hat auch Vorteile bei der Compiler-Optimierung.
Weiß jemand, ob %code% ist wirklich schneller (als in Laufzeit Leistung) als mit %code% oder (für Arrays) mit einem Integer-Zähler und Schleife durch die Elemente?
Wenn es tatsächlich schneller ist, wie erreicht es diese Geschwindigkeit?
Oder vielleicht bezieht sich die "schnelle" tatsächlich auf schneller in schreiben den Iterationscode?
Vielen Dank im Voraus.