LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

mémoire insuffisante

Bonjour,


J'utilise une serveur qui accède à une base de données. J'ai donc plusieurs vi qui tournent en permanence, avec des boucle while, for, des variables locales et globales. Apres avoir faire tourner le vi principal plusieurs heures de suite, j'ai un message d'erreur comme quoi la mémoire est insuffisante. Le vi principal est alors stoppé. Je ne comprends pas d'où vient ce problème?

Merci pour votre réponse.
0 Kudos
Message 1 of 9
(3,428 Views)
Un diagnostic devrait être possible en utilisant les outils de labVIEW : voit Tools/Advanced/Profile vi's pour repérer le vi qui "enfle". Cocher "Profile memory usage" et presser start. Lancer le vi défectueux.
+ d'aide ?
Chilly Charly    (aka CC)
0 Kudos
Message 2 of 9
(3,428 Views)
Ce n'est pas trop clair...
J'ai éxecuter le vi défectueux, la tableau de temps de profil me donne des tps énormes pour certains vi. A quoi cela correspond il? et comment faire pour diminuer le temps?

Merci pour votre réponse.
0 Kudos
Message 3 of 9
(3,428 Views)
Getting at the VI with a problem is a start.
Some of the things that use up memory like this are Shift registers which you expect to be initialized to empty before you start the loop. If they are uninitialized then whatever you add to the shift register contents uses more memory.
Opening Files and references repeatedly without closing them can use up memory too.
Bonne Chance
Yours Sincerely
John Brohan www.TradersMicro.com
Message 4 of 9
(3,428 Views)
Un temps d'exécution anormalement grand peut être lié à la gestion de la mémoire. Par exemple, l'ajout d'une simple valeur à un tableau peut prendre énormément de temps si la taille du tableau est importante : Il faut allouer un nouvel espace mémoire au nouveau tableau, et y copier ensuite l'ensemble des valeurs de l'ancien plus la nouvelle. En plus du temps perdu, cette opération consomme deux fois plus de mémoire que nécessaire.
Le commentaire de John Brohan est excellent, mais avant de corriger le pb, il reste à le localiser.
Que donne l'occupation mémoire des différents vi, et surtout, comment évolue-t'elle en fonction du temps ?
Chilly Charly    (aka CC)
Message 5 of 9
(3,428 Views)
En qqs seconde certaines valeurs passe a des milliers de secondes de temps d'éxecution.
J'ai remarqué que le vi qui 'enfle' sont des vi qui ont appel à la base de données, comme Rec Delte.vi ou Conn Execute.vi.
0 Kudos
Message 6 of 9
(3,428 Views)
Vous devez faire quelques confusions : il doit s'agir de millisecondes ou de microsecondes. Vérifiez l'unité (contrôle en haut à droite de la fenêtre).
Regardez l'utilisation de la MEMOIRE, et ne vous préoccupez pas du temps pour le moment.
Chilly Charly    (aka CC)
0 Kudos
Message 7 of 9
(3,428 Views)
Désolée, je me suis trompée.
En fait, j'avais coché 'profil d'utiliodation de la mémoire' ms je n'avais pas vu qu'il y a avait également l'utilisation de la mémoire'. J'ai lancé toute la nuit le serveur et je n'ai pas eu le message 'mémoire insiffisante'. En ce qui concerne la mémoire, j'ai entre 2 et 20 Koctet pour chaque vi.
0 Kudos
Message 8 of 9
(3,428 Views)
Il est aussi possible qu'une fuite de memoire se produit quand votre serveur accede la base de donnees.

Dans ce cas voir "Why Does My LabVIEW Application Leak Memory when Logging to an Access Database?" a URL:

http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/862567530005f09e862568020079a9b7?OpenDocument
0 Kudos
Message 9 of 9
(3,428 Views)