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 :

PHP bench - Objet vs Tableau, serez-vous plus vigilant ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Par défaut PHP bench - Objet vs Tableau, serez-vous plus vigilant ?
    Bonjour,

    En pleine réflexion sur le full object en PHP : DAO, ORM, Entité, Collection...
    Faut-il ou pas, est-ce vraiment nécessaire ? Style objet ou procédurale ?
    J'en ai eu marre de chercher sur net et de lire tous les avis divergeants, je me suis décidé à réaliser un petit test moi même.
    Le résultat n'est pas surprenant, c'est plus coûteux mais la différence est vraiment importante.
    Sans compter la mémoire qui doit être également plus chargée.

    Qu'en pensez-vous ?

    Merci

    Apache 2.2.17, PHP 5.3.5
    http://img198.imageshack.us/img198/3039/bencho.png


    edit : note sur la mémoire

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et stdClass ?

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Par défaut
    Avec stdClass() on descend à 5,5 de moyenne pour 1 000 000 mais ça perd d'intérêt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            $oPersonne = new stdClass();
            $oPersonne->id      = 1;
            $oPersonne->nom     = 'Do';
            $oPersonne->ddn     = '2012-01-01';
            $oPersonne->sexe    = 1;
    Pour info la classe Personne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Class Personne {
     
            protected $_id;
            protected $_nom;
            protected $_ddn;
            protected $_sexe;
     
            public function __construct($pId, $pNom, $pDdn, $pSexe) {
                $this->_id   = $pId;
                $this->_nom  = $pNom;
                $this->_ddn  = $pDdn;
                $this->_sexe = $pSexe;
            }
     
        }

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Le débat performances Objet vs Procédural est sans intérêt, on sait bien que l'objet prends plus de ressources.

    En revanche, il y a certaines choses qu'une architecture objet sait faire que ne pourra jamais faire les tableaux classiques:
    • héritage
    • polymorphisme
    • encapsulation
    • traits
    • réutilisation
    • factorisation
    • etc.


    Tu veux des performances pures ? Utilise le mode procédural et les tableaux ou mieux, oublie PHP et fait ça avec des langages plus performants.
    Tu veux faire une code réutilisable, sécurisé et facile à maintenir ? Utilise l'OOP (encore que tu puisse y arriver avec du procédural, le niveau de complexité ne sera jamais le même).

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Comme le dit benjamin si tu en es rendu à comparer la vitesse objet vs procédural et que tu as épuisé toutes les pistes d'optimisation classique c'est que le langage n'est peut être pas adapté à tes besoins.

    Un site en objet ou en procédural , honnêtement si les deux sont correctement codé tu verras jamais la différence (coté utilisateur, j'entends).

    Le seul risque de l'objet c'est qu'on à bien plus tendance à faire des couches de surcouche de sursurcouche comme le font si bien les FW à la mode en ce moment. Et là, effectivement, on se retrouve à faire un hello world en 5 sec.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Par défaut
    Le but de la comparaison n'est pas sur le fait de savoir qui est le plus consommateur mais la proportion entre les deux.

    J'essaie de peser le pour et le contre dans le cas d'un simple site web.

    Est-ce qu'un ORM accompagné de tous les setters et getters à son intérêt pour une charge multipliée par 4,5 ?

Discussions similaires

  1. Search/Replace, avez vous plus rapide ?
    Par Bruno13 dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2006, 15h49
  2. [PHP-JS] Passer un tableau php en tableau JS
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2005, 11h36
  3. [Librairies] [PHP] Imprimer un énorme tableau sur plusieurs pages A4
    Par Doc.Fusion dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 30/11/2005, 17h45
  4. [PHP-JS] Remplir un tableau javascript selon un tableau php
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2005, 14h02
  5. Declaration d objets en tableau
    Par Spin dans le forum Composants VCL
    Réponses: 6
    Dernier message: 16/03/2003, 22h18

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