Performances d'Excel 2010 : Améliorations en matière de performances et de limites
Résumé : cet article traite des
améliorations de performances apportées à Microsoft Excel 2010 et
Microsoft Office Excel 2007. Il fait partie d’une série de trois
articles axés sur les techniques à votre disposition pour améliorer les
performances dans Excel lors de la conception et de la création de
feuilles de calcul.
Pour plus d’informations sur la façon d’améliorer les performances dans Excel, voir Performances d'Excel 2010: Amélioration des performances de calcul et Performances d'Excel 2010 : Conseils pour éliminer les obstacles aux performances.
Dernière modification : lundi 11 avril 2011
S’applique à : Excel | Excel 2010 | Office 2010 | SharePoint Server 2010 | VBA
Dans cet article
Améliorations des performances dans Excel 2010
Améliorations des performances dans Excel 2007
Conclusion
À propos des auteurs
Ressources supplémentaires
Sommaire
Les sections suivantes traitent de certaines fonctionnalités introduites dans Excel 2010 et susceptibles d’améliorer les performances.
Améliorations de fonctionnalités
Suite aux commentaires fournis par les utilisateurs d’Excel 2007, des améliorations ont été apportées à plusieurs fonctionnalités d’Excel 2010.
Fonctionnalité |
Amélioration |
---|---|
Impression et mode d’affichage Mise en page |
Afin d’améliorer les performances des interactions utilisateur de base en mode d’affichage Mise en page, telles que l’entrée de données, l’utilisation de formules ou la définition de marges, Excel 2010 met en cache les paramètres d’impression et introduit une optimisation des calculs de rendu. La mise en cache des paramètres d’impression réduit le nombre d’appels réseau et la dépendance envers une imprimante lente ou qui ne répond pas. Par ailleurs, la connexion à l’imprimante est annulable, ce qui permet à l’utilisateur de ne pas avoir à attendre une réponse d’une imprimante lente ou défectueuse. |
Graphiques |
À compter d’Excel 2010, la vitesse d’affichage des graphiques a augmenté, en particulier pour les grands ensembles de données, et les performances d’affichage du texte ont été améliorées. De plus Excel 2010, met en cache une image d’un graphique et utilise la version mise en cache dans la mesure du possible, afin d’éviter tout affichage et calcul inutiles. |
Solutions VBA |
Des améliorations apportées au modèle objet et à la façon dont il interagit avec Excel permettent d’accélérer les performances de nombreuses solutions VBA, comparé à Excel 2007, en cas d’exécution dans Excel 2010. |
Grands ensembles de données et Excel 64 bits
La version 64 bits d’Excel 2010 n’est pas limitée à 2 Go de RAM, contrairement aux applications 32 bits. Par conséquent, la version 64 bits d’Excel 2010 permet aux utilisateurs de créer des classeurs beaucoup plus grands. La version 64 bits de Windows autorise une capacité de mémoire adressable beaucoup plus élevée et la version 64 bits d’Excel est conçue pour tirer partie de cette capacité. Les utilisateurs ont par exemple la possibilité d’insérer des données dans une plus grande partie de la grille que dans les versions précédentes d’Excel. À mesure que de la RAM est ajoutée à l’ordinateur, Excel utilise cette mémoire supplémentaire, autorise l'existence de classeurs de plus en plus grands et s’adapte à la quantité de RAM disponible.
De plus, la version 64 bits d’Excel autorisant des ensembles de données plus grands, les versions 32 bits et 64 bits d’Excel 2010 bénéficient d’améliorations pour les tâches courantes exécutées sur de grands ensembles de données, telles que l’entrée et le remplissage de données, le tri, le filtrage, la copie et le collage de données. L’utilisation de la mémoire est également optimisée dans les versions 32 bits et 64 bits d’Excel.
Pour plus d’informations sur la « grande grille », voir La « grande grille » et l’augmentation des limites dans Excel 2007. Pour plus d’informations sur la version 64 bits d’Office 2010, voir Compatibilité entre les versions 32 bits et 64 bits d’Office 2010.
Formes
Excel 2010 introduit des améliorations sensibles aux performances des graphiques dans Excel. À un niveau élevé, ces améliorations concernent deux domaines : l’évolutivité et l’affichage. Les améliorations en termes d’évolutivité ont un fort impact dans les scénarios Excel en raison du nombre élevé de graphiques contenus dans les feuilles de calcul. Bien souvent, cette quantité élevée de formes est créée accidentellement suite à la copie et au collage de données à partir d’un site Web ou suite à l’exécution d’une automation qui crée des formes mais ne les supprime jamais. Ce nombre élevé de graphiques, combiné à la façon dont les graphiques sont liés à la grille de données dans Excel, présente plusieurs défis uniques en matière de performances. Les améliorations apportées à Excel 2010 accélèrent les performances des feuilles de calcul qui contiennent de nombreuses formes. Par ailleurs, la prise en charge de l’accélération matérielle améliore l’affichage à compter d’Excel 2010. Excel 2010 améliore également les performances de la méthode Select de l’objet Shape dans le modèle objet VBA.
Fonctionnalité |
Amélioration |
---|---|
Utilisation de base |
Le premier ensemble d’améliorations apportées à Excel 2010 concerne les scénarios d’utilisation de base. Il s’agit d’opérations et de fonctionnalités telles que le tri, le filtrage, l’insertion ou le redimensionnement de lignes ou de colonnes, ou encore la fusion de cellules. Lorsque ces opérations se produisent, il peut être nécessaire de mettre à jour la position d’un objet graphique sur la grille. Dans le pire scénario, il faut mettre à jour chaque objet de la feuille de calcul. Dans Excel 2010, les performances de ces scénarios de base sont améliorées, même lorsque la feuille de calcul comporte des milliers d’objets. Ces améliorations n’ont pas été obtenues grâce à une fonctionnalité ou un correctif unique, mais sont le fruit d’une attention particulière visant à accroître les performances grâce à l’amélioration du mécanisme de recherche de forme, à l’exécution de tests de fichiers de contrainte et à l’examen des obstacles. |
Liens de texte |
Un lien de texte sur une forme est créé lorsque l’utilisateur spécifie une formule, par exemple « =A1 », qui définit le texte d’une forme donnée. Ces formes spécifiques étaient susceptibles de provoquer des problèmes de performances sur les feuilles comportant un grand nombre d’objets et/ou lorsque des modifications étaient apportées au contenu des cellules. À compter d’Excel 2010, le suivi et la mise à jour de ces formes par Excel ont été améliorés afin d’optimiser les performances de modification du contenu des cellules. L’entrée d’une nouvelle valeur dans une cellule ou l’exécution d’opérations de modèle objet complexes comptent parmi les scénarios qui tirent profit de ces améliorations. |
Grande grille |
À compter d’Excel 2007, la taille de la grille est passée de 65 000 lignes à plus d’un million de lignes. Cette augmentation a entraîné des problèmes de performances et d’affichage lors de l’utilisation d’objets graphiques dans les nouvelles zones de la grille étendue. À compter d’Excel 2010, Excel optimise la fonctionnalité qui repose sur l’utilisation du coin supérieur gauche de la grille comme origine afin d’améliorer l’expérience lors de l’utilisation de graphiques dans les nouvelles zones de la grille. Les performances et la fidélité de l’affichage ont été améliorées par rapport à Excel 2007. |
Affichage : accélération matérielle |
À compter d’Excel 2010, des améliorations ont été apportées à la plateforme de graphiques grâce à l’ajout de la prise en charge de l’accélération matérielle lors de l’affichage d’objets en 3D. Même si l’unité de traitement graphique (GPU, Graphics Processing Unit) est capable d’afficher ces objets plus rapidement que l’UC, l’expérience dans Excel 2010 dépend du contenu de votre feuille de calcul. Si vous avez une feuille pleine de formes 3D, vous bénéficierez davantage de l’accélération matérielle que si votre feuille de calcul ne comporte que des formes 2D (qui n’exploitent pas la puissance du GPU). |
Améliorations des calculs
À compter d’Excel 2007, les calculs multithread améliorent les performances de calculs. Pour plus d’informations, voir Calculs multithread. À compter d’Excel 2010, des améliorations de performances supplémentaires ont été apportées afin d’accroître davantage la vitesse de calcul. Excel 2010 peut appeler des fonctions définies par l’utilisateur de manière asynchrone. L’appel asynchrone de fonction améliore les performances en autorisant l’exécution simultanée de plusieurs calculs. Lorsque vous exécutez des fonctions définies par l’utilisateur sur un cluster de calcul, le fait d’appeler les fonctions de manière asynchrone permet de pouvoir utiliser plusieurs ordinateurs pour effectuer les calculs. Pour plus d’informations sur les fonctions définies par l’utilisateur asynchrones, voir Fonctions asynchrones définies par l’utilisateur (traduction automatique).
Traitement multicœur
Des efforts supplémentaires ont été investis afin de tirer pleinement parti des processeurs multicœurs et d’améliorer les performances des tâches de routine. À compter d’Excel 2010, les fonctionnalités suivantes utilisent des processeurs multicœurs : enregistrement de fichier, ouverture de fichier, actualisation de tableau croisé dynamique (pour les sources de données externes, à l’exception d’OLAP et SharePoint), le tri de tableau de cellules, le tri de tableau croisé dynamique et le dimensionnement automatique de cellule.
Pour les opérations qui supposent la lecture et le chargement ou l’écriture de données (telles que l’ouverture de fichier, l’enregistrement de fichier ou l’actualisation de données), le fractionnement de l’opération en deux processus accélère les performances. Le premier processus obtient les données et le second les charge dans la structure appropriée en mémoire ou les écrit dans un fichier. De cette manière, dès que le premier processus commence à lire une partie de données, le second processus peut commencer immédiatement à charger ou écrire ces données, tandis que le premier continue de lire la partie de données suivante. Auparavant, le premier processus devait finir de lire toutes les données d’une certaine section pour que le second processus puisse charger cette section en mémoire ou écrire les données dans un fichier.
PowerPivot
PowerPivot est le nom d’une collection d’applications et de services qui fournissent une approche de bout en bout pour la création de solutions d’aide à la décision gérées par l’utilisateur et pilotées par les données dans des classeurs Excel. PowerPivot for Excel est un outil d’analyse de données qui procure une puissance de calcul sans équivalent directement dans Excel. Les utilisateurs peuvent, grâce aux fonctionnalités bien connues d’Excel, transformer avec une rapidité incroyable et à partir de presque n’importe quelle source de grandes quantités de données en informations significatives afin d’obtenir des réponses en quelques secondes.
PowerPivot s’intègre également avec SharePoint. Dans une batterie SharePoint, PowerPivot pour SharePoint est l’ensemble d’applications, services et fonctionnalités côté serveur qui prennent en charge la collaboration d’équipe sur des données d’aide à la décision. SharePoint fournit une plateforme pour la collaboration et le partage de données d’aide à la décision au sein d’une équipe et à l’échelle d’une organisation. Les auteurs et propriétaires de classeurs publient et gèrent les données d’aide à la décision qu’ils développent dans leurs sites SharePoint.
Pour plus d’informations sur PowerPivot, voir PowerPivot Overview.
HPC Services pour Excel 2010
Avec une large gamme de fonctions d’analyse statistique, la prise en charge de la construction d’analyses complexes et une extensibilité étendue, Excel 2010 est l’outil de choix pour l’analyse de données métiers. La valeur des informations générées augmente proportionnellement à la taille des modèles et à la complexité des classeurs. Toutefois, les classeurs plus complexes requièrent également une durée de calcul plus longue. Pour les analyses complexes, il est courant pour les utilisateurs de passer des heures, des jours, voire des semaines à remplir des classeurs aussi complexes.
Une solution consiste à utiliser Windows HPC Server 2008 pour répartir les calculs Excel sur plusieurs nœuds dans un cluster HPC (High-Performance Computing) Windows en parallèle. Il existe trois façons d’exécuter des calculs Excel 2010 dans un cluster Windows HPC Server 2008 : exécuter des classeurs Excel dans un cluster, exécuter des fonctions définies par l’utilisateur Excel dans un cluster et utiliser Excel comme client SOA (Service-Oriented Architecture) de cluster. Pour plus d’informations sur HPC Services pour Excel 2010, voir Accélération d’Excel 2010 avec Windows HPC Server 2008 (éventuellement en anglais)
Les sections suivantes traitent de certaines fonctionnalités introduites dans Excel 2007 et susceptibles d’améliorer les performances.
La « grande grille » et l’augmentation des limites dans Excel 2007
À compter d’Excel 2007, la « grande grille » augmente le nombre maximal de lignes par feuille de calcul, qui passe de 65 536 à plus d’1 million, et le nombre de colonnes, qui passe de 256 (IV) à 16 384 (XFD).
Si vous travaillez avec de grands classeurs, vous avez sans doute observé qu’avec l’augmentation de la capacité mémoire des récentes versions d’Excel vous faisiez face à d’autres limites de spécifications d’Excel plus fréquemment. À compter d’Excel 2007, de nombreuses modifications de ces limites ont été apportées à Excel afin d’accompagner la forte augmentation de la capacité de lignes et de colonnes (certaines de ces augmentations de limites peuvent également affecter sensiblement la vitesse de calcul). Vous trouverez ci-dessous une liste des modifications apportées aux limites dans Excel 2007 :
Fonctionnalité |
Amélioration |
---|---|
Mémoire |
La mémoire utilisable pour les formules et les caches de tableau croisé dynamique est désormais de 2 Go (elle était de 1 Go dans Microsoft Office Excel 2003, 128 Mo dans Microsoft Excel 2002 et 64 Mo dans Microsoft Excel 2000). |
Limites applicables aux recalculs intelligents |
Les dépendances qui activent les recalculs rapides au lieu des calculs complets sont désormais limitées uniquement par la mémoire disponible (auparavant, seules 8000 cellules pouvaient dépendre d’une même zone et 64 000 zones pouvaient avoir des dépendances). |
Formules matricielles |
Les références aux colonnes entières sont désormais autorisées et la limite applicable aux formules matricielles qui font référence à une autre feuille de calcul n’est plus de 65 000, mais égale à la mémoire disponible. |
Tableaux croisés dynamiques |
Le nombre maximal de lignes affichées dans un rapport de tableau croisé dynamique est de 1 million. Le nombre maximal de colonnes affichées dans un rapport de tableau croisé dynamique est de 16 000. Le nombre maximal d’éléments uniques dans un champ de tableau croisé dynamique est de 1 million. Le nombre maximal de champs visibles dans la liste Champs est de 16 000. |
Tri |
Augmentation des niveaux, qui passent de 3 à 64 |
Filtre automatique |
La longueur de liste déroulante passe de 1000 éléments à 10 000 éléments. |
Longueur maximale de formule |
Passe de 1000 à 8000. |
Niveaux d’imbrication de formule |
Passent de 7 à 64. |
Arguments dans une fonction |
Passent de 30 à 255. |
Formats conditionnels par cellule |
Passent de 3 à la mémoire disponible. |
Styles de cellules uniques dans un classeur |
Passent de 4000 à 64 000. |
Couleurs uniques par classeur |
Passent de 56 à 4,3 milliards. |
Caractères dans une cellule pouvant être affichés et imprimés |
Passent à 32 000. |
Calculs multithread
À compter d’Excel 2007, Excel peut répartir les calculs sur plusieurs processeurs ou cœurs. Lorsque Excel charge un classeur, il détermine, à partir du système d’exploitation, le nombre de processeurs disponibles, puis il crée un thread de calcul distinct pour chaque processeur. Ces threads peuvent ensuite s’exécuter en parallèle. L’avantage de ce système est qu’il est évolutif en fonction du nombre de processeurs.
On constate pour la plupart des classeurs une augmentation significative de la vitesse de calcul sur les systèmes comptant plusieurs cœurs. Le degré d’amélioration dépend du nombre d’arborescences de calcul indépendantes que contient le classeur. Si vous créez un classeur contenant une chaîne de formules continue, vous ne constaterez aucun gain de performance en termes de calcul multithread. En revanche, avec un classeur qui contient plusieurs chaînes de formules indépendantes, on observera un gain proche du nombre de processeurs disponibles.
Un test réalisé sur une gamme de classeurs comptant entre 840 000 et 23 000 formules et utilisant Excel sur un système à deux cœurs a permis de démontrer que le facteur d’amélioration suite à l’utilisation du calcul multithread était compris entre 1,9 et 0. L’amélioration la plus sensible concernait les classeurs les plus grands.
En collaboration avec Intel Corporation, Microsoft a mené des tests sur une suite de feuilles de calcul créées par des utilisateurs. Des comparaisons ont été effectuées entre Excel 2007 et Excel 2003. (Une version précommerciale d’Excel 2007 a été utilisée, mais on s’attend à ce que la différence avec la version finale soit négligeable, voire nulle.)
Les résultats relatifs aux durées de calcul ont démontré une amélioration comprise entre 0 et une valeur supérieure à la théorie (2x/4x) sur les systèmes à deux et quatre cœurs. L’amélioration médiane pour un système avec un processeur Intel Pentium 4 à deux cœurs à 3,0 GHz et 1 Go de RAM, comparée au calcul du même fichier dans Excel 2003, était de 48 pour cent, soit une accélération de 1,92x. L’accélération médiane pour un système équipé d’un processeur Xeon à 3,0 GHz et 4 Go de RAM était de 76 pour cent, soit une accélération de 4,17x. Des gains similaires en rapidité ont été observés sur d’autres processeurs et plateformes. Les améliorations supérieures à l’accélération théorique (suite au multithreading) sont attribuées à d’autres améliorations de performances disponibles à compter d’Excel 2007, telles que les améliorations de la rapidité d’exécution des fonctions.
Certaines fonctions Excel ne font pas appel aux calculs multithread. Par exemple :
-
les calculs de tables de données (en revanche, les références structurées aux tableaux utilisent le calcul multithread) ;
-
les fonctions définies par l’utilisateur (en revanche, les fonctions XLL peuvent utiliser le calcul multithread) ;
-
les fonctions XLM ;
-
les fonctions INDIRECT, CELL qui utilisent l’option format2 ou adresse ;
-
GETPIVOTDATA et autres fonctions faisant référence à des tableaux croisés dynamiques ou des cubes ;
-
Range.Calculate et Range.CalculateRowMajorOrder ;
-
les cellules dans des boucles de référence circulaires.
La première fois qu’Excel calcule un classeur sur un ordinateur qui possède plusieurs processeurs, on observe une surcharge pendant qu’Excel examine les dépendances. Par conséquent, l’augmentation maximale des performances s’observe lors des calculs suivants (bien qu’il y ait tout de même une certaine amélioration lors du premier calcul, comparé à l’exécution de la même tâche sur un ordinateur aussi rapide équipé d’un seul processeur).
Cette surcharge apparaît également la première fois que vous calculez un classeur sur un ordinateur possédant davantage de processeurs que celui sur lequel vous avez effectué le dernier enregistrement du classeur. Si vous désactivez le calcul multithread ou que vous exécutez Excel sur un système équipé d’un seul processeur, la fonctionnalité de calcul multithread ne génère aucun gain ni aucune perte de performance. Vous pouvez utiliser le calcul multithread dans Excel, même en mode de compatibilité, et les informations stockées par le calcul peuvent être réutilisées même après que le classeur a été calculé et enregistré à l’aide d’une version antérieure d’Excel.

Vous pouvez spécifier manuellement le nombre de threads à exécuter simultanément. Ce nombre peut être supérieur au nombre de processeurs sur l’ordinateur. Ceci est utile si, par exemple, vous avez des fonctions XLL définies par l’utilisateur qui dépendent d’appels externes de longue durée à un serveur de bases de données. Si ce dernier peut traiter plusieurs demandes en parallèle, il est possible d’utiliser le multithreading même sur un système à processeur unique.
Pour contrôler les options de calcul multithread, cliquez sur l’onglet Fichier, puis sur Options. Dans la boîte de dialogue Options Excel, cliquez sur Avancé. Sous la section Formules, définissez les options de calcul multithread.
Limites et augmentation de la capacité mémoire
Les versions antérieures d’Excel imposaient plusieurs limites quant au nombre de dépendances suivies pour la fonctionnalité de recalcul intelligent. Lorsque l’on dépassait ces limites, Excel effectuait toujours un calcul complet et la barre d’état indiquait Calculer.
À compter d’Excel 2007, ces limites ont été supprimées. Sous réserve de la limite de mémoire globale Windows de 2 Go, les grands classeurs Excel peuvent toujours utiliser le recalcul intelligent, dont la rapidité est généralement très supérieure à celle d’un calcul complet.
Workbook.ForceFullCalculation
Vous pouvez définir la nouvelle propriété de classeur, Workbook.ForceFullCalculation par programme à l’aide du modèle objet Excel. Lorsque cette propriété a la valeur True, les dépendances ne sont pas chargées lors de l’ouverture et chaque calcul du classeur est un calcul complet.
Si vous avez un classeur comportant une quantité de dépendances complexes si élevée que leur chargement lors de l’ouverture du classeur prend beaucoup de temps ou le recalcul prend davantage de temps que le calcul complet, vous pouvez recourir à cette propriété pour forcer Excel à ignorer le chargement des dépendances et à toujours effectuer un calcul complet.
SUMIFS, COUNTIFS et AVERAGEIFS
À compter d’Excel 2007, Excel propose trois nouvelles fonctions qui vous permettent d’exécuter des opérations SUM, COUNT et AVERAGE à l’aide de plusieurs critères. Dans les versions antérieures d’Excel, il fallait utiliser des formules matricielles lentes et difficiles à comprendre ou recourir à SUMPRODUCT pour utiliser plusieurs critères. Les nouvelles fonctions sont simples d’utilisation et rapides à calculer.
SUMIFS(sum_range, criteria_range1, criteria1 [,criteria_range2, _ criteria2...]) COUNTIFS(criteria_range1, criteria1 [,criteria_range2, criteria2...]) AVERAGEIFS(average_range, criteria_range1, criteria1 _ [,criteria_range2, criteria2...])
Ces fonctions gèrent les références de colonnes complètes ($A:$A) de manière efficace grâce à une gestion spéciale des cellules vides. Les critères qui évaluent les cellules de texte peuvent utiliser les caractères génériques (*) (tout ensemble de caractères) et (?) (tout caractère unique). Le calcul de ces fonctions étant beaucoup plus rapide à effectuer que celui des formules matricielles équivalentes, vous devez les utiliser pour remplacer vos formules matricielles dans la mesure du possible.
IFERROR
La fonction IFERROR suivante simplifie et accélère la vérification d’erreur.
IFERROR(Formula, value_if_error)
Dans les versions antérieures d’Excel, il était courant de rencontrer des formules qui interceptaient les erreurs en dupliquant les formules.
=IF(ISERROR(VLOOKUP("Charles",$A$1:$C$10000,3,False),"NotFound", _ VLOOKUP("Charles",$A$1:$C$10000,3,False))
Avec cette formule, si aucune erreur ne se produit dans VLOOKUP, Excel l’exécute à deux reprises. À compter d’Excel 2007, vous pouvez éviter cette duplication du temps de calcul en utilisant IFERROR.
=IFERROR(VLOOKUP("Charles",$A$1:$C$10000,3,False),"NotFound")
Tableaux nommés et référencement structuré
Excel 2007 a introduit les tableaux nommés pour définir un bloc de formules et de données. Vous pouvez simplifier le référencement de tableaux nommés et de leurs colonnes dans des formules en faisant appel à des références structurées telles que Ventes[2004] pour faire référence à la colonne 2004 du tableau Ventes, plutôt que d’avoir recours à des références Excel ordinaires telles que C2:C50.
L’un des principaux avantages offerts par cette technique est le fait que les références au tableau sont ajustées automatiquement à mesure que vous ajoutez des données aux lignes et aux colonnes du tableau. Le référencement structuré est plus efficace que les plages dynamiques car il ne fait appel à aucune fonction volatile telle que OFFSET ni à aucune fonction de comptage telle que COUNTA. De plus, vous pouvez avoir plusieurs tableaux nommés sur une feuille de calcul et utiliser le filtrage automatique sur chaque tableau nommé.
Si vous utilisez actuellement des formules matricielles, essayez dans la mesure du possible d’utiliser des références structurées afin de réduire le nombre de cellules calculées dans la formule matricielle.
Fonctions définies par l’utilisateur
À compter d’Excel 2007, toutes les fonctions définies par l’utilisateur, quels que soient le langage et la méthode de macro complémentaire utilisés pour les développer, peuvent maintenant prendre en charge les nouvelles limites introduites dans Excel 2007. Cela comprend le nombre d’arguments de fonction et la « grande grille ». Une prise en charge complète de la « grande grille » peut nécessiter des modifications de vos fonctions définies par l’utilisateur lorsque votre code suppose un maximum de 256 colonnes et 65 536 lignes. Il peut également être nécessaire de modifier les XLL afin de prendre en charge la nouvelle API C Excel.
Le seul type de fonction définie par l’utilisateur capable de tirer parti des calculs multithread est la fonction XLL. La mise à jour de vos fonctions XLL pour le recalcul multithread vous permet de pouvoir les exécuter simultanément sur différents threads. Toutes les autres fonctions définies par l’utilisateur (VBA, macros complémentaires d’Automation, fonctions XLM et fonctions XLL non mises à jour de manière à fonctionner sur plusieurs threads) sont toujours exécutées sur le thread principal et ne s’exécutent par conséquent qu’une à la fois, quel que soit le nombre de processeurs ou de threads utilisés.
À compter d’Excel 2007, Excel propose une API C mise à jour afin de prendre en charge les fonctionnalités suivantes :
-
la « grande grille » ;
-
le calcul multithread ;
-
davantage d’arguments de fonctions.
Pour utiliser ces nouvelles fonctionnalités, vous devez mettre à jour vos fonctions XLL. Pour plus d’informations, voir Développement de XLL Excel 2010 (traduction automatique). Si vous ne mettez pas à jour vos fonctions de macros complémentaires, elles continueront de fonctionner mais ne seront pas en mesure d’utiliser les nouvelles fonctionnalités introduites dans Excel 2007.
Calcul de plage
À compter d’Excel 2007, Excel propose deux méthodes de calcul de Range. Il n’existe aucune interface utilisateur standard pour exécuter ces méthodes de calcul ; vous devez les appeler à l’aide de VBA ou d’un autre langage de programmation. Ces méthodes sont utiles lorsque vous souhaitez calculer uniquement un petit bloc de cellules et laisser toutes les autres formules inchangées.
Range.Calculate
Range.Calculate calcule la plage une ligne à la fois, de gauche à droite et de haut en bas, puis résout toutes les dépendances de la plage. Il s’agit de la même méthode que celle utilisée par Excel 2002 et Excel 2003, hormis le fait qu’elle a été améliorée afin de gérer les calculs itératifs en mode manuel.
Range.CalculateRowMajorOrder
Range.CalculateRowMajorOrder calcule la plage une ligne à la fois, de gauche à droite et de haut en bas, mais elle ignore totalement toutes les dépendances. Il s’agit de la même méthode que celle utilisée par Microsoft Excel 97 et Excel 2000. CalculateRowMajorOrder n’essayant pas de résoudre les dépendances, elle est généralement plus rapide que Range.Calculate.
Si vous pouvez vous assurer que toutes les dépendances d’un bloc de formules font toujours référence aux cellules situées à gauche ou plus haut, Range.CalculateRowMajorOrder peut constituer la méthode de calcul la plus rapide dans Excel sur un système à processeur unique.
Range.CalculateRowMajorOrder est l’un des outils les plus utiles dans Excel pour l’optimisation des performances car il permet de déterminer et de comparer les vitesses de calcul de différentes formules tout en ignorant les effets des dépendances.
Excel Services
Introduit dans Excel 2007, Excel Services est une nouvelle technologie de serveur intégrée à SharePoint Server. Vous pouvez utiliser Excel Services pour transférer un long calcul d’un ordinateur de bureau à un serveur plus puissant (et plus coûteux). L’utilisation des calculs multithread sur un serveur à huit cœurs pourrait générer d’importants gains de performances. Pour plus d’informations sur Excel Services, voir Création de solutions personnalisées avec Excel Services.
Excel 2010 et Excel 2007 introduisent des améliorations en matière de performances et de limitation dans plusieurs domaines : fonctionnalités individuelles, modèle objet, introduction du calcul multithread et du traitement multicœur. À compter d’Excel 2010, la version 64 bits d’Excel permet aux utilisateurs de travailler avec des ensembles de données encore plus grands. PowerPivot constitue un outil d’analyse des données robuste dans Excel 2010 et HPC Services pour Excel 2010 permet aux utilisateurs de décharger des classeurs ou des fonctions définies par l’utilisateur vers un cluster de calcul Windows hautes performances. Toutes ces améliorations rendent Excel plus évolutif et permettent d’améliorer ses performances à mesure que la capacité en processeurs et en mémoire vive des ordinateurs augmente.
Charles Williams a fondé Decision Models en 1996 afin de proposer des conseils d’experts, des solutions de prise en charge des décisions et des outils basés sur Microsoft Excel et sur les bases de données relationnelles. Charles est l’auteur de FastExcel, ensemble bien connu d’outils de performances et de profileurs de performances pour Excel, ainsi que le co-auteur de Name Manager, utilitaire populaire pour la gestion des noms définis. Pour plus d’informations sur les méthodes et performances de calcul Excel, sur l’utilisation de la mémoire et les fonctions VBA définies par l’utilisateur, voir le site Web Decision Models (éventuellement en anglais).
Cet article technique a été produit en partenariat avec A23 Consulting (éventuellement en anglais).
Allison Bokone, Microsoft Corporation, est programmatrice au sein de l’équipe Office.
Chad Rothschiller, Microsoft Corporation, est responsable de programme au sein de l’équipe Office.