Chercher l'utilsation memoire

 Sous Windev, on a un gros probleme. La DLL d’acces natif Oracle est bugguée à mort. En gros, au bout d’un moment, les exe prennent plus de 500Mo de RAM.
On a eu beau checker tous les appels à la base oracle, mais ca se reproduit quand meme sur tous les exe qui tape Oracle 24/24.

Sous Windev on a qu’une fonction pour connaitre le RAM libre, pas terrible sur un serveur de prod ou il doit y avoir plus de 20 soft qui tournent… en service ou pas.

On a pas de fonction pour savoir quelle est la place memoire que prend l’exe en cours. Comme dans le gestionnaire des taches en gros…

A mon avis, c’est un appel API. Et tres franchement, je n’ai aucune idee de comment faire.

Quelle API appeler ? Quelle fonction ? Quelle ligne de commande ???
Etc…

Tout aide sera la bienvenue, faut qu’on regle le soucis rapidement (bah oui… le WE ya personne pour relancer le process planté car il prenait plus de 900Mo de RAM…)

Merci bien, je regarderais les reponses demain matin au taf si une ame charitable veut  bien m’aider
En attendant, on a utilisé la fonction de Windev pour connaitre le place de memoire libre sur le PC, mais c’est clairement pas fiable si on doit exceptionnellement lancer un enorme process à coté…

MEGA UP !! Urgent !

Vous etes naze… Voilà la reponse :

hwndprocess est un entier
PROCESS_MEMORY_COUNTERS est une structure
cb est un entier
PageFaultCount est un entier
PeakWorkingSetSize est un entier
WorkingSetSize est un entier
QuotaPeakPagedPoolUsage est un entier
QuotaPagedPoolUsage est un entier
QuotaPeakNonPagedPoolUsage est un entier
QuotaNonPagedPoolUsage est un entier
PagefileUsage est un entier
PeakPagefileUsage est un entier
FIN
p_m est un PROCESS_MEMORY_COUNTERS

// accès au process
hwndprocess = API ( “kernel32” , “GetCurrentProcess” )
SI hwndprocess ALORS
// on rempli la structure pour le process
API ( “Psapi” , “GetProcessMemoryInfo” , hwndprocess , &p_m , Dimension(p_m) ) 
// on ferme l’accès au process
API ( “kernel32” , “CloseHandle” , hwndprocess )
// ajout dans la table mémoire
Info("Mémoire utilisée en KO : "+ p_m:WorkingSetSize/1024 )
FIN

Merci à Gilles, pote et collegue de Use

Ce message a été édité par Donjohn le 30/06/2004

De rien Don, de rien

Mais heu, je viens de me faire chier a te rechercher ca dans la MSDN pour rien …

Enfin, t’aurais cherché tout seul, t’aurais trouvé (je viens de le faire ).

GetProcessMemoryInfo
GetCurrentProcess
et CloseHandle

c0unt0 says : “oui mais euh moi j’ai le decalage horaire”.

C’est ce que j’allais te repondre : va faire un tour du cote des fonctions d’examen de process

msdn est ton ami =)

J’en profite pour signaler ce lien assez ancien mais toujours utile, au cas où tu ne connaitrais pas :http://centrewd.free.fr/?page=api (c’est l’ancien site de Beaussier, au cas où tu aurais une impression de déjà vu)
Ce message a été édité par Arkhatope le 30/06/2004

[quote]Mais heu, je viens de me faire chier a te rechercher ca dans la MSDN pour rien …

Enfin, t’aurais cherché tout seul, t’aurais trouvé (je viens de le faire ).

GetProcessMemoryInfo
GetCurrentProcess
et CloseHandle[/quote]Si tu savais mon rythme la journee, je suis vraiment obligé de dire que j’ai pas le temps de chercher des trucs comme ca en ce moment. Ce n’etait pas le plus prioritaire de mes soucis, et j’en manque clairement pas. Je savais que j’aurais la reponse le lendemain, autant utiliser le potentiel de la cafzone
Ce message a été édité par Donjohn le 03/07/2004