J'utilise StringTemplate pour générer des fichiers xml à partir de jeux de données. Parfois, j'ai plus de 100 000 enregistrements dans l'ensemble de données qui est énuméré par une boucle dans un modèle. Ça va très lentement (15-20 secondes par opération) donc la performance n'est pas bonne pour moi.StringTemplate mauvaise performance
Voici un exemple que j'utilise ST pour rendre un rapport:
using (var sw = new StringWriter())
{
st.Write(new StringTemplateWriter(sw));
return sw.ToString();
}
StringTemplateWriter est un simple écrivain classe dérivée de IStringTemplateWriter sans indentation.
Par ailleurs, dans l'écran de débogage, je vois beaucoup de ce message étrange:
"Une première chance exception du type 'antlr.NoViableAltException' a eu lieu dans StringTemplate.DLL"
dans une profonde de debug je trouve qu'il analyse récursivement mon template et si quelque chose échoue (je ne sais pas quoi exactement) il jette une exception NoViableAltException pour retourner d'un profond stack à une surface, donc je suppose que le problème est d'utiliser trop d'essayer -catch-throw.
Google n'a rien trouvé d'utile à ce sujet.
Question principale: comment réduire ce nombre d'exceptions (sauf réécrire le code de ST) et améliorer les performances du rendu de modèle?
merci. mes modèles ne donnent pas d'erreurs lors de l'initialisation (donc ils fonctionnent correctement), mais vous avez probablement raison - le problème est dans une erreur mineure dans les modèles. il est difficile de trouver la raison car il y a beaucoup de modèles. – Genius