Bonjour à tous,
Je travaille actuellement sur une interface qui permet d'afficher, modifier ou rechercher des résultats dans une base de données.
J'utilise des styles et templates HTML différents en fonction des type de données affichées.
Je trouve que mes pages s'affichent lentement et je suis donc en train de chercher à optimiser mes traitements.
Après avoir fait des tests de performances, je me rends compte que ce qui prend le plus de temps quand je fais un appel à ma page, c'est la génération de l'affichage et non les requêtes en base de données (sachant que je travaille sur des bases importantes).
J'ai lu à plusieurs endroits que l'utilisation des double quotes pour des chaines statiques faisait perdre un temps précieux, j'ai donc remplacé toutes mes doubles quotes par des simples quotes.
J'ai obtenu des fonctions de construction de template php de ce genre :
Et j'affichait dans le contenu dans ma page en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 print_object($object) { $output = '<div>'; if($object->property == 42) $output .= '<span>'.$object->otherProperty.'</span>'; $output .= '<img src="'.$object->imgSrc.'" alt="'.$object->imgAlt.'" />'; $output .= '</div>'; return $output; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo print_object($object);
Là, je dirais que j'arrive à la phase des suppositions, où j'ai testé une modification qui ne semble pas engendrer d’accélérations notables de mon code, et qui m'a poussé à venir sur le forum. Parce qu'à base de suppositions je ne vais pas aller loin.
Déjà, je me suis dis (et peut-être que je me trompe totalement), que les .= sur ma chaîne de caractère, c'était surement lourd au niveau des ré allocations mémoire pour ma chaîne de caractère.
Ce que j'ai essayé, c'est de faire des echo directement à la place.
Donc là, je suis un peu perdu, et j'aimerais savoir qu'est ce qui est le plus efficace pour générer du HTML avec injection de données.
Est ce qu'il faut que je privilégie les gros blocs de texte, que je print directement les résultats ou alors que stocke dans une variable qui sera envoyée plus tard sur la sortie standard ?
Voilà, j'espère avoir été clair.
Merci d'avance
Partager