Smartforms : optimisation du temps de chargement des formulaires

Pour améliorer les temps de chargement des smartforms, vous avez des solutions applicatives souvent méconnues et des solutions d’optimisation au niveau de votre infrastructure. Nous allons donc dans un 1er temps voir comment optimiser les règles à l’initialisation du formulaire, puis ensuite quels paramètres peuvent être modifiés côté IIS pour jouer sur les performances d’exécution.

Optimisation des règles à l’initialisation

Avant d’attaquer l’optimisation, je vous conseille de lire le très bon article Types d’exécution des règles smartforms.

Lorsque vous créez des formulaires, dans les événements d’initialisation (form is initializing et form is initialized) :

  • Des actions se créent automatiquement, notamment les “populate” lorsque vous insérez des vues de type liste. Il est judicieux de faire une relecture de ces actions, et de supprimer celles dont n’avez pas besoin.
  • Les actions créées automatiquement (et celles que vous avez créées) sont précédées par défaut par le mot then, ce qui signifie qu’elles s’enchaînent les unes après les autres :

 

descriptif

 

Deux cas d’optimisation se présentent alors :

  • Si ces actions sont indépendantes entre elles, changez le mot then en and, ainsi elles se lanceront simultanément.

 

descriptif

 

  • Si ces actions sont indépendantes entre elles ET du bloc d’actions suivant, changez les mot then en asynchronously, ainsi elles se lanceront simultanément et le bloc suivant sera exécuté dans la foulée.

 

descriptif

 

Il s’agit de petites choses mais qui peuvent avoir un impact fort, il peut arriver qu’il y ait plusieurs dizaines de règles lors de l’initialisation et qui par défaut vont s’exécuter les unes à la suite des autres. Et bien évidemment, nous avons assez peu l’habitude de modifier une configuration qui est créée par défaut et qui fonctionne.

Modification des paramètres de l’application Pool sous IIS

Avant de regarder les paramètres des applications pools, il est important de souligner que, lors de l’installation du serveur K2, l’URL /Runtime doit avoir sa propre application pool (souvent appelée par défaut “K2 Runtime”).

Lorsque vous éditez les paramètres avancés de cette app pool, dans la partie Process Model, vous remarquerez que le paramètre Maximum Worker Process est fixé à 1 :

 

descriptif

 

Cela signifie qu’un seul process w3wp.exe gère cette app pool :

 

descriptif

 

Il est possible d’augmenter ce paramètre (essayez 7 par exemple) pour permettre à l’app pool “K2 Runtime” d’exploiter les ressources de plusieurs w3wp.exe (ici 3 process) :

 

descriptif

 

Pour information, la gestion de plusieurs w3wp.exe est appelée “web garden“, elle vous permettra d’améliorer les performances de l’app pool “K2 Runtime”, donc le temps de chargement des Smartforms. Cela a un impact sur l’utilisation de la RAM de votre serveur, donc il est nécessaire que ses ressources permettent ces modifications, si ce n’est pas le cas, cela pourrait avoir l’effet inverse à celui escompté. Afin de déterminer l’utilisation optimale des worker processes, je vous invite à les ajouter un à un et à surveiller à chaque ajout l’augmentation de mémoire associée.

Quelques articles inspirants…

qui sont à la source de celui-ci :

jérémie

Consultant Expertise Produit chez K2 France, bloggeur dans la vie privée, et passionné de langues et de voyages. Mon profil LinkedIn

2 thoughts to “Smartforms : optimisation du temps de chargement des formulaires”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.