Lenteur code vba sur Windows 10
Bonjour.
J'ai développé une application vba distribuée sous forme de Macro complémentaire (xlam) sur Excel, son l'objet est la réalisation de devis complexes. Cette application qui fait 100'000 lignes de code vba tourne depuis plusieurs années, elle a donc été utilisée tout d'abord sur Excel 2003 pour sur toutes les versions intermédiaires jusqu'à Excel 2016. Dans cette application une commande est particulièrement gourmande en temps et j'observe que cette même commande est bien plus lente sur Windows10 que sur Seven Ultimate étant entendu qu'elle tourne sur Office 2016. J'ai donc créé pour l'occasion un fichier devis type et ai affiché les temps de traitement. Pour ce fichier type je constate 24 sec de traitement sur une machine Seven équipée d'Office 365 version 2016. Le temps de traitement sur une machine Windows10 et la même config Office passe à 40 sec !!! Les deux machines disposent de plus de 8 GBytes de mémoire vive et sont tout à fait comparables quant à leur puissance. J'ai aussi fait le test sur une machine virtuelle HyperV // Seven // Office 2016 et je tourne également en 24, 25 secondes. Le fait qu'Outlook soit démarré ou pas impacte ce temps de traitement de façon sensible et cela de façon plus importante sur la machine Windows10 que sur la machine Seven.
Que pouvez-vous me dire sur cette constatation ?
Avez-vous constaté une telle dérive sur Windows10 et si oui comment y avez-vous remédié ?
Comment redonner de la puissance à Excel en environnement Windows10 ?
Autre ?
Vos suggestions, analyses seront les bienvenues
En vous remerciant par avance - Alain
Disponibilité mémoire // Excel 2016 // Utilisation d'un autre langage
Aspect mémoire : J'ai 32 GBytes sur la machine Seven qui fait tourner le code concerné en 24 sec et 24 GBytes sur la machine Windows 10 pro qui elle fait tourner le même code en 40 secondes il est donc fort peu probable que le problème vienne de la mémoire.
Excel 2016 : 24 sec avec Excel 2016 sur Seven et 40 sec avec Excel 2016 sur Windows 10 - pour moi Excel 2016 n'est pas le coupable ou alors c'est le cocktail Excel 2016 + Windows 10 qui ne tourne pas rond.
Utilisation d'un autre langage : oui j'y ai forcément pensé mais cela ne peut pas se faire en un claquement de doigt, loin de la et puis cela obligerait à reprendre de zéro une application complexe bien débuggée, j'estime la tache à environ 1 homme/an sans parler du temps de formation aussi vous comprendrez qu'il y a de quoi hésiter et cela même si on est convaincu du bien fondé de l'entreprise.
Je reste pour le moment sur ma première motivation qui est de tenter de comprendre ce qui ne tourne pas rond dans Windows 10 avec mon code vba. Mon propre code porte certainement une responsabilité, pas trop de doute sur le sujet mais tout de même, multiplier par deux un temps de traitement en passant de Seven à Windows 10 y'a de quoi penser ferme qu'on est pas le seul coupable, non !
Alain