[spip-dev] Performance du compresseur

Bonjour,

Sur un site en cours de production avec SPIP 2.1.2, avec pas mal de CSS, j’ai systématiquement cette erreur quand j’active la compression CSS :

Fatal error: Maximum execution time of 30 seconds exceeded in /home/refonte/extensions/compresseur/inc/compresseur.php on line 20

L’erreur porte sur la suppression des déclarations vides :
$contenu = preg_replace(",([^{}]*){},Ums"," ",$contenu); // supprimer les declarations vides

Cette optimisation est légitime, mais le cas se produit-il réellement suffisamment souvent par rapport à l’impact en termes de perf ?

Existe-t-il un moyen de tester la performance d’une expression régulière ?

-Nicolas

Sur une css de 121Ko (ça commence a faire…)
le compacteur css prend 220ms sur ma machine en local.
Je veux bien qu’il y ait des ecarts entre machine, mais il y a 2 ordres de grandeur d’ecart là.
Je pense que ce n’est pas le compactage des css en soi qui casse, mais peut etre as-tu des css compliquées et dynamiques qui sont longues à calculer. Après le hi casse au moment du compactage.
Ou alors ta css pose en effet un probleme sur une des regexp, mais pour le tester il me la faudrait.

Cédric

tu peux tester
http://zone.spip.org/trac/spip-zone/changeset/42360
par acquis de conscience ou même supprimer cette regexp.
Confirme moi si cela change quelque chose (ou non)

Cédric

2010/11/16 cedric.morin@yterium.com <cedric.morin@yterium.com>

tu peux tester
http://zone.spip.org/trac/spip-zone/changeset/42360
par acquis de conscience ou même supprimer cette regexp.
Confirme moi si cela change quelque chose (ou non)

Cela change effectivement, je n’ai plus l’erreur. Il faudrait sans doute tenter un test avec plein d’itérations des deux variantes pour comparer, mais là ça marche.

Merci.

2010/11/16 cedric.morin@yterium.com <cedric.morin@yterium.com>

Sur une css de 121Ko (ça commence a faire…)

Je suis à 293 Ko de CSS.

Et du coup je m’intéresse à la raison de ce cas étrange, et je trouve une fonte woff encodée en base64 et intégrée en data URI…

Gros fail, je vais virer ça et je reteste avec l’ancien code du compresseur.

2010/11/16 Nicolas Hoizey <nicolas@hoizey.com>

2010/11/16 cedric.morin@yterium.com <cedric.morin@yterium.com>

Sur une css de 121Ko (ça commence a faire…)

Je suis à 293 Ko de CSS.

Et du coup je m’intéresse à la raison de ce cas étrange, et je trouve une fonte woff encodée en base64 et intégrée en data URI…

Gros fail, je vais virer ça et je reteste avec l’ancien code du compresseur.

C’était bien ça, l’ancien code sans « \s » fonctionne très bien si je n’ai pas la fonte woff en data URI…

2010/11/16 Martin Arnaud <parisbeyrouth@gmail.com>