JeuWeb - Crée ton jeu par navigateur
optimisation des include en PHP ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : optimisation des include en PHP ? (/showthread.php?tid=6257)

Pages : 1 2


RE: optimisation des include en PHP ? - niahoo - 14-07-2012

(13-07-2012, 02:43 PM)php_addict a écrit : Bonjour

pour mon projet je suis passé en contrôleur frontal MVC (procédural)

par sécurité j'inclus toutes les librairies, fonctions, etc au début de mon contrôleur basiquement tel que:

include('rep/fichier1.php')
include('rep/fichier2.php')
include('rep/fichier3.php')

une 60aine d'include donc qui prends pas mal de temps: 50ms sur mon pc et 100ms sur mon dédié avec APC cache opcode

j'ai testé tout un tas de truc et je n'arrive pas à réduire le temps de chargement des include

auriez-vous une idée? car 100ms c'est quand même bien long...

Quoi que tu fasses, que ce soit un autoload ou autre système, si ton code à besoin des ces 60 includes, alors ils seront faits. C'est logique et immuable, si tu as besoin du contenu de 60 fichiers il faut bien les inclure, non ?

Donc quoi que tu fasses, tes 100ms tu en as besoin, tu ne peux pas les réduire...

Donc tu te compliques pour rien.

Par contre, ça m'étonnerait que ton controlleur appelle des fonctions réparties dans 60 fichiers. Disons plutot que ton controlleur appelle des fontions réparties dans X fichiers, qui elle-mêmes appellent des fonctions réparties dans X^n fichiers, ce qui au final fait 60.

Donc si tu veux faire du procédural pur, fous des require_once dans les tous les fichiers qui appellent du code d'autres fichiers, de sorte que ton controlleur ne fasse de require que sur les X dont tu te sers directement. ce sera plus logique, plus facile à maintenir, et plus lent, hélàs. Maisça vaut le coup. dans tous les cas tes 100ms sont nécessaires.

la seule solution pour accélérer les includes c'est de modifier la façon dont PHP s'exécute, avec par exemple la solution que te propose Sephi. ça réduira également le parsing des fichiers qui, je pense et je peux me tromper, compte énormément dans le calcul des 100ms, plus que l'accès au disque.

Par contre, si tu inclus bourrinement tes 60 fichiers dans chaque controlleur pour n'en utiliser que les trois quarts, alors effectivement, utilises un système de chargement du code comme ça t'a été proposé.

Mais si ton réel problème est le temps de chargement (ouvrir fichier, parser fichier), réfléchis deux secondes, est-ce que le code à quoi que ce soit à voir avec ça ? non.


RE: optimisation des include en PHP ? - Akira777 - 14-07-2012

niahoo, pour sûr, je vois pas vraiment quoi faire de mieux...

Mis à part une solution de barbare : Si tu as un dédié, installe un serveur HipHop et compile tes libs en C++
Documentation sur GitHub : https://github.com/facebook/hiphop-php/

Ps : Je décline toute responsabilité quant à toute cette barbarie, mais pour avoir co-travaillé sur un projet -non mis en production pour le moment- utilisant HipHop, autant le dire de suite, le gain en performance est carrément hallucinant, PHP en mode cocaïne xD


RE: optimisation des include en PHP ? - php_addict - 14-07-2012

(14-07-2012, 01:06 AM)niahoo a écrit : Par contre, si tu inclus bourrinement tes 60 fichiers dans chaque controlleur pour n'en utiliser que les trois quarts, alors effectivement, utilises un système de chargement du code comme ça t'a été proposé.

oui effectivement je ne vais inclure que le vital dans le contrôleur frontal et le reste dans les sous-contrôleurs suivant les besoins...c'est plus chiant mais c'est mieux...

(14-07-2012, 01:13 PM)Akira777 a écrit : Mis à part une solution de barbare : Si tu as un dédié, installe un serveur HipHop et compile tes libs en C++
Documentation sur GitHub : https://github.com/facebook/hiphop-php/

oui je connaissais, est ce que cela n'est pas trop galère à installer/configurer ?
y a t il des conflits entre hiphop et apc cache opcode?


RE: optimisation des include en PHP ? - Sephi-Chan - 14-07-2012

T'es-tu intéressé à ce que j'ai proposé avant d'utiliser un bazooka pour tuer ta mouche ?


RE: optimisation des include en PHP ? - php_addict - 14-07-2012

(14-07-2012, 03:23 PM)Sephi-Chan a écrit : T'es-tu intéressé à ce que j'ai proposé avant d'utiliser un bazooka pour tuer ta mouche ?

Je suppose que tu devrais servir ton jeu via un système basé sur des workers (comme PHP FPM) plutôt qu'avec mod_php. Cela permettrait à ces workers de charger tout ce dont tu as besoin à l'avance, et ainsi optimiser le temps de réponse.

Wink le hic c'est que je ne comprends absolument pas de quoi il est question: les termes workers, fast process management et sapi me sont totalement incompréhensibles :$



RE: optimisation des include en PHP ? - Sephi-Chan - 14-07-2012

Je pense qu'avant de songer à utiliser des outils très spéciaux comme HipHop, tu devrais t'intéresser au fonctionnement d'un serveur Web et à l'architecture de déploiement de ton application (ici, CGI via mod_php ou FastCGI via PHP-FPM).


RE: optimisation des include en PHP ? - srm - 14-07-2012

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md


RE: optimisation des include en PHP ? - php_addict - 14-07-2012

(14-07-2012, 05:20 PM)Sephi-Chan a écrit : tu devrais t'intéresser au fonctionnement d'un serveur Web et à l'architecture de déploiement de ton application (ici, CGI via mod_php ou FastCGI via PHP-FPM).

oulala tout un monde s'offre à moi, j'ai jamais potasser le sujet, galère

une toute petite dernière question:, je viens de me rendre compte que j'a'i mis un htaccess dans mes répertoires pour les protéger mais du coup APC cache opcode n'y a plus accès, grrr...

Code :
deny from all
allow from localhost

y a t il selon vous un moyen de garder ce htaccess et que APC puisse avoir accès au contenu du répertoire? il devrait pourtant car APC est sur mon locaclhost...comprends pas...


Merci une fois de plus pour tout vos conseils et avis !


RE: optimisation des include en PHP ? - Sephi-Chan - 14-07-2012

Je ne comprends pas trop en quoi un htaccess pourrait empêcher l'accès à tes fichiers par PHP. :o