PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → 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
Iniciado por Amessaliti, 17,may. 2022 15:05 - 3 respuestas
Miembro registrado
2 mensajes
Publicado el 17,mayo 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
Miembro registrado
948 mensajes
Popularité : +30 (92 votes)
Publicado el 17,mayo 2022 - 20:06
Bonjour Amessaliti,

Contact moi pour ta problématique, j'ai quelques idées.
---
charly.cando.anywhere@gmail.com
Publicado el 18,mayo 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
Miembro registrado
2 mensajes
Publicado el 30,mayo 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