Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-06-2008 10:29:07

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Pb de performances

Bonjour,

Je viens de finir le backoffice d'un site de vente en ligne et je m'inquiete des perf, car en arrivant juste sur la page de login, la page met 0.30s à s'afficher (en local).
Quelqu'soit la page je ne descend jamais en dessous des 0.30s (0.20s avec zend optimiser)
Pour info j'utilise l'autoload, j'ai essayé de profiler avec xdebug il m'affiche 32ms en culmulative time, ce qui est très lojn de mes 300ms.
Ai je oublié quelquechose avec xdebug?
Avez vous des performances similaires ? ou ai-je vraiment un problème de performance?

Merci d'avance.

http://img300.imageshack.us/img300/706/perfszendki6.jpg

Hors ligne

 

#2 26-06-2008 10:39:11

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

Je vais peut être dire une bêtise, mais cela reste 1/3 de seconde, ce n'est pas énorme non plus...
Et sur des requêtes plus compliquées dans le Back Office tu arrives à des délais plus significatifs ?

Cordialement,

Hors ligne

 

#3 26-06-2008 10:44:28

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Oui quand je fais des formulaires multi-enregistrements (multi insertions par ex) avec zend_form j'arrive bien à 3s dès fois.

Et 1/3s c'est énorme je trouve pour un écran qui ne fais aucune requète hmm
Et c'est pas vraiment les requetes qui me bouffent du temp , par ex, sur une page :

Exécution de 14 requètes en 0.019326686859131 secondes
Temps moyen : 0.0013804776327951 secondes

Dernière modification par sebondus (26-06-2008 10:46:09)

Hors ligne

 

#4 26-06-2008 10:56:34

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: Pb de performances

il m'est arrivé ca sur une page, j'était a 4 sec...

C'était tout simplement une instanciation et des acces à un Zend_Date qui faisait laguer...

Une bonne dose d'optimisation du code et je suis descendu à moins de 1 sec (page lourde tout de meme )

Essaye de faire des debugs du temps écoulé pr afficher la page à différents endroits, tu va vite trouver a mon avis(et apres tu te dira : "Ah ba oui ! " )

Hors ligne

 

#5 26-06-2008 11:03:28

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Bon j'ai fais quelques test, c'est uniquement mon bootstrap qui ralenti tout, le dispatch lui prends 0.10s max

Rien que ça , ça mets 0.15s - 0.20s à être exécuté...

Code:

<?php
// -- Paramètrage de l'environnement
define('ENV',    'dev');        // Développement

// -- Gestion des erreurs
error_reporting(E_ALL);
ini_set('display_error', 'On');
setlocale(LC_ALL, 'fr_FR') ;
date_default_timezone_set('Europe/Paris');

// -- Configuration des chemins par défaut
$include_path[]    = '.';
$include_path[]    = 'lib';
$include_path[]    = 'models';
$include_path[]    = get_include_path();
set_include_path(join(PATH_SEPARATOR, $include_path));

// -- Démarrage de l'autoload
include "Zend/Loader.php";
Zend_Loader::registerAutoload();

// -- Paramétrage de la sécurité
require 'conf/MyAuth.php';
require 'conf/MyAcl.php';
require 'conf/MyDebug.php';

// -- Paramétrage du cache
$frontendOptions = array('automatic_serialization' => true);
$backendOptions  = array('cache_dir'               => '.cache');
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);

$auth    = Zend_Auth::getInstance();        // Authentification
$acl    = new MyAcl($auth);                // Droits d'accès
Zend_Registry::set("ACL", $acl);        // Stockage en registre

// -- Chargement du fichier de configuration
$config = new Zend_Config_Ini('conf/conf.ini', strtolower(ENV));

// -- Paramétrage de la localisation et des langues
if(!$translate = $cache->load('translate')) 
{
    $translate    = new Zend_Translate('gettext', 'language/fr.mo', 'fr');
    $cache->save($translate,'translate');
}
if(!$translate_err = $cache->load('translate_err')) 
{
    $translate_err    = new Zend_Translate('array', 'language/errors_fr.php', 'fr');
    $cache->save($translate_err,'translate_err');
}    
Zend_Registry::set('TRANSLATE', $translate);    // Stockage en registre
Zend_Registry::set('TRANSLATE_ERRORS', $translate_err);    // Stockage en registre

// -- Paramétrage de la base de données
$db = MyZend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('DB', $db);

// -- Paramètrage des journaux de log
$logger = new Zend_Log();
$logger->addWriter(new Zend_Log_Writer_Stream(sprintf($config->log->file, date('Ymd'))));
Zend_Registry::set('LOGGER', $logger);

// -- Initialisation Zend_Layout's MVC helpers
Zend_Layout::startMvc(array('layoutPath' => 'views/layouts'));

// -- Enregistrement des helpers
$view = new MyZend_View(array('translate' => $translate));
$view->setEncoding('UTF-8');
$view->addHelperPath('views/helpers/');
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($view);

// -- Configuration du Contrôleur Zend
$frontController = Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory('controllers');
$frontController->throwExceptions(true);
$frontController->registerPlugin(new MyAuth($auth, $acl));
$frontController->registerPlugin(new MyDebug($benchmark));
$frontController->setParam('auth', $auth);

// EXECUTION DE L'APPLICATION
try    
{    
    // Aiguillage vers le contrôleur    
    $frontController->dispatch();
}
catch (Exception $e)        // Récupération de toute exception
{ 
    
}

Que pourrais-je faire pour améliorer tout ça?

Dernière modification par sebondus (26-06-2008 14:56:40)

Hors ligne

 

#6 26-06-2008 11:11:49

sballeste
Nouveau membre
Date d'inscription: 16-06-2008
Messages: 3

Re: Pb de performances

Bonjour,

As-tu essayé un booster comme xcache ?

Hors ligne

 

#7 26-06-2008 11:15:01

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Tu me conseilles quoi avant de me lancer ? xcache?
EDIT: si j'utilise zend_optimiser

Dernière modification par sebondus (26-06-2008 11:17:45)

Hors ligne

 

#8 26-06-2008 11:18:14

sballeste
Nouveau membre
Date d'inscription: 16-06-2008
Messages: 3

Re: Pb de performances

On l'a installé ces jours-ci sur nos serveurs de prods pour améliorer le load average (uptime) lors des pointes de traffic, je n'ai pas de recul mais ça peut déjà aider.

Hors ligne

 

#9 26-06-2008 11:34:46

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

Sebondus,

j'ai fait quelques tests sur la différence entre le Zend_Autoloader et require_once dans le bootstrap, rien de notable réellement sad

Pour info (wamp + zf 1.5.2):
[RECHARGEMENT SIMPLE DE LA PAGE - Lancé 10 fois]
Moyennes des 'require_once'
65,07 ms

Moyennes des 'autoload'
65,04 ms

[VIDAGE DU CACHE + RECHARGEMENT DE LA PAGE - Lancé 10 fois]
Moyennes des 'require_once'
63,13 ms

Moyennes des 'autoload'
68,69 ms

Voilà, rien de flagrant en tout cas...

Hors ligne

 

#10 26-06-2008 11:41:34

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Je viens de tester xcache, j'ai de meilleures perfs avec zend_optimiser.

Hors ligne

 

#11 26-06-2008 11:57:24

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: Pb de performances

Sinon, essaie de tester ton site sans utiliser les Acls... Je n'ai pas l'impression que tu mets en cache/session les éléments qui pourraient se charger qu'une fois durant la session d'un utilisateur.

Hors ligne

 

#12 26-06-2008 11:58:59

sballeste
Nouveau membre
Date d'inscription: 16-06-2008
Messages: 3

Re: Pb de performances

Hors ligne

 

#13 26-06-2008 13:46:49

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Pb de performances

Attention, un bench sous Windows n'est pas représentatif.

As tu essayé ton bench sous Linux ?

Essaye des outils comme Vallgrind ou CallGrind sous Linux, mais attention, c'est du bas niveau ....

Hors ligne

 

#14 26-06-2008 13:48:17

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

sballeste a écrit:

Tu peux tester d'autres outils : PHP Accelerators : APC vs Zend vs XCache with Zend Framework

J'ai pas testé mais en tout cas cette article est puant.
On ne connait pas du tout sa procédure de test, ses résultats ne veulent rien dire.

whitespirit a écrit:

Sinon, essaie de tester ton site sans utiliser les Acls... Je n'ai pas l'impression que tu mets en cache/session les éléments qui pourraient se charger qu'une fois durant la session d'un utilisateur.

En effet, si j'ai bien compris les ACL on les fout en session.
Par contre je vois pas trop comment mettre le reste de mon bootstrap en cache.

EDIT: j'ai déja mis les traductions en cache mais bon ce que je gagne est ridicule .. (0.02s à 0.03s)

Code:

// -- Paramétrage de la localisation et des langues
if(!$translate = $cache->load('translate')) 
{
    $translate    = new Zend_Translate('gettext', 'language/fr.mo', 'fr');
    $cache->save($translate,'translate');
}
if(!$translate_err = $cache->load('translate_err')) 
{
    $translate_err    = new Zend_Translate('array', 'language/errors_fr.php', 'fr');
    $cache->save($translate_err,'translate_err');
}

Julien a écrit:

Attention, un bench sous Windows n'est pas représentatif.

As tu essayé ton bench sous Linux ?

Essaye des outils comme Vallgrind ou CallGrind sous Linux, mais attention, c'est du bas niveau ....

Non étant donné que le serveur ou sera hébergée l'appli sera sous windows.

Dernière modification par sebondus (26-06-2008 14:04:18)

Hors ligne

 

#15 26-06-2008 14:18:21

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Pb de performances

Bonjour sebondus,

si tu as une install de wamp c'est facile d'y ajouter APC car il suffit juste de selectionner l'extension (php_apc)

Il faut savoir que php commence par parser le source puis de le transformer en byte code. Ce qui rend le zend framework gourmand si on n'utilise pas de cache d' "opcode".

Fait un test vite fait ca te prendra pas longtemps.

Hors ligne

 

#16 26-06-2008 14:25:27

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

@ichevc02 : quel version de wamp utilises tu ? Moi je n'ai pas APC dans la liste de mes extensions.

http://www.itanea.com/images/extension_php_apc.png


Il faut la rajouter manuellement je suppose ?

Dernière modification par elkolonel (26-06-2008 14:25:50)

Hors ligne

 

#17 26-06-2008 14:29:34

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Pb de performances

j'utilise wamp 2.0.

Apc apparait bien dans mon menu déroulant des extensions.

Dernière modification par ichevc02 (26-06-2008 14:34:38)

Hors ligne

 

#18 26-06-2008 14:32:09

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Je viens de tester, j'ai rien de mieux qu'avec zend_optimiser.
Xcache et APC donnent les mêmes résultats à peu pret, zned_optimiser fais mieux que les deux autres.

Dernière modification par sebondus (26-06-2008 14:32:58)

Hors ligne

 

#19 26-06-2008 14:43:29

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

ichevc02 a écrit:

j'utilise wamp 2.0.

Apc apparait bien dans mon menu déroulant des extensions.

Ok, je regarderai pourquoi moi je n'ai pas droit à mon dessert smile !

Hors ligne

 

#20 26-06-2008 14:44:43

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

sebondus a écrit:

Je viens de tester, j'ai rien de mieux qu'avec zend_optimiser.
Xcache et APC donnent les mêmes résultats à peu pret, zned_optimiser fais mieux que les deux autres.

Donc, qu'est ce que cela signifie ? Doit on en conclure que développer une application avec Zend Framework la rend très lente ?
Quelqu'un a des retours sur la vitesse de traitement / affichage sur de grosses applications développées avec le ZF ?

Dernière modification par elkolonel (26-06-2008 14:45:04)

Hors ligne

 

#21 26-06-2008 14:48:34

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Non c'est pas que c'est lent, Zend_form est lent c'est sur, mais c'est juste que le temps minimum de chargement d'une page qui est assez élevé.
Mais si on a des pages vraiment lourdes, on fait pas la différence par rapport à la même page codée sans ZF.

Mais bon, je sais pas comment ça tourne chez vous ??? Combien de temps mets l'initialisation dans le bootstrap chez vous? (J'en suis à 0.18s minimum)

Dernière modification par sebondus (26-06-2008 14:51:29)

Hors ligne

 

#22 26-06-2008 14:55:19

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: Pb de performances

Moi j'ai une moyenne autour de 115ms... mais il est moins chargé que le tiens !

Hors ligne

 

#23 05-12-2008 19:46:55

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: Pb de performances

Je suis pour l'optimisation du code... smile

Exemple :

Dans une liste, j'affichais 20 lignes et pour chacune de ces lignes je faisais 2 instanciations de Zend_Date pour générer des formats différents. Résultats, ma page se chargeait en 4.19 secondes. Ensuite, j'ai supprimé ces instanciations, la page se charge en ~600ms.

Visiblement Zend_Date est ultra consommateur en temps d'exécution. A éviter donc...


Quelques tutoriaux Zend Framework !

Hors ligne

 

#24 10-12-2008 10:34:14

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Pb de performances

Pour info, mes problemes vont beaucoup mieux depuis que j'ai :

Réglé l'include path par ordre d'importance :
    - lib en premier
    - models
    - .

Avant j'avais fais l'inverse hmm

Puis comme j'ai activé l'autoload, j'ai aussi commenté tous les "require_once" du Framework.

Franchement la différence de perfs est bluffante big_smile

Dernière modification par sebondus (10-12-2008 12:13:02)

Hors ligne

 

#25 10-12-2008 10:48:54

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Pb de performances

C'est utile de mettre . ??


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages