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 :

[POO] Performance du PHP5 en POO [Fait]


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [POO] Performance du PHP5 en POO
    Bonjour

    Je suis un programmeur JAVA qui a bricolé quelques trucs par-ci par-là en PHP4.

    Voulant me lancer dans un assez gros projet en PHP (un jeu multijoueur) j'ai vu que PHP5 permettait d'utiliser des concepts de POO bien plus avancés et cela m'intéresse car plus aisé à programmer/maintenir.

    Cependant je me demande si la programmation objet ne risque pas de trop diminuer les performances par rapport à de la programmation procédurale plus "classique".

    Cette question est assez importante car j'utiliserai un compte free, déjà pas très performant à la base.

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    salut, à confirmer mais j'ai un compte free qui se trouve en PHP Version 4.3.10.
    Peut-être que le tien est en version 5 ...
    a+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    On peut utiliser les comptes free avec PHP5 en utilisant l'extension .php5 pour ses fichiers, éventuellement en mettant "php 1" dans un .htaccess (exemple). Sinon c'est PHP4.

  4. #4
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    ok, merci pour l'info ...
    ce qui ne résout pas ton problème du coup mais merci quand même.
    a+

    PS : je pense que PHP est très performant. Le problème vient des serveurs free pas très véloces.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Les serveurs de free sont corrects mais hébergent trop de comptes chacun, donc selon le serveur sur lequel on tombe les performances peuvent s'en ressentir plus ou moins.

    Cest pour cela que j'aurais besoin de savoir si les améliorations POO de PHP5 ne sont pas compensées par une baisse de performance sensible.

  6. #6
    Jep
    Jep est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Salut, j'utilise de plus en plus PHP 5 et son model Objet, je n'ai pas constaté de baisse significative des performances car ça dépend surtout de la conception global de l'application. Néanmoins, pour eviter toute mauvaise surprise, il est vivement conseillé d'utilisé certain mecanismes propre à PHP 5 comme la SPL (Standard PHP library : ça devrait te rappeller certain mecanismes de JAVA même si c'est beaucoup moins raffiné)

    En fait, la plus grosse source de baisse de performance vient de la façon dont PHP est executé. S'il est executé en temps que module CGI, il est possible de constater des baisses de performances assez étonnante ! Par contre en mode SAPI ou module apache, pas de problème notable.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour les renseignements, je vais regarder de ce côté-là.

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    j'ai vu que PHP5 permettait d'utiliser des concepts de POO bien plus avancés
    Tu as du mal lire.
    Il n'y a rien de vraiment "bien plus avancé".

    Cependant je me demande si la programmation objet ne risque pas de trop diminuer les performances par rapport à de la programmation procédurale plus "classique".
    Ben oui, c'est un fait.
    La POO, quel que soit ce langage, c'est nécessairement plus lent.
    Boost ftw

  9. #9
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    possibilité de spécifier dans le prototype le type du paramêtre
    possibilité de définir la portée des fonctions ou variable de classe (public, private, protected)
    introduction des constantes de classe : const
    possibilité de définir des classes abstraites : abstract
    possibilité de définir des interfaces
    plus clonage d'objet, destructeur, surcharge et j'en oublie peut être

    C'est quand même pas mal, peut être pas "bien plus avancé" mais agréable non ?

  10. #10
    Invité
    Invité(e)
    Par défaut


    mon site utilise PHP5 objet. je suis chez Free, et c'est clair que sur certaines pages (celles qui necessitent le mappage de nombreux objets provenant de la bdd), c'est un peu lent (mais c'est sûr que le compte Free n'y est pas pour rien non plus )

    mais c'est loin d'etre insupportable, et en tous cas c'est le prix à payer pour les innombrables avantages de la POO

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    possibilité de spécifier dans le prototype le type du paramêtre
    Cela n'est pas valable avec tous les types mais uniquement avec les classes.
    En php4, il fallait faire if(!is_a($truc, 'LaClasse')) trigger_error(....);

    possibilité de définir la portée des fonctions ou variable de classe (public, private, protected)
    C'est pratique pour le développement essentiellement. Il suffit de ne pas appeler une methode/propriété qu'on sait qu'elle doit être inacessible dans ce contexte.
    C'est vrai néanmoins qu'une vraie contrainte est mieux.

    introduction des constantes de classe : const
    ça n'apporte pas grand chose. On pouvait obtenir un résultat vraiment très semblable avec des constantes ou des variables membres.

    possibilité de définir des classes abstraites : abstract
    Même remarque que pour protected/private.

    possibilité de définir des interfaces
    Même remarque que précedemment.

    plus clonage d'objet, destructeur, surcharge et j'en oublie peut être
    PHP5 introduit le passage d'objets par valeur. Pour compenser cette "étrangeté" (étrange car comportement différent des autres types) il était indispensable de donner tout de même un moyen de le copier.
    Il est vrai qu'il y a quand même la nouveauté que l'on peut définir soit-même cette copie. Enfin avant, il suffisait d'appeler une méthode explicitement.
    Les destructeurs sont effectivement nouveaux. Mais il faut avouer qu'en PHP, un script a une durée de vie très courte, donc dans la plupart des cas une destruction des objets à la fin du script suffit amplement (register_shutdown_function).

    La principale nouveauté (à mon sens), tu ne l'as pas citée, ce sont les exceptions.
    Boost ftw

  12. #12
    Jep
    Jep est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par loufoque
    La principale nouveauté (à mon sens), tu ne l'as pas citée, ce sont les exceptions.
    Note qu'il s'agit d'un sytème implémenté dans la SPL (ça c'est une vrai nouveauté) car les exceptions sont toutes des intances ou des intances d'objet dérivé de la classe Exception.

    > http://www.php.net/manual/fr/language.exceptions.php

    La SPL offre de nombreux "vrai" outils objet comme les itérateurs, la possibilité de faire du reverse enginering, etc... La mise en oeuvre de ces outils n'aurait pas été possible sans le model objet de PHP 5

    > http://www.php.net/manual/fr/language.oop5.iterations.php
    > http://www.php.net/manual/fr/ref.spl.php

    Cela est essentiellement du au fait que certain Design Pattern n'était pas réalisables avec le pauvre model objet de PHP 4, maintenant, les processus de développement peuvent être bien mieux rationnalisé.

    > http://www.php.net/manual/fr/language.oop5.patterns.php


  13. #13
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Note qu'il s'agit d'un sytème implémenté dans la SPL (ça c'est une vrai nouveauté) car les exceptions sont toutes des intances ou des intances d'objet dérivé de la classe Exception.
    Les exceptions n'ont rien à voir avec la SPL, c'est une nouveauté dans le coeur du langage.
    La SPL ne fait que définir des sous-types d'exceptions.

    La SPL offre de nombreux "vrai" outils objet
    La SPL n'offre que des classes pré-faites qu'on pouvait très bien coder tout seul.
    Il est vrai néanmoins que certaines interfaces (Iterator et Countable) permettent de surcharger des opérateurs ou fonctions.

    Et la possibilité de faire du reverse engineering, ça vient pas de la SPL mais de l'API de Réflexion.

    Cela est essentiellement du au fait que certain Design Pattern n'était pas réalisables avec le pauvre model objet de PHP 4
    Cite moi un exemple de design pattern qui n'était pas possible en PHP4.
    Tu serais bien en mal : il n'y en a pas vraiment (bon pour singleton il faut utiliser une variable globale mais ça change pas grand chose)

    Et puis bon, qualifier de pauvre tout ça parce qu'il t'engueule pas quand tu utilises une propriété dans un contexte où tu devrais pas...
    Boost ftw

  14. #14
    Membre habitué Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Points : 151
    Points
    151
    Par défaut recentrage
    Pour revenir à la question.

    php5 offre t'il des performances moindres que php4 ?
    Et dans quel cas ces remarques sont-elles valables ?
    Performance en terme de reçources system, mémoire, temps d'execution, stabilité..

    Pour ma part je doit réaliser une petite étude afin de déterminer dans quel situation il est préférable d'utiliser php4 ou php5 : site de e-commerce, site informatif, fonction du trafique, information entrante, sortante etc..

    J'ai trouvé pas mal d'informations mais aucune n'est vraiment concluente :

    http://www.php.net/manual/fr/migration5.oop.php
    Last updated: Mon, 15 Aug 2005

    Description et exemples des nouveautés de PHP5
    09/08/2004
    http://stephaneey.developpez.com/tut...nouveautes/#L1
    Par Stephane Eyskens

    Présentation des nouvelles fonctionnalités de PHP5
    26/05/2003
    http://youri.developpez.com/php/php5/
    Par Youri

    Merci d'avence pour votre participation
    Orthographe => Message Privé constructif svp

Discussions similaires

  1. [POO] Objet classe PHP5
    Par theskel dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2006, 10h49
  2. [POO] Classe abstraite PHP5 et variables membres
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 01h27
  3. [POO] Débutant en POO, class mysql php5
    Par ouafouaf dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2006, 09h21
  4. [POO] Classe en PHP5
    Par neptune dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2005, 17h55
  5. Réponses: 3
    Dernier message: 19/05/2005, 10h46

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