Aller au contenu

Les limites serveur du preg_replace


Sujets conseillés

Posté

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.

Posté

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.

Posté (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é par deskiller
Posté

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.

Posté

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.

Posté
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
Posté

Il serait surtout plus efficace de ne pas utiliser smarty qui est une vrai usine à gaz

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...