Page 1 sur 2

Comment savoir le pourcentage d'utilisation du processeur...

Publié : dim. 22/oct./2017 15:50
par Shadow
Salut, je voudrait savoir comment ont fait pour savoir le pourcentage d'utilisation du processeur ?
Et aussi comment savoir le pourcentage d'utilisation du processeur d'un programme en particulier ?

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : dim. 22/oct./2017 15:55
par Kwai chang caine

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : dim. 22/oct./2017 17:04
par Shadow
Salut KCC, merci beaucoup

Seule le lien un fonctionne pour moi.
Pour le process, marche pas chez moi !

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : dim. 22/oct./2017 17:49
par Kwai chang caine
Salut mon canard
J'ai pas testé tous les liens concernant le CPU, tu veux pas que je fasse le ménage non plus :mrgreen:

Pour le process, t'as changé le PID comme il a dit le "mossieu" ???
; Process ID from Task Manager -- compare to Memory (Private Working Set) column:
pid.i = x ; CHANGE ME! See above.
Chez moi ça marche "fineguerre ine ze noyezize" :D
W10 X64 v5.60

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : dim. 22/oct./2017 19:10
par Shadow
Salut mon poule,

Déjà Pid va savoir se que c'est toi :roll:
Une fois trouver mon programme n'as pas ça moi !

Exemple paint !
Va y fais voir comment tu fais toi !

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : dim. 22/oct./2017 20:27
par Ollivier
Préambule

Il y a 20 ans, ce type d'information était strictement inexistant : Sigle PID Wikipedia. Et, en plus, c'est gratuit et sans publicité, grâce à la fragile générosité d'un paquet de personnes.

Exemples d'utilisation

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : lun. 23/oct./2017 8:40
par Kwai chang caine
Moi j'ai pas fait péter le plafond en plus de 10 ans au milieu des tronches, mais quand même un pid tu devrais savoir ce que c'est.
Déjà un peu de logique...si tu veux la charge complète, il est possible que tu sortes ton code du congel et tu le passes au micro onde, et tu peux le déguster direct...

Mais si tu cherches une charge pour un process...pb bien que eclairant nôtre vie de tous les jours, n'est pas mme soleil...
Il faut donc en toute logique lui dire quel process tu veux mesurer non ?

Ohhhh ! Quelle coïncidence...pid et process ça commence par la même lettre ...
Et si tu avais eu l'idée, peut être aurait tu eu l'id, en le cherchant ou ?
Et ben dans le gestionnaire des taches ou ya une colonne speciale pour toi.

Donc "process id" identificateur du process désiré...magique non ?
Quand même, à ton âge... c'est pas bien :mrgreen:

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : lun. 23/oct./2017 14:30
par Shadow
Salut, bon je te comprends pas désolé :|

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mar. 24/oct./2017 8:11
par Kwai chang caine
Pas mieux...je passe ....

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mar. 24/oct./2017 8:59
par TazNormand
@Shadow : pour imager les propos de KCC :
Tu lances le gestionnaire de tâches (taskmgr.exe), dans ce gestionnaire, tu vas dans le menu "Affichage", et "Sélectionner des colonnes...", ensuite tu coches "PID" et tu valides.

Voici les écrans sous Windows 7 du gestionnaire des tâches :
Image

Image

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mar. 24/oct./2017 9:16
par GallyHC
Bonjour,

chaque programme exécuté, a un ProcessID (PID), un numéro unique qui permet de l'identifier. Donc en premier lieu, il faut trouver ce ProcessID, pour cela on recherche d'après le nom du programme et comment qu'on fait :

Code : Tout sélectionner

EnableExplicit

Procedure.i GetProcessPidByName(sfilename.s) 
  ;
  ;
  ;
  Protected.s name
  Protected.i ishot, ipid, itool, first, inext, ifound
  Protected entry.PROCESSENTRY32\dwSize = entry

  sfilename = UCase(sfilename)
  If OpenLibrary(0, "Kernel32.dll")
    itool = GetFunction(0, "CreateToolhelp32Snapshot")
    first = GetFunction(0, "Process32First")
    inext = GetFunction(0, "Process32Next")
    If itool And first And inext
      ishot  = CallFunctionFast(itool, #TH32CS_SNAPPROCESS, 0)
      If ishot
        ifound = CallFunctionFast(first, ishot, entry)
        While ifound
          name = GetFilePart(UCase(PeekS(@entry\szExeFile, -1, #PB_Ascii)))
          If name = sfilename
            ipid = entry\th32ProcessID
          EndIf
          ifound = CallFunctionFast(inext, ishot, entry)          
        Wend
      EndIf
      CloseHandle_(ishot)
    EndIf
    CloseLibrary(0)
  EndIf
  If ipid <> 0
    ProcedureReturn ipid
  EndIf

EndProcedure

Debug "PID : " + GetProcessPidByName("pbcompiler.exe")
Voila.

Sinon tu ne cherche même pas a vraiment comprendre, il y a des tas d'articles et tutoriel qui parle du PID et même des codes en VB6 et autre (toi qui connait le VB6).

Cordialement,
GallyHC

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mar. 24/oct./2017 9:23
par GallyHC
Maintenant la même choses mais avec aussi son % d'utilisation de processeur :

Code : Tout sélectionner

EnableExplicit

Procedure.i GetProcessPidByName(sfilename.s) 
  ;
  ;
  ;
  Protected.s name
  Protected.i ishot, ipid, itool, first, inext, ifound
  Protected entry.PROCESSENTRY32\dwSize = entry

  sfilename = UCase(sfilename)
  If OpenLibrary(0, "Kernel32.dll")
    itool = GetFunction(0, "CreateToolhelp32Snapshot")
    first = GetFunction(0, "Process32First")
    inext = GetFunction(0, "Process32Next")
    If itool And first And inext
      ishot  = CallFunctionFast(itool, #TH32CS_SNAPPROCESS, 0)
      If ishot
        ifound = CallFunctionFast(first, ishot, entry)
        While ifound
          name = GetFilePart(UCase(PeekS(@entry\szExeFile, -1, #PB_Ascii)))
          If name = sfilename
            ipid = entry\th32ProcessID
          EndIf
          ifound = CallFunctionFast(inext, ishot, entry)          
        Wend
      EndIf
      CloseHandle_(ishot)
    EndIf
    CloseLibrary(0)
  EndIf
  If ipid <> 0
    ProcedureReturn ipid
  EndIf

EndProcedure

Procedure UsedCPUByProcessID(pid.i)
  ;
  ;
  ;
  Define.i handle, numprocs, oldkernel, olduser, cpuusage
  Define.FILETIME creation, exit, kernel, user
  Define.SYSTEM_INFO sysinfo
  ;
  GetSystemInfo_(@sysinfo)
  numprocs    = sysinfo\dwNumberOfProcessors
  handle      = OpenProcess_(#PROCESS_QUERY_INFORMATION, #False, pid)  
  GetProcessTimes_(handle, @creation, @exit, @kernel, @user)
  oldkernel   = kernel\dwlowdatetime
  olduser     = user\dwlowdatetime
  Delay(500)
  ;
  Repeat
    GetProcessTimes_(handle, @creation, @exit, @kernel, @user)
    cpuusage  = ((((user\dwlowdatetime - olduser) + (kernel\dwlowdatetime - oldkernel)) / 500) / 100) / numprocs
    olduser   = user\dwlowdatetime
    oldkernel = kernel\dwlowdatetime
    ;
    ;
    ;
    Debug cpuusage
    ;
    ;
    ;
    Delay(500)
  ForEver

EndProcedure

;
; LE PID du programme.
;
Debug "PID : " + GetProcessPidByName("pbcompiler.exe")

;
; LE % CPU d'un programme.
;
UsedCPUByProcessID(GetProcessPidByName("pbcompiler.exe"))
Attention : c'est une boucle sans fin avec affichage du résultat en débug, donc pour stopper le programme, il faut faire "Débogger/Arrêter le Programme".

GallyHC

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mar. 24/oct./2017 18:48
par GallyHC
Bonjour,

Une dernière petite chose si on veut avoir le "PID" de son propre programme, on utilise : "GetCurrentProcessId_()". ça peut être pratique.

Cordialement,
GallyHC

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mer. 25/oct./2017 6:58
par Shadow
Salut, ahhhhhhh oooooookkkkkk !
Merci tous le monde, là j'ai compris :D

Désoler KCC mais tu vois, bha pour une fois....
T'as pas été assez clair ont dirait ^^

Merci Taz, l’onglet affichage....
GallyHC cool, merci va bien m'aider ça ^^

Édit: Magnifique ses codes.

Re: Comment savoir le pourcentage d'utilisation du processeu

Publié : mer. 25/oct./2017 7:12
par Shadow
GallyHC, je voudrait pas abuser de ton temps....
Est ce que ce serrait possible de savoir d'autres choses sur mon programme lancé ?
Par exemple la mémoire utilisé.....