skeye a écrit :
Le mieux est de tester, mais ça m'étonnerait fortement qu'il y ait une différence significative.
|
Bien au contraire, array_map génère un appel de fonction pour chaque item, et je doute très fort que les appels de fonctions soient très rapides dans PHP
Donc array_map est probablement largement plus lent que foreach
rufo a écrit :
l'idée c'était qu'avec array_map(), ça aurait été bien que ça crée des thread pour chaque appel à la fonction callback Sur un dual core, ça aurait pu faire gagner en perf...
|
Sauf que PHP n'est pas un langage "pur" (et qu'il n'est pas possible d'annoter des fonctions pour spécifier leur pureté), donc le callback peut trivialement avoir des effets de bord, demandant à ce que l'exécution soit séquentielle. Elle peut aussi utiliser des données issues de son contexte (globale) que PHP ne pourra pas indiquer à array_map, interdisant là encore la parallélisation automatique. (edit: grillé par omega2 là dessus)
Enfin, ça serait de toute façon complètement con, un thread OS c'est un objet relativement lourd, créer un thread pour chaque item de l'itération prendrait un temps fou
Message édité par masklinn le 03-09-2008 à 17:04:51
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody