Optimiser les fichiers PHP require ou include

Topsitemaker

WRInaute impliqué
Bonjour à tous,

Voilà une question pour les bidouilleurs du dimanche (et de la semaine aussi)

j'appelle dans mon fichier PHP avec une dizaine de require();, ce sont fichiers de fonctions, classes...

j'ai calculé que pour exécuter ces "require", il faut environ 0.045 s

j'ai eu l'idée de fusionner tous ces "require" dans un seul fichier require qui pèse environ les 700 Ko

malheureusement j'obtient toujours le même temps environ 0.045 s

Auriez-vous des idées pour raccourcir ce temps ? (mis à part écrémer les fichiers manuellement)
 

spout

WRInaute accro
- En déclarant les classes juste où c'est nécessaire, donc l'idée de fusionner c'est peut-être pas la meilleure.
- Avec du cache d'opcode : APC ?
 

Bigb06

WRInaute impliqué
Je ne sais pas si c'est efficace en terme d'accès, mais perso j'utilise le chargement dynamique comme spout le préconise:
Code:
// chargement automatique des classes
 function __autoload($class_name) {
    require_once dirname(__FILE__).'/'.$class_name . '.php';
}
 

Topsitemaker

WRInaute impliqué
Je ne connaissais pas __autoload, intéressant mais ne vas surement pas résoudre le problème de chargement, il doit tester la présence du fichier avant, et j'ai besoin de quasiment toutes mes classes.

Je vais aller de voir du coté de l'APC.
 

mrPringle

WRInaute occasionnel
Si tu as une grosse appli, il n'y a pas de miracle hormis le cache opcode comme cité ci-dessus.

Il y a aussi Zend Optimizer / Guard mais c'est payant et je ne suis pas certains que le rapport gain en perfs / coût soit valable.
 

Topsitemaker

WRInaute impliqué
Bonjour,

Merci Spout,
en effet j'ai pu descendre à 0.004s pour la dizaine de require, et d'après ce que j'ai compris j'ai encore un peu de la marge en tunant.
 

Topsitemaker

WRInaute impliqué
l'APC me fout le Dawa en mode CLI

j'ai un affreux "Erreur de segmentation" avec un code retour 139, lorsque je lance n'importe quel script php en ligne de commande.

Il y a un remède à ça ?
 

Topsitemaker

WRInaute impliqué
quand je lance le script, ça m'indique juste "erreur de segmentation"
Je fais echo $?
ça donne 139
je n'ai pas plus d'infos.
En tout cas, tous les scripts PHP en CLI ne plantent pas, c'est déjà ça,
faut maintenant trouver le truc qu'il ne digère pas
 

Topsitemaker

WRInaute impliqué
Bonjour,

rien que le fait de lancer php, ça fait "erreur de segmentation"
lorsque le script PHP est lancé avec la cron, aucun problème.

Vous avez des pistes ?
 

Discussions similaires

Haut