Abro, Dezember 2009
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:
Aufgrund interner Umstrukturierungsmaßnahmen ist es uns z.Zt. leider nicht
möglich auf neue Kommentare zu reagieren. Wir bitten dies zu entschuldigen.
Bei dringenden Rückfragen suchen Sie bitten den direkten Kontakt zu uns.