Abro, Dezember 2009

PHP5.3 Performance: asort()

PHP's asort performanceHeutige 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.

Kommentare sind geschlossen.
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.
Das Unternehmen Lucido Media GbR wurde am 31.12.2013 stillgelegt. Diese Website existiert weiterhin zu Archivzwecken. Der Gesellschafter Daniel Abromeit führt seine Arbeit ab sofort unter dem Dach der Agentur Koch Essen fort. Für entsprechende Anfragen wenden Sie sich daher bitte an http://koch-essen.de/kontakt/