PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → Mémoire qui augmente sans cesse sur une application qui tourne 24/24 7j/7
Mémoire qui augmente sans cesse sur une application qui tourne 24/24 7j/7
Started by Amessaliti, May, 17 2022 3:05 PM - 3 replies
Registered member
2 messages
Posted on May, 17 2022 - 3:05 PM
Bonjour, j'ai une application qui tourne dans le milieu industriel elle est en communication OPCUA avec un automate industriel lecture toutes les 100ms.
Le problème que je rencontre est que cette application tourne 24h/24 et 7j/7 elle affiche des synoptiques avec plusieurs mesures (température , pression...) elle gère également des enregistrement des ses mesures toutes les 100ms(600 mesures) dans un CSV. les opérateurs ont également la possibilité d'afficher 4 vues courbe en temps réel avec 10 séries chacune.
j'en viens à mon problème c'est qu'au bout d'un certain temps la mémoire de l'application ne cesse d'augmenter de manière exponentiel jusqu'à ralentir fortement l'application, les enregistrement ne se font plus toute les 100ms(perte de données) et fini par planter.
J'utilise des threads pour mes procédures et au bout de 3600s je supprimes le dessins des courbes dans mes graphes afin de reprendre un nouveau car les graphe avec la fonction ajoutdonnéestemporelle n'utilise pas de fifo et stock toutes les données.
quelqu'un aurai une idée pour vider la mémoire toutes les x min.

--
Amessaliti
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on May, 17 2022 - 8:06 PM
Bonjour Amessaliti,

Contact moi pour ta problématique, j'ai quelques idées.
---
charly.cando.anywhere@gmail.com
Posted on May, 18 2022 - 7:06 AM
Fais une recherche sur ce forum...

C'est un problème qui est revenu plusieurs fois au cours des années, et il y a des solutions, y compris les appels api pour vider la mémoire
Registered member
2 messages
Posted on May, 30 2022 - 4:26 PM
Merci argus et Charly CANDO pour vos retours.
Je replonge dans le sujet après quelques jours de vacances bien mérités.
Après quelques recherches sur les forums, je lance une procédure automatisée appel tous les 10min.
J'espère que cette API ne supprime pas la mémoire cache du PC.

PROCÉDURE Memoire_RAM()
nHdi est un entier = 0

SI SysVersionWindows()_DANS_("XP","VISTA","7","8","10","11") ALORS
nHdi = API("KERNELL32","GetCurrentProcess")
API("KERNEL32","SetProcessWorkingSetSize",nHdi,-1,-1)
//trace("memo")
FIN

--
Amessaliti