bonjour,
J'ai créé une application Windows Forms.
Lorsque j'exécute le .exe, cela commence par une Sub Main dans laquelle, je réalise un certain nombre de tâche d'initialisation, puis dans laquelle je lance le formulaire principal par un code du genre :
La première instruction de cet extrait de code a pour effet d'exécuter le module FormPrincipal.designer.vb qui est généré automatiquement par l'IDE lors de la conception du formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2f = new FormPrincipal SplasScreen.close
Mon formulaire comporte pas mal de choses sans être, en apparence tout au moins, excessivement complexe : 3 DTG, 3 ou 4 container, 2 groupbox, des barres de navigations et 2 ou 3 barres d'outil.
Constatant que la séquence de démarrage (= temps écoulé entre le moment où je lance le .exe, et le moment où FormPrincipal apparaît complètement) est assez longue (8s à 20 s selon les ordinateurs testés), j'ai voulu mesurer le temps d'exécution de chacune des procédures et fonctions sollicitées pendant cette séquence.
J'ai donc créé un petit code qui génère un fichier log.text. Au début de chaque procédure ou fonction appelée, je mémorise dans ce log le nom de la dite procédure ou fonction et la durée écoulée depuis la précédente fonction ou procédure.
J'ai ainsi pu mettre en évidence que c'est l'instruction f = new FormPrincipal qui rame. En effet, ma séquence de démarrage (que je considère complète lors que mon log fait apparaître la procédure FormPrincipal_Activated) fait à peu près 8 secondes dont 7,5 s rien que pour cette instruction.
Comme je l'ai indiqué plus haut, cette instruction a pour effet d'exécuter le module FormPrincipal.designer.vb. C'est donc bien ce module qu'il faut que j'optimise.
J'ai bien réfléchi à distinguer dans ce formulaire les composants dont j'ai vraiment besoin au premier affichage de ceux qui n'ont pas besoin d'être chargés dès le début et à charger ces derniers lorsque j'en ai vraiment besoin. Mais je n'ai trouvé que 2 composants répondant à ce critère. Il s'agit d'un DTG et d'un GroupBox qui sont "masqués" dans le formulaire et qui sont démasqués si je clique sur un certain bouton. Je doute que ces 2 seuls composants change significativement la durée de chargement. Qu'en pensez-vous ?
Connaissez-vous d'autres astuces ou pistes d'investigation pour optimiser un fichier .designer.vb ?
Partager