Erreur : Mémoire insuffisante ou autre erreur lors de l'initialisation de la source de données à partir du fichier standard '...\HoleWizardFavorites.mdb'.

Article de Wayne Chen, CSWP mis à jour le 6 juin 2011

Article
Message d'erreur de SOLIDWORKS

Message d'erreur de SOLIDWORKS

Certains d'entre vous ont probablement vu cette erreur dans leur programme SW lorsque vous essayez d'utiliser la fonction Hole Wizard. Plusieurs raisons peuvent être à l'origine de ce problème :

  • Le fichier mdb est corrompu,
  • L'emplacement du fichier mdb est incorrect,
  • l'autorisation d'accéder au fichier mdb n'est pas suffisante,
  • DLL non enregistrée, etc.

Ce n'est pas le sujet principal de cet article. Il s'agit ici de parler d'un ordinateur qui manque effectivement de mémoire lorsqu'il tente d'activer la commande Hole Wizard.

Comment savoir si l'ordinateur manque vraiment de mémoire ?

Lorsque vous démarrez SW pour la première fois, ouvrez un modèle simple et vous pouvez utiliser l'assistant de perçage, mais une fois que de grands assemblages sont chargés, vous découvrez que vous obtenez le message d'erreur lorsque vous essayez d'utiliser l'assistant de perçage --> il est très probable que l'ordinateur soit en fait à court de mémoire.

Dans les tests/benchmarking que je vais présenter ci-dessous, vous verrez que les erreurs ne se produisent que sur les machines 32 bits.

 

Le test :

Versions de SolidWorksRAM physique
Windows XP 32bitSW20114 GB
Windows XP 64bit
Windows 7 32bit
Windows 7 64bit

Je n'ai pas indiqué le reste des spécifications matérielles dans le tableau car elles n'ont pas d'incidence sur ce test.

Le programme de surveillance de la mémoire que j'utilise s'appelle VMMAP (http://technet.microsoft.com/en-us/sysinternals/dd535533).
Le gestionnaire de tâches par défaut de Windows ne signale pas l'utilisation de la mémoire que nous devons examiner.

Pour le grand modèle que je vais ouvrir, j'ai créé plusieurs instances du même modèle avec des noms différents, afin de pouvoir les ouvrir une par une pour augmenter l'utilisation de la mémoire.

Pour que la commande Hole Wizard soit activée, il faut environ 200 000 Ko de mémoire.

Lors des tests, je chargerai SW sans aucun complément et je chargerai le grand modèle à plusieurs reprises tout en surveillant la mémoire. Si la mémoire disponible est inférieure à 200 000 Ko, je testerai si l'assistant de trou fonctionne ou non. Le processus sera répété pour les quatre plates-formes.

 

Les résultats :

WinXP 32bit :
2 instances du modèle sont ouvertes. Le nombre entouré en rouge est la mémoire totale utilisée par SW. Le chiffre entouré en vert en bas à droite est la mémoire libre, qui doit être supérieure à 200 000 Ko pour activer la commande Hole Wizard.

Dans ce cas, la mémoire libre n'est que de 62 888 KB. Lorsque j'ai essayé d'utiliser l'assistant Hole, l'erreur s'est effectivement affichée.

Windows XP x86

WinXP 64bit :

5 instances du même modèle sont ouvertes. À ce moment-là, mon ordinateur est très lent parce que la mémoire virtuelle est utilisée pour ouvrir les fichiers. La mémoire totale est de 4 795 828 Ko (entourée en rouge), et j'ai encore beaucoup de mémoire disponible (entourée en vert). J'ai testé l'Assistant Trou, et il n'y a aucune erreur.

Windows XP x64

Win7 32bit :

4 instances sont ouvertes, puis la mémoire libre est tombée en dessous de 200 000 Ko, ce qui a entraîné l'échec de l'assistant de trou. Nous constatons ici que Windows 7 32bit est plus performant que Windows XP 32bit en ce qui concerne la gestion des charges de mémoire importantes.

Windows 7 x86

Win7 64bit :

6 instances sont chargées et il n'y a pas de problème avec le Hole Wizard. Une fois de plus, l'ordinateur est lent à cause de la mémoire virtuelle.

Windows 7 x64

Alors... tous les systèmes d'exploitation ont 4 GB de RAM, pourquoi les machines 32bit ont-elles des problèmes ?

C'est la limite du système d'exploitation 32 bits. Par définition, un processeur 32 bits utilise 32 bits pour désigner l'emplacement de chaque octet de mémoire. 2^32 = 4,2 milliards, soit 4 Go. Chaque application Windows dispose de 4 Go d'espace mémoire virtuel. Par défaut, la moitié (2 Go) est dédiée à l'utilisation du noyau et l'autre moitié est laissée à la disposition des applications. Si de gros fichiers sont chargés dans l'application et que l'utilisation de la mémoire approche les 2 Go, il y a un problème.

Pour les systèmes 64 bits, la limite est de 2^64 = 18 quintillions => 16 EB (1 EB = 1 073 741 824 GB - oui, j'ai cherché sur Google...).
Il est très probable que nous ne soyons pas confrontés à cette limitation de sitôt (peut-être dans quelques décennies).

Voici une liste de recommandations pour les systèmes 32bit...

1. Allumez l'interrupteur 3GB.

[Javelin n'est pas responsable des problèmes de système résultant de l'utilisation des liens suivants. L'application se fait à vos risques et périls. Il est recommandé de confier cette tâche à un professionnel de l'informatique].

Win XP

Win Vista/7

Cela permettra d'allouer 3 Go de mémoire à l'utilisation de l'application. Si vous constatez une instabilité après l'activation du commutateur, veuillez le désactiver car ce paramètre est connu pour causer des problèmes, en particulier si vous avez une carte vidéo installée avec une mémoire embarquée de plus de 768 Mo.

2. Charger la boîte à outils/l'assistant de perçage au début de la session SW.
Pour les utilisateurs de SW Professional ou Premium, le chargement de la boîte à outils au démarrage obligera SW à occuper 200,00 Ko de mémoire supplémentaire dans le système. Comme elle est déjà chargée, l'erreur de manque de mémoire n'apparaîtra pas. Pour les utilisateurs qui n'ont que SW Standard, si la commande Hole Wizard est utilisée au début de la session SW, le module est chargé et la mémoire est conservée pendant un certain temps. Il sera ensuite déchargé et l'erreur de mémoire manquante apparaîtra la prochaine fois que vous exécuterez la commande Hole Wizard. C'est la raison pour laquelle les gens disent que l'outil Hole Wizard semble ne fonctionner que pendant une heure ou deux, puis que l'erreur apparaît soudainement.

Pourquoi SW ne garde-t-il pas le module chargé en permanence après son activation initiale ? Il s'agit d'une pratique très courante en matière de gestion de la mémoire dans presque tous les grands logiciels : mettre le module en cache au cas où l'utilisateur en aurait à nouveau besoin, de manière à ce qu'il se charge plus rapidement, puis le libérer s'il n'est plus utilisé. Si une session logicielle conservait toute la mémoire utilisée, croyez-moi, des erreurs de mémoire apparaîtraient en permanence.

3. Ouvrir les modèles en mode léger ou en mode SpeedPak.

Toutes les suggestions ci-dessus sont des solutions à court terme. Si le message d'erreur persiste, vous devriez envisager de passer à un système d'exploitation 64 bits. WinXP 64bit est une technologie ancienne. Je recommande vivement Win7 64bit, qui connaît un taux d'adoption très élevé et constitue désormais le choix le plus courant des professionnels de l'informatique et de l'ingénierie.

Trouver un contenu connexe par TAG :

Wayne Chen, CSWP