Ich hatte eine Abteilung in einer Klasse, die ich in eine neue aufgeteilt habe.
Als ich die Code-Sektion in eine neue Klasse portiert hatte, bemerkte ich, dass sie beim Ausführen einer der foreach-Schleifen wesentlich langsamer war.
Es gelang mir, einen Teil des Problems zu finden, wie ich das endgültige Ergebnis Array gespeichert habe.
ich denke, es wird einfacher sein, zu verstehen, wenn Sie eine verkürzte Version von meinem Code sehen:
Der ursprüngliche portierten Code: http://pastebin.com/2iBuqmgn Weitere optimiert portierten Code: http://pastebin.com/TYU1rHwU
Sie werden sehen, dass in Im ersten Beispiel manipuliere ich $ this-> active_topics direkt durch den ganzen Weg.
Im zweiten Beispiel verwende ich lokale Variablen, bevor ich die lokale Variable nach $ these-> active_topics nach der foreach-Schleife speichere.
Mit dem Original schien eine Schleife durchschnittlich 1 Sekunde zu dauern, während die besser optimierte Version durchschnittlich 0,85 verwendet. Sie geben genau den gleichen Inhalt zurück.
Warum ist der optimiertere Code unter Verwendung lokaler Variablen effizienter?