cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009
-
2 oct. 2006 à 17:48
cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009
-
3 oct. 2006 à 12:58
Bonjour,
je connais assez mal les regex et je cherche un moyen d'optimiser cette requete :
Regex post_quote = new Regex(@"<textarea.*>(?<texte>.*)</textarea>", RegexOptions.Singleline);
Match_post_quote = post_quote.Match(work);
Actuellement pour faire juste ca, j'en ai pour 10 secondes... c'est un peu genant car j'ai ais une 30aine à faire comme ca et très fréquement.
Le texte dans la variable "work" correspond à un fichier HTML d'environ 13ko (environ 50 000 caractères) et la petite partie qu'il faut recuperer correspond à ca par exemple :
<td colspan="9">
<textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">hqghrkghksh
thjygjgf
tfjgykjgu
k
</textarea>
</td>
Vous auriez une idée pour optimiser ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 2 oct. 2006 à 18:46
Je ne suis pas un grand connaisseur non plus, mais en attendant qu'un connaisseur te donnes une bonne réponse, tu peux peut-être commencer par faire un RegexOptions.Compiled ce qui devrait augmenter la vitesse d'exécution... (si t'as un gain, tu pourrais me dire de combien? Je suis intéressé de savoir ).
cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009 3 oct. 2006 à 12:35
Merci bien. Avec ca j'ai gagné une reduction par presque deux du temps d'execution... c'est tout de même pas négligeable.
Mais si jamais quelqu'un a une autre astuce en plus je veux bien. Je me suis appercu dans un même temps que selon la taille des pages, le temps d'execution pouvait jusque quintupler.
Pour vous apporter même un peu plus de precision, il s'agit d'une page d'un forum phpbb que je parse pour recuperer simplement le "quote" (je sais pas si vous voyez ce que je veux dire ...). Donc si vous voyez une astuce...
ps: je vais essayer de faire un split juste avant pour voir si je gagne un peu de temps.
cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009 3 oct. 2006 à 12:58
J'avais oublié que la fonction split ne correspondait pas du tout à ca mais j'ai gardé l'idée pour décomposer en deux requetes :
Regex pre_post_quote = new Regex(@"(?.*)</textarea>", RegexOptions.Compiled|RegexOptions.Singleline);
Regex post_quote = new Regex(@"<textarea.*>(?<texte>.*)", RegexOptions.Compiled|RegexOptions.Singleline);
Pour tout dire je suis assez etonné que cela fonctionne... mais j'ai un temps d'execusion de 35 ms pour la première et 15 ms pour les suivantes.
Je testerai bien quand j'aurai le temps si le problème ne venait pas de "<textarea.*>" mais vu que j'ai pas trop le temps et que c'est totalement acceptable, je vais garder ca comme ca pour le moment :)