Kourance Posté 14 Mai 2010 Posté 14 Mai 2010 Bonjour à tous, Je galère avec le support ovh sur un point bloquant pour passer en php5 (sur un mutu). Le problème identifié (non présent en php4) : La fonction preg_replace retourne null lorsque je veux traiter une chaine d'environ 250 000 caractères avec un motif qui en fait plus de la moitié. Il n'y a pas de problème lorsque la chaine et le motif sont plus courts. D'où ma question, quelles sont les limites du point de vue serveur pour ce type de fonction (connue pour être assez gourmande en ressources) ? Merci d'avance.
Kourance Posté 14 Mai 2010 Auteur Posté 14 Mai 2010 Après m'être un peu énervé avec le support et avoir écrit à Octave, ca a un peu avancé en y passant l'après midi, depuis un mois que ca traine. L'explication est ici : http://www.pelagodesign.com/blog/2008/01/25/wtf-preg_replace-returns-null/ Maintenant qu'on connait la cause, reste à voir comment on traite le problème...
jcaron Posté 14 Mai 2010 Posté 14 Mai 2010 Sérieusement, je ne vois pas bien ce que tu peux reprocher à OVH, là. Une regex de 125K, ce n'est plus une regex, c'est une abérration. Comment est-ce-que tu peux avoir besoin d'une telle regex, et de quoi peut-elle bien être composée? Jacques.
Kourance Posté 14 Mai 2010 Auteur Posté 14 Mai 2010 (modifié) En quoi est-ce une aberration ? Le moteur de template smarty fait des preg_replace sur le code source de la page complète avant l'affichage, pour peu qu'il y ait du code javascript comme du Google map avec des dizaines/centaines de marqueurs, ca va très vite en taille. Pour une aberration, ca fonctionne très bien en php4 sur les mutus ovh. Edit : je viens de faire le test avec une page de 1700 Ko (2900 marqueurs ggmaps) et ce n'est pas ovh qui limite mais mon navigateur qui met un peu de temps à exécuter le javascript. Modifié 14 Mai 2010 par deskiller
jcaron Posté 14 Mai 2010 Posté 14 Mai 2010 Faire des preg_replace n'est pas spécialement un problème. Faire des preg_replace avec des regex de plus de 100 Ko, c'est comme faire une requête SQL qui fait 1 seq scan sur une table de 100 Mo à chaque affichage de page. Quel rapport entre du code JS et une regex? Je plains ceux qui sont sur le même serveur que toi... Jacques.
Kourance Posté 16 Mai 2010 Auteur Posté 16 Mai 2010 Il n'y a aucune volonté de faire tomber le serveur et les requêtes de ce type sont rares. C'est dommage et ca limite rapidement l'utilisation de smarty (http://www.smarty.net/). Il va me falloir regarder comment est construite la v3 en préparation.
Leonick Posté 17 Mai 2010 Posté 17 Mai 2010 Le moteur de template smarty fait des preg_replace sur le code source de la page complète avant l'affichage, pour peu qu'il y ait du code javascript comme du Google map avec des dizaines/centaines de marqueurs, ca va très vite en taille.ça serait quand même plus efficient d'avoir les scripts js en externe, tout comme les css
Dadou Posté 17 Mai 2010 Posté 17 Mai 2010 Il serait surtout plus efficace de ne pas utiliser smarty qui est une vrai usine à gaz
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant