Pourquoi mon système est-il si lent quand j'ai autant de RAM?

8

J'ai donc un ordinateur avec 3,45 Go de RAM selon mon OS (XP). J'ai 2 Go de RAM virtuelle.

Mon entreprise pousse Excel à ses limites en référençant d'autres feuilles de calcul, ce qui consomme beaucoup de ressources. Souvent, quand il exécute des calculs, des sauvegardes, etc., le programme semble se bloquer pendant parfois jusqu'à 10 minutes.

En regardant pour voir quel est le problème, je remarque que le processeur fonctionne généralement à environ 8-12%, mais la RAM est généralement de 250 000+ Ko. Cela fait que mon ordinateur fonctionne lentement, ce qui aurait du sens pour moi si je n'avais que 512 ou peut-être un gigaoctet de RAM. Je sais que 250 000 est un peu de mémoire à utiliser pour le système d'exploitation, mais avec un total de 6 Go, je m'attendrais à de bien meilleures performances.

Y a-t-il une explication pour expliquer pourquoi cela fonctionnerait si lentement?

edit: je devrais clarifier. Je cherche plus de concept derrière cela, pas seulement une solution pour que mon ordinateur fonctionne lentement (c'était juste censé être un exemple). J'avais l'impression que je devrais être capable d'utiliser presque toute ma RAM avant de remarquer de sérieux changements de vitesse qui affecteraient l'ensemble de mon système.

Zombian
la source
De quel processeur disposez-vous? De plus, 4 Go de RAM, ce n'est pas tant que ça. Moyen au mieux, mais c'est la recommandation minimale que je ferais à n'importe qui aujourd'hui.
Dark Android
Ce n'est guère «moyen au mieux» pour un système fonctionnant sous XP 32 bits.
Joe Internet
1
@Joe La relation avec la capacité maximale du système d'exploitation n'est pas pertinente - uniquement en relation avec le nombre d'applications que l'utilisateur moyen utilise ces jours-ci et la quantité de mémoire qu'il utilise. Certes, l'ajout de plus n'aura aucun effet jusqu'à ce qu'il passe à un système d'exploitation 64 bits.
Dark Android
OMI, vous ne pouvez pas supprimer le contexte hw de la "moyenne". OP exécute Windows XP, qui a une RAM minimale recommandée de 128 Mo, avec un minimum pris en charge de 64 Mo. Donc, environ 55x le minimum pris en charge est probablement supérieur à la moyenne.
Joe Internet

Réponses:

11

Certaines de ces feuilles de calcul référencées pourraient-elles être sur un réseau local? Si oui, quel type de connexion avez-vous aux fichiers sur le LAN (100 Mo, Gigabit, sans fil, etc.)?

Excel est très "bavard". Surtout lorsque vous traitez des feuilles de calcul de référence et des données réparties sur diverses ressources, l'application peut nécessiter beaucoup de communication pour envoyer et recevoir les informations nécessaires. Si la plupart des fichiers se trouvent sur des partages réseau et des lecteurs réseau, cela peut expliquer au moins une partie de la lenteur que vous rencontrez.

De plus, quelle que soit la quantité de mémoire que vous utilisez, vous constaterez probablement qu'excel.exe ne prend généralement pas autant de mémoire que prévu. Y a-t-il d'autres processus en cours d'exécution sur votre ordinateur qui ne sont pas nécessaires? Beaucoup d'icônes de la barre des tâches (à côté de votre horloge) que vous ne savez pas comment elles y sont arrivées ou à quoi elles servent?

Enfin, de nombreuses entreprises tirent parti d'Excel bien au-delà de ses meilleures fonctions, comme il semble que votre entreprise le fasse (pourquoi, oh pourquoi n'utilisent-elles pas une base de données lorsqu'elles ont besoin d'une base de données et laissent-elles Excel aux simples fonctions d'enregistrement et de traitement des données ??? ?), J'ai trouvé que la comparaison de la vitesse d'Excel sur nos machines plus anciennes / plus lentes (ordinateurs de bureau IBM âgés de 4 ans 8215 et 9645) et les machines plus récentes / plus rapides (ordinateurs de bureau de 6 mois, 3269, 9964), et il n'y a pas de différence significative .

Selon la façon dont les macros et le code reliant les feuilles de calcul sont écrits, il peut y avoir des limites strictes à la vitesse à laquelle cette feuille de calcul peut collecter et traiter les données dont elle a besoin.

Tout ce que vous pouvez faire est d'identifier et d'atténuer tous les points de lenteur possibles et d'espérer le meilleur.

music2myear
la source
Wow vous l'avez cloué! Je venais de comprendre cela avec l'aide du post précédent et j'ai vu cette réponse par la suite. Et oui, je suis d'accord sur la base de données. On m'a dit que la raison était "parce que nous ne voulons pas avoir à payer un DBA". Au lieu de cela, ils me paient pour passer 3 heures par jour à tourner mes pouces en attendant Excel. Je suis sûr qu'une partie du problème pourrait être le VBA, car je suis principalement autodidacte, mais ce que je remarque est probablement plus un problème de réseau local. Merci!
Zombian
4
Je vous en prie. La bonne nouvelle est qu'il peut y avoir des moyens relativement efficaces de faire les choses dans Excel. Une tâche courante consiste à trouver le nombre de lignes de données. Certaines personnes rechercheront un maximum prédéfini pour toutes les lignes de données, en supposant que d'autres façons risquent de signaler la dernière ligne lorsqu'elles rencontrent la première cellule vide, ne réalisant pas qu'il existe des moyens plus rapides que de vérifier manuellement une plage entière qui n'échoue pas au première cellule vide. Une autre bonne pratique en matière de codage Excel consiste à charger des tables entières dans des tableaux, ce qui les garde en mémoire locale. De petites choses comme celle-ci s'additionnent et aident à accélérer les choses.
music2myear
1
Passez ces 3 heures par jour à apprendre la théorie SQL et la base de données et à améliorer vos compétences Excel VBA. Bien qu'avoir un DBA dédié soit bon pour les trucs très difficiles, ou les trucs de fer très gros, il n'est pas trop difficile de se lancer avec quelque chose comme l'édition SQL Server Express.
Joe Internet
1
@Joe: Ou Access (qui serait plus convivial pour l'entreprise car ils l'ont probablement déjà tous installé, mais beaucoup plus facile qu'Excel pour migrer vers SQL Server un jour)
BlueRaja - Danny Pflughoeft
Je ne peux pas penser à un seul avantage qu'Access apporterait à cette situation, à part la possibilité de dessiner des boutons sur des formulaires. Si vous en avez vraiment besoin, Visual Studio Express est toujours un meilleur choix.
Joe Internet
6

Windows XP ne fait pas un très bon travail en utilisant plus d'environ 1 Go de RAM. Certaines applications peuvent utiliser plus, mais aucune application ne peut utiliser plus de 2 Go à la fois, au moins par défaut - c'est le plus grand espace d'adressage virtuel qu'une application peut voir. Il existe un mode qui autorise un espace d'adressage de 3 Go, mais qui peut entraîner des problèmes de compatibilité pour de nombreux logiciels.

Si votre machine n'utilise que 0,25 Go, cela semble assez étrange - à moins que la mémoire ne soit pas du tout votre goulot d'étranglement.

Si votre machine "semble se bloquer", je suppose que vous faites beaucoup d'accès au disque dur. Cela peut rendre le problème d'utilisation de la mémoire de Windows XP pertinent - Windows 7 est beaucoup plus agressif pour prédire ce que vous utiliserez dans un proche avenir et le mettre en cache. Windows XP n'utilisera même pas autant de mémoire pour le cache, sans parler d'essayer de faire une mise en cache prédictive, vous avez donc beaucoup plus de chances de "thrash" le disque dur.

Si tel est le problème, certaines options à considérer sont ...

  1. Essayez d'utiliser un disque virtuel pour minimiser l'utilisation du disque dur. Placez-y les documents et assurez-vous que tous les fichiers temporaires y sont également stockés. Il existe même des disques virtuels disponibles qui utiliseront la RAM en dehors des 4 Go auxquels Windows XP 32 bits peut accéder.

  2. Utilisez un réseau RAID avec entrelacement pour améliorer les performances de votre disque dur.

  3. Utilisez un disque dur à semi-conducteurs - mais sachez que si votre application effectue de nombreuses écritures, cela peut entraîner une usure excessive de ce SSD. De plus, Windows XP n'est pas optimisé pour les SSD - recherchez les mises à jour pour prendre en charge Trim.

Fondamentalement, l'idée est soit (1) de forcer votre système à utiliser la RAM, soit (2, 3) d'investir dans du matériel qui réduira votre goulot d'étranglement des performances.

Steve314
la source
Je vous remercie! J'utilise un profil itinérant et cela m'a fait réaliser que la lecture / écriture sur le serveur des fichiers sur lesquels je travaille est probablement une grande partie du problème. Aussi, bien documenté! Merci encore.
Zombian
2

Il semble que vous utilisiez un système d'exploitation 32 bits (vous ne le dites pas définitivement dans la question), dans ce cas, vous êtes limité à 3,45 Go de mémoire adressable . Windows ne connaît tout simplement pas de mémoire supérieure à cette limite.

Cela signifie que lorsque vous exécutez des programmes qui utilisent beaucoup de ressources, vous paginez sur le disque la plupart du temps car le système d'exploitation doit échanger les données en mémoire avec celles du disque. Vous pouvez essayer d'augmenter la taille de votre fichier d'échange (en supposant que c'est ce que vous entendez par RAM virtuelle), mais vous feriez mieux de laisser Windows gérer cela.

Vous devrez installer un système d'exploitation 64 bits pour tirer le meilleur parti des performances de votre mémoire.

ChrisF
la source
1
voulez-vous dire que même si j'installe un ram de 8 Go sur ma boîte 32 bits, je n'aurai que 3,45 Go? et le reste ne sera jamais utilisé?
Pacerier
1
@Pacerier - quelque chose comme ça. Il y a une limite de 2 Go par processus et la limite est due à la nature du système d'exploitation - 2 élevé à la 32e puissance est de 4 Go, vous ne pouvez donc pas aller plus haut.
ChrisF
2

Je soupçonne quelque chose de totalement différent des réponses actuelles: je me demande si vous avez installé la mise à jour «Microsoft Office File Validation pour Office 2003, 2007 Office et Office 2010».

Il ramène l'accès réseau des fichiers Excel à un CRAWL. Cela m'a pris environ 1 minute juste pour ouvrir un fichier 21k. Dès qu'il se détache, bang !, retour à la normale.

Voir mon article ici sur Server Fault, et l'article de la base de connaissances associé, qui le note comme «problème connu».

/server/286427/slow-opening-of-excel-files-on-the-network

KCotreau
la source
Hou la la! Cela semble intense! Heureusement, j'exécute Excel 2010 et je l'ai également remarqué pendant des mois (la publication a déclaré que la mise à jour était au début de ce mois). Merci de m'avoir mis au courant. Je souhaite que cela finisse par être aussi simple!
Zombian
@Zombian OK, au moins vous avez vérifié. Oui, cela n'affecte pas Excel 2010 car la fonctionnalité problématique de la mise à jour est intégrée, mais pas maladroite comme pour 2003/2007. Cette mise à jour a causé beaucoup de temps aux administrateurs professionnels et beaucoup de cheveux. Je souhaite également que cela ait été aussi simple pour vous.
KCotreau
1

D'autres réponses mentionnent des choses qui peuvent contribuer à vos problèmes, mais aucune ne semble mentionner qu'Excel a des limites de mémoire intégrées; il n'utilisera pas toute la RAM d'un PC.

Voici quelques-unes des limites d'Excel:

  • Excel 5: limité à 16 Mo
  • Excel 95/97/2000: limité à 64 Mo
  • Excel 2002: limité à 128 Mo
  • Excel 2003: limité à 1 Go de jeu, moins pour les classeurs réels
  • Excel 2007: limité à un ensemble de travail de 2 Go , moins pour les classeurs réels
  • Excel 2010: limité à 2 Go dans Excel 32 bits, 8 téraoctets ( 8000 Go ) dans Excel 64 bits

Source et plus d'informations: Excel Memory Limits , par Charles Williams, Microsoft Excel MVP

Steven Noto
la source