J'ai fait plusieurs tests en utilisant des librairies différentes pour les transformations XSL :
- Altova (que nous utilisons déjà)
- MSXML,
- SAXON
Dans tous les cas la transformation est plus lente en service qu'en client lourd.
Pour un peu plus d'info, le contenu XML, XSL, et le XML transformé ne sont pas dans des fichiers mais dans des variables (et sont créés dynamiquement) donc directement en mémoire. Aucun fichier que se soit XML ou XSL n'est chargé donc pas de différences d'accès disque.
La durée de la transformation est calculée à l'aide de la fonction GetTickCount qui renvoi le nombre de millisecondes depuis le démarrage de la machine. La fonction est appelée avant et après la transformation, la durée est donc la différence des 2. Cette fonction est appelée juste avant et juste après la ligne de code qui transforme donc les conditions d'exécution sont les mêmes car il n'y a qu'une ligne de code.
Après je pense que la fonction qui transforme le XML à l'aide d'un XSL doit être assez complexe et doit créer des instances d'objets en mémoire malheureusement il m'est impossible d'avoir le contenu des fonctions qui sont dans des librairies propriétaires (sauf SAXON).
Est-ce que la création des objets ou les accès mémoires peuvent être plus long en service ? Cela reste pour l'instant un mystère...
Cela reste pour l'instant un mystère...
Partager