IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Connaître la mémoire CPU utilisée par une application (résultat en pourcentage)


Sujet :

Contribuez

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 537
    Points : 938
    Points
    938
    Par défaut Connaître la mémoire CPU utilisée par une application (résultat en pourcentage)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    PROCEDURE GLOBAL CPU
    
    // Déclaration de CPU
    FILETIME is structure
    	dwLowDateTime is unsigned int
    	dwHighDateTime is unsigned int
    FIN
    
    TIMEF is structure
    	last_idleTime is FILETIME
    	last_kernelTime is FILETIME
    	last_userTime is FILETIME
    END
    
    gFT is TIMEF
    
    // Pocédures globales
    FUNCTION GetSystemTimes(idleTime is FILETIME, kernelTime is FILETIME, userTime is FILETIME)
    bRet is boolean = API(KERNEL32, "GetSystemTimes", &idleTime, &kernelTime, &userTime)
    RESULT bRet
    
    FUNCTION CPU_GetUsages()
    idleTime, kernelTime, userTime are FILETIME
    usr, ker, idl, sys are 8-byte int
    cpu is int = 0
    LARGE_INTEGER1 is 8-byte int = 0
    LARGE_INTEGER2 is 8-byte int = 0
    Transfer(&LARGE_INTEGER1, &gFT.last_kernelTime, 8)
    IF LARGE_INTEGER1 THEN
    	GetSystemTimes(idleTime, kernelTime, userTime)
    	Transfer(&LARGE_INTEGER1, &userTime, 8); Transfer(&LARGE_INTEGER2, &gFT.last_userTime, 8); usr = LARGE_INTEGER1 - LARGE_INTEGER2
    	Transfer(&LARGE_INTEGER1, &kernelTime, 8); Transfer(&LARGE_INTEGER2, &gFT.last_kernelTime, 8); ker = LARGE_INTEGER1 - LARGE_INTEGER2
    	Transfer(&LARGE_INTEGER1, &idleTime, 8); Transfer(&LARGE_INTEGER2, &gFT.last_idleTime, 8); idl = LARGE_INTEGER1 - LARGE_INTEGER2
    	sys = ker + usr
    	IF (sys) cpu = (sys - idl) * 100 / sys
    END
    GetSystemTimes(gFT.last_idleTime, gFT.last_kernelTime, gFT.last_userTime)
    RESULT cpu
    
    RESULT cpu, retourne le pourcentage de mémoire utilisé

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 537
    Points : 938
    Points
    938
    Par défaut
    Windows 11 utilise une façon différente pour calculer l'utilisation du CPU.

    Comme je n'ai plus de version récente de WinDev
    j'ai posté ici un projet C/C++
    qui montre comment utiliser PDH (Performance Data Helper).

    La documentation concernant l'utilisation de "Processor Utility" est très difficile à trouver, mais çà marche.

    Le widget compilé (qui fait 29 Ko) se trouve dans le dossier
    CPU_Meter\x64\Release\CPU_Meter.exe

Discussions similaires

  1. TTimer dans une dll utilisée par une application .net
    Par Pascale38 dans le forum C++Builder
    Réponses: 16
    Dernier message: 12/07/2017, 16h18
  2. DLL utilisées par une application Qt
    Par black_hole dans le forum Débuter
    Réponses: 2
    Dernier message: 15/01/2013, 10h43
  3. Réponses: 2
    Dernier message: 01/10/2009, 11h00
  4. % de CPU utilisé par une application en VBA
    Par Sebastien 6-24 dans le forum Général VBA
    Réponses: 11
    Dernier message: 19/06/2006, 16h17
  5. "la webcam est utilisée par une autre application!" ah bon???
    Par cortex024 dans le forum Périphériques
    Réponses: 2
    Dernier message: 04/05/2006, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo