IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Function la plus rapide


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut Function la plus rapide
    Lors du PHP Paris, Julien Pauli nous as expliqué comment trouver les fonctions les plus rapides, e explorant le code C de PHP.

    C'est comme ça qu'on sait que echo() est plus rapide que print(), parce que la fonction C de print() utilise echo !

    Du coup je me pose la question (sans devoir aller dans les profondeurs de PHP), qui est le plus rapide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    count() ;
     
    sizeof()
    de même est-il intéressant de faire quelque chose dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $foo = array();
    $foo = maFonctionQuiRetournePleinsElement();
    foreach($foo as $value){....
     
     
    // ou
     
    $foo = array();
    $foo = maFonctionQuiRetournePleinsElement();
     
    $spl=SplFixedArray::fromArray($foo)
     
    foreach($spl as $value){....

  2. #2
    Membre actif
    Homme Profil pro
    DSI interne
    Inscrit en
    Juin 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DSI interne
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 197
    Points : 290
    Points
    290
    Par défaut
    Pour sur count() est plus rapide que sizeof(), car ce dernier est un alias du premier => sizeof()

    Pour ta deuxième question, utiliser la classe SplFixedArray sera plus rapide, par contre si tu veut optimiser les performances par la suite utilise plutôt des boucles while/for plutôt que foreach.
    "Beatus qui prodest quibus potest"

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Sauf si tu as un réel besoin de tableau à taille fixe , je suis pas convaincu que ça apporte quelque chose.
    Rien que le temps de l'importation du tableau dynamique dans un tableau de taille fixe me fait penser que ça va être plus lent. (pas testé c'est juste un idée)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Bah euh, c'est moi ou il suffit de faire le test

    SplFixedArray est beaucoup plus rapide en lecture, mais effectivement le temps de population peut contre balancer ce gain, ça dépend vraiment du volume que tu as a traiter. Pour te donner un ordre d'idée, je l'utilise régulièrement quand je dois parcourir (uniquement parcourir) des tableaux de plusieurs milliers de lignes, sans changer les dimensions du tableau, et sans écrire dessus. Pour des petits tableaux ça ne sert à rien.

    Pour info, j'ai un fichier de bench, quand je me pose ce genre de question (existentielle ), et c'est fréquent, il me suffit de rajouter un bench et c'est parti. Ca prend 3 minutes à coder une fois pour toute.

    Après les benchs génériques ne veulent rien dire, ça dépend du type d'accès aux données, de sa fréquence, de leur tailles / types... Et des conditions du tests... Mais ça je me doute que tu le sais déjà
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

Discussions similaires

  1. recherche arborescence plus rapide
    Par e-steel dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 30/01/2006, 16h22
  2. Réponses: 16
    Dernier message: 19/05/2005, 16h20
  3. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46
  4. [VB6] timer plus rapide que 1 d'interval
    Par windob dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/02/2004, 00h16
  5. Réponses: 8
    Dernier message: 31/10/2003, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo