Nous essayons toujours d'optimiser les scripts de publication sur les espaces MUSL afin qu'ils puissent gérer des comptes contenant plusieurs centaines de partitions. Les délais de traitement ont été réduits à des niveaux acceptables, excepté la génération de toutes les pages de l'espace, qui, pour un compte d'environ 2000 pages, prend entre 3 et 4 minutes. Nous avons déjà fractionné le traitement afin que le script ne soit pas interrompu par un "timeout" coté serveur. En effet, des mécanismes de protection contre les scripts qui boucleraient de manière infinie interdit un traitement de plus de 2 minutes. Reste ensuite à optimiser cette génération. Malheureusement, nous n'avons pas pu installer de "profiler" pour le langage Perl, qui nous permettrait de savoir quelles fonctions prennent le plus de temps. Il faut donc faire un peu au feeling, par exemple en accélérant les traitement des chaines de caractères. La syntaxe du Perl est assez confuse, ce qui rend les mises au point un peu difficiles. Par exemple, on doit écrire parfois des choses comme celles-ci: if($key=~m/^\Q$path\E\/[^\/]+$/) ce qui voudrait dire, en français: "Si le contenu de la variable 'key' est égal au contenu de la variable 'path' suivi d'un '/' suivi d'un ou plusieurs caractères qui ne sont pas des '/', alors..." Puissant et compact, mais carrément illisible. |