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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

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

Message 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 ?
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment savoir le pourcentage d'utilisation du processeu

Message par Shadow »

Salut KCC, merci beaucoup

Seule le lien un fonctionne pour moi.
Pour le process, marche pas chez moi !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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 !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment savoir le pourcentage d'utilisation du processeu

Message par Shadow »

Salut, bon je te comprends pas désolé :|
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Comment savoir le pourcentage d'utilisation du processeu

Message par Kwai chang caine »

Pas mieux...je passe ....
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
Image
Image
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
Dernière modification par GallyHC le mar. 24/oct./2017 9:27, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1373
Inscription : mer. 04/nov./2015 17:39

Re: Comment savoir le pourcentage d'utilisation du processeu

Message 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é.....
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Répondre