09-05-2010, 01:52 AM
Si tu veux chercher à comprendre, tu peux télécharger les sources de PHP, et farfouiller dans les sources ( en C ), pour regarder comment est fait le tri de la fonction sort() ( regarde dans /ext/standard/array.c ).
La comparaison entre un langage compilé et un langage interprété est très simple : le compilé est beaucoup plus rapide. Après, dis-toi que les mecs qui ont développé PHP sont quand même un poil calés et savent ce qu'ils font. Tout n'est pas parfait dans PHP, y a peut-être des optimisations à faire, mais sur des fonctions aussi simples cherche pas, tu pourras rien faire, surtout quand tu dis que t'as même pas une dizaine d'enregistrements à trier. Même la méthode la plus lourde de tri ne donnerait pas de performances différentes du quicksort pour 5 enregistrements. De plus, le tri d'un tableau est un algo qui a été tourné / retourné dans tous les sens depuis que la notion de tableau existe tellement il est couramment utilisé.
Faut pas non plus que t'oublies que quand tu fais sort($monTableau);, tu appelles une seule fonction PHP, et que le chemin entre la fonction sort() en PHP et l'équivalent en C doit être court. Si tu fais ton propre algo en PHP, tu vas faire tout plein de boucles et d'assignations en PHP, qui seront tout autant d'instructions à être parsées / interprétés par Zend Engine ( le moteur de PHP ).
Ça peut avoir du sens pour des trucs beaucoup plus lourds, mais pas pour les fonctions toutes simples comme sort, derrière lesquelles il y a déjà des algos super robustes.
Si t'as envie de comprendre les rouages de PHP, fais des recherches sur Zend Engine, l'opcode, lis le code source de PHP, fais des tests
La comparaison entre un langage compilé et un langage interprété est très simple : le compilé est beaucoup plus rapide. Après, dis-toi que les mecs qui ont développé PHP sont quand même un poil calés et savent ce qu'ils font. Tout n'est pas parfait dans PHP, y a peut-être des optimisations à faire, mais sur des fonctions aussi simples cherche pas, tu pourras rien faire, surtout quand tu dis que t'as même pas une dizaine d'enregistrements à trier. Même la méthode la plus lourde de tri ne donnerait pas de performances différentes du quicksort pour 5 enregistrements. De plus, le tri d'un tableau est un algo qui a été tourné / retourné dans tous les sens depuis que la notion de tableau existe tellement il est couramment utilisé.
Faut pas non plus que t'oublies que quand tu fais sort($monTableau);, tu appelles une seule fonction PHP, et que le chemin entre la fonction sort() en PHP et l'équivalent en C doit être court. Si tu fais ton propre algo en PHP, tu vas faire tout plein de boucles et d'assignations en PHP, qui seront tout autant d'instructions à être parsées / interprétés par Zend Engine ( le moteur de PHP ).
Ça peut avoir du sens pour des trucs beaucoup plus lourds, mais pas pour les fonctions toutes simples comme sort, derrière lesquelles il y a déjà des algos super robustes.
Si t'as envie de comprendre les rouages de PHP, fais des recherches sur Zend Engine, l'opcode, lis le code source de PHP, fais des tests