PHP5.3 Performance: asort()
Heutige Fragestellung in der PHP-Agentur: Kann man bei asort() an der Performance-Schraube drehen, indem man vorgibt welchen Datentyp die Array-Elemente haben?
Der Test
/** * env : Win32, PHP5.3.0 * * $a_int_data : 10.000x rand(0,100) * $a_str_data : 10.000x md5(rand(0,100)) * * loop 5000x */ // numeric keys // asort($a_int) : 0.0263sec. avg asort($a_int,SORT_NUMERIC) : 0.0343sec. avg asort($a_str) : 0.1317sec. avg asort($a_str,SORT_STRING) : 0.0547sec. avg // md5 keys // asort($a_int) : 0.0283sec. avg asort($a_int,SORT_NUMERIC) : 0.0382sec. avg asort($a_str) : 0.1626sec. avg asort($a_str,SORT_STRING) : 0.0688sec. avg
Das Resumee
- asort mit so großen Arrays ist bescheuert ;o)
- Auch wenn er nicht dazu gedacht ist kann man den zusätlichen Parameter bei String-Arrays dazu einsetzen um einen kleinen Performanceschub zu bekommen. Für alle anderen Fälle sollte man das lieber lassen.
- Es spielt dabei keine rolle welchen Typ die Keys haben.
Werbeagentur-Wissen auf deiner Website !?
Wenn dir dieser Artikel gefällt, verlink ihn doch bitte auf deiner Website.
Der einfache Code dafür ist wie folgt: