PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes 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
Débuté par Amessaliti, 17 mai 2022 15:05 - 3 réponses
Membre enregistré
2 messages
Posté le 17 mai 2022 - 15:05
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
Membre enregistré
893 messages
Popularité : +30 (92 votes)
Posté le 17 mai 2022 - 20:06
Bonjour Amessaliti,

Contact moi pour ta problématique, j'ai quelques idées.
---
charly.cando.anywhere@gmail.com
Posté le 18 mai 2022 - 07:06
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
Membre enregistré
2 messages
Posté le 30 mai 2022 - 16:26
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