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 ?
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.
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.