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 :

Bootstrap et performances [PHP 5.2]


Sujet :

Langage PHP

  1. #21
    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
    Autant tout mettre dans un Phar compressé.

  2. #22
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    Autant tout mettre dans un Phar compressé.
    C'est pas équivalent dans le mesure ou tu devras décompresser l'archive avant de parser quand même son contenu. En minifiant, tu évites la décompression et tu ne fais que le parsage.
    Ce qui aurait été très intéressant par contre c'est d'avoir la possibilité de stocker le résultat d'un fichier parsé et de le charger tel quel (un peu comme si le résultat du fichier parsé était assimilé à un fichier compilé ou un truc du genre).

  3. #23
    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
    Citation Envoyé par grunk Voir le message
    Le temps mis part PDO est assez étonnant. Voila ce que ça donne chez moi , sachant que PDO est en plus instancié par Zend_Db :



    En gros 26 ms pour l'instanciation et 4 requêtes , d'où mon étonnement pour tes 50 ms.
    Je viens de faire un profiling chez moi et très clairement ce qui me prend le plus de temps c'est le moteur de template (twig) et du coup je tourne également à une moyenne de 300 ms par page. avec un cache sur le template je suis en moyenne à 80ms.

    Bon après si tes test on été fait sur une machine peut puissante ou php 5.2 ça peut expliquer cette différence.
    Effectivement j'aurais dû préciser:
    1. Environement Windows XP (SP3)
    2. MySQL 5.1
    3. PHP 5.2 (avec Xdebug + Profiling)
    4. Dual Core à 2Ghz (occupé à 15% par la VM et par FireFox )

    J'obtiens de bien meilleures performances avec ma VM sous linux
    Il gèlera en enfer avant que je déploie en prod sous Windows
    Et puis je passe par la loopback 'localhost' au lieu de mettre '127.0.0.1' comme une andouille...

    Je vais te faciliter le travail, j'ai changé la licence en LGPL (donc tu peux rester relax) et pour l'adaptation en PHP 5.2, il te suffit de commenter dans le tableau $noSpaces le T_NS_SEPARATOR qui correspond au séparateur de namespace (PHP 5.3+).
    Normalement tout devrait rouler pour ta version.
    Merci, c'est sympa

    on gagne pas grand chose par rapport a un php_strip_whitespace
    Stealth, je me suis toujours demandé d'où te venait cette aptitude à sortir de ton chapeau toutes les fonctions du manuel Tu te les ai faites graver dans le cerveau ou quoi ?

    Autant tout mettre dans un Phar compressé.
    Je suis pas sûr que ça nous fasse gagner en vitesse...

  4. #24
    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
    Citation Envoyé par rawsrc Voir le message
    C'est pas équivalent dans le mesure ou tu devras décompresser l'archive avant de parser quand même son contenu. En minifiant, tu évites la décompression et tu ne fais que le parsage.
    Ce qui aurait été très intéressant par contre c'est d'avoir la possibilité de stocker le résultat d'un fichier parsé et de le charger tel quel (un peu comme si le résultat du fichier parsé était assimilé à un fichier compilé ou un truc du genre).
    Pas obligatoirement, avec l'extension PHAR tu peux tout à fait faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     include 'phar:///path/to/myphar.phar/file.php';

  5. #25
    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
    Citation Envoyé par rawsrc Voir le message
    C'est pas équivalent dans le mesure ou tu devras décompresser l'archive avant de parser quand même son contenu. En minifiant, tu évites la décompression et tu ne fais que le parsage.
    Ce qui aurait été très intéressant par contre c'est d'avoir la possibilité de stocker le résultat d'un fichier parsé et de le charger tel quel (un peu comme si le résultat du fichier parsé était assimilé à un fichier compilé ou un truc du genre).
    le require_once, décompresse l'archive en direct, le process de tokeninzation n'est pas calculable avec script PHP,
    mais j'avoue que t'as quand même un bon gain avec ton code


    sur ça classe : IniConfiguration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    file_get_contents    : 414
    php_strip_whitespace : 399
    PhpMinifier::minify  : 299
    pour le reste APC est la pour ça puisqu’il fournit l'opcode, tu zappes donc deux étapes

  6. #26
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Je suis bien d'accord sur les inclusions avec phar, mais en terme de performances tu y perds quoi qu'il arrive. A moins de bien gérer phar.cache_list

    Dans tous les cas, on a beau tourner virer autour du pot, on en revient toujours à la même conclusion : à partir d'une certaine charge PHP est lent et il faut lui adjoindre des aides pour tenir des performances honorables.
    Alors ça peut être de la minification, du cache d'opcode, de la compilation (à la volée ou pas) voire même un serveur d'applications... bref tout ce que vous voulez mais l'appareiller devient obligatoire.

  7. #27
    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
    Citation Envoyé par Benjamin Delespierre Voir le message
    Stealth, je me suis toujours demandé d'où te venait cette aptitude à sortir de ton chapeau toutes les fonctions du manuel Tu te les ai faites graver dans le cerveau ou quoi ?

    je te donne mon secret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r(get_defined_functions());
    tu regardes tout des que tu connais pas la fonction tu regardes la doc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $functions = get_defined_functions();
    foreach($functions['internal'] as $function) {
        printf('<a href="http://fr.php.net/manual/fr/function.%s.php">%s</a><br />', str_replace('_', '-', $function), $function);
    }

  8. #28
    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
    Citation Envoyé par rawsrc Voir le message
    Je suis bien d'accord sur les inclusions avec phar, mais en terme de performances tu y perds quoi qu'il arrive. A moins de bien gérer phar.cache_list

    Dans tous les cas, on a beau tourner virer autour du pot, on en revient toujours à la même conclusion : à partir d'une certaine charge PHP est lent et il faut lui adjoindre des aides pour tenir des performances honorables.
    Alors ça peut être de la minification, du cache d'opcode, de la compilation (à la volée ou pas) voire même un serveur d'applications... bref tout ce que vous voulez mais l'appareiller devient obligatoire.
    je suis bien d'accord aussi, pour les appli Symfony2 (qui a quand même pas mal de fichier) le cache d'ocode d'APC est plus que nécessaire, j'ai un bon x2 en terme de chargement de fichier (et fois x3 avec la Mac Mini et son pauvre disque 5400tr)

    Ensuite y'a des chose dynmaque certe mais qui au final sont statique, par exemple : un article de blog, ça sert a rien de faire un appelle a la base alors qui reste pareil, un cache HTTP sur la page est la bienvenue, donc PHP ne sera même pas appelé

    j’attends le livre de Julien Pauli :
    http://www.amazon.fr/Performances-PH.../dp/2212128002

  9. #29
    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
    Citation Envoyé par stealth35 Voir le message
    je te donne mon secret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r(get_defined_functions());
    tu regardes tout des que tu connais pas la fonction tu regardes la doc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $functions = get_defined_functions();
    foreach($functions['internal'] as $function) {
        printf('<a href="http://fr.php.net/manual/fr/function.%s.php">%s</a><br />', str_replace('_', '-', $function), $function);
    }
    Tu viens de me donner une idée !

    je suis bien d'accord aussi, pour les appli Symfony2 (qui a quand même pas mal de fichier) le cache d'ocode d'APC est plus que nécessaire, j'ai un bon x2 en terme de chargement de fichier (et fois x3 avec la Mac Mini et son pauvre disque 5400tr)
    J'aimerai bien mais mon composant à vocation à rester indépendant de toute installation d'exts PECL vu qu'il est déployé principalement sur des hébergements mutualisés.
    Et puis ça ne corrige pas vraiment le problème de fond: le chargement systématique des librairies.

    Je suis en train de me documenter sur les méthodes de cache et de faire quelques benchmarks.
    J'ai par exemple remarqué qu'un unserialize était moins long qu'un include de fichier PHP pour le même volume de données.

  10. #30
    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
    Citation Envoyé par Benjamin Delespierre Voir le message
    Et puis ça ne corrige pas vraiment le problème de fond: le chargement systématique des librairies.
    comme t'as dis rawsrc, fait un fichier avec toute tes classes minifier

  11. #31
    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
    Oui c'est ce que je vais faire je pense

    Je crois qu'on a fait le tour de la question. Je ferme le sujet.

    Au passage, voici l'idée dont je te parlais.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [maintenance][performance] Que faire comme maintenance ?
    Par woodwai dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 06/11/2003, 16h39
  2. Performance xml
    Par MicKCanE dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/07/2003, 07h41
  3. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 17h18
  4. [JDBC][connexion persistante] performances avec JDBC
    Par nawac dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 06/05/2003, 11h37
  5. performance entre 3DS, ase, asc ...
    Par amaury pouly dans le forum OpenGL
    Réponses: 3
    Dernier message: 24/03/2003, 12h41

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