Leistungsvergleich von Foreach, Array_Map mit Lambda und Array_Map mit statischer Funktion
In diesem Artikel werden die Leistungsunterschiede zwischen drei Ansätzen zur Transformation von an bewertet array: Verwendung von foreach, Verwendung von array_map mit Lambda-/Closure-Funktionen und Verwendung von array_map mit „static“ Funktionen/Methoden.
foreach
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
Karte mit Lambda
return array_map(function($number) { return $number * 10; }, $numbers);
Karte mit ' static'-Funktion, als String übergeben Referenz
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
Leistungsbenchmarks
Benchmarks, die mit verschiedenen PHP-Versionen (5.6, 7 und HHVM) durchgeführt wurden, ergaben die folgenden Ergebnisse:
PHP Version | Foreach | MapClosure | MapNamed | MapClosureI | ForEachI |
---|---|---|---|---|---|
5.6 | 0.57 | 0.59 | 0.69 | 0.73 | 0.60 |
7 | 0.11 | 0.16 | 0.11 | 0.19 | 0.11 |
HHVM | 0.09 | 0.10 | 0.10 | 0.11 | 0.09 |
Im Allgemeinen zeigten foreach und array_map mit Lambda-Funktionen eine ähnliche Leistung. Array_map mit statischen Funktionen war etwas langsamer. Die Verwendung von Abschlüssen mit Use-Anweisungen führte zu einer spürbaren Leistungseinbuße.
Fazit
Die Wahl zwischen diesen Ansätzen hängt vom spezifischen Anwendungsfall und von Faktoren wie Codelesbarkeit, Wartbarkeit, und Leistung. Für einfache Transformationen bieten foreach und array_map mit Lambda-Funktionen eine vergleichbare Leistung und eine prägnante Syntax. Für komplexere Transformationen ermöglicht array_map mit statischen Funktionen eine sauberere und wiederverwendbare Codestruktur, allerdings mit einem potenziellen Leistungseinbußen.
Das obige ist der detaillierte Inhalt vonWelche PHP-Array-Transformationsmethode ist am schnellsten: foreach, array_map mit Lambda oder array_map mit statischer Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!