Pourcentage d'utilisation du processeur

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Pourcentage d'utilisation du processeur

Message par Le Soldat Inconnu »

[Mise à jour du 25/02/2012]

Salut,

Une nouvelle version de ce code qui permet de calculer le pourcentage d'utilisation du processeur.

Cette fois ci, il est basé sur un code de Doctorized sur le forum anglais
http://www.purebasic.fr/english/viewtop ... 13&t=46347

Donc j'ai à nouveau besoin de testeurs.
J'ai essayé sur mon PC (quadcore window 7) et pas de soucis.
Je cherche donc particulièrement des windows XP, des processeur double cœur ou simple cœur, et le processeur zarbi de Dobro :mrgreen: . Mais tout le monde est le bienvenue pour valider le bon fonctionnement :D

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu 
; (Basé sur un code de Jacobus pour la compréhension de L'API windows nécessaire au calcul)
; Version de PB : 4.60

; Explication du programme :
; Utilisation du processeur


Structure ProcessorInfo
	Count.l ; Nombre de processeurs
	PdhQuery.i
	Array PdhCounter.i(1)
	GlobalUsage.d
	Array Usage.d(1)
EndStructure
Global Processor.ProcessorInfo
Procedure.d GetProcessorUsage()
	Structure PDH_FMT_COUNTERVALUE
		CStatus.l
		padding.l
		ulValueLow.l
		ulValueHigh.l
	EndStructure
	Protected lpValue.PDH_FMT_COUNTERVALUE, dwType.l
	If Processor\Count > 0
		
		Processor\GlobalUsage = 0
		PdhCollectQueryData_(Processor\PdhQuery)
		For Index = 1 To Processor\Count
			PdhGetFormattedCounterValue_(Processor\PdhCounter(Index), $200, @dwType.l, @lpValue)
			CopyMemory(@lpValue\ulValueLow, @Processor\Usage(Index), SizeOf(Double))
			Processor\GlobalUsage + Processor\Usage(Index)
		Next
		Processor\GlobalUsage / Processor\Count
		
	EndIf
	ProcedureReturn Processor\GlobalUsage
EndProcedure
Procedure CloseProcessorUsage()
	If Processor\Count > 0
		PdhCloseQuery_(Processor\PdhQuery)
		Processor\PdhQuery = 0
	EndIf
EndProcedure
Procedure InitProcessorUsage()
	#COUNTERPERF_PROCESSOR = 238
	#COUNTERPERF_PERCENTPROCESSORTIME = 6
	#PDH_CSTATUS_VALID_DATA = 0
	#PDH_CSTATUS_NEW_DATA = 1
	Protected SystemInformation.SYSTEM_INFO
	Protected LibrairiePdh.i, *MemoireTexte.i, LongueurTexte.i, ProcessorName.s
  GetSystemInfo_ (@SystemInformation)
  Processor\Count = SystemInformation\dwNumberOfProcessors
	Redim Processor\PdhCounter(Processor\Count)
	Redim Processor\Usage(Processor\Count)
	
	
	If PdhOpenQuery_(0, 1, @Processor\PdhQuery) = 0
		
			
			LibrairiePdh = OpenLibrary(#PB_Any, "pdh.dll")
			If LibrairiePdh
				
				*MemoireTexte = AllocateMemory(#MAX_PATH + 1)
				If *MemoireTexte
					
					For Index = 1 To Processor\Count
						
						ProcessorName = ""
						LongueurTexte = #MAX_PATH
						CallFunction(LibrairiePdh, "PdhLookupPerfNameByIndexA", #Null, #COUNTERPERF_PROCESSOR, *MemoireTexte, @LongueurTexte)
						ProcessorName + "\" + PeekS(*MemoireTexte, LongueurTexte) + "(" + Str(Index - 1) + ")"
						LongueurTexte = #MAX_PATH
						CallFunction(LibrairiePdh, "PdhLookupPerfNameByIndexA", #Null, #COUNTERPERF_PERCENTPROCESSORTIME, *MemoireTexte, @LongueurTexte)
						ProcessorName + "\" + PeekS(*MemoireTexte, LongueurTexte)
						
						Retour = PdhValidatePath_(ProcessorName)
						If Retour = #ERROR_SUCCESS
							
							Retour = PdhAddCounter_(Processor\PdhQuery, ProcessorName, 0, @Processor\PdhCounter(Index))
							If Retour <> #PDH_CSTATUS_VALID_DATA
								Processor\Count = 0
								Break
							EndIf
							
						Else
							Processor\Count = 0
							Break
						EndIf
						
						
					Next
					
					FreeMemory(*MemoireTexte)
				Else
					Processor\Count = 0
				EndIf
				
				CloseLibrary(LibrairiePdh)
			Else
				Processor\Count = 0
			EndIf

			If Processor\Count = 0
				CloseProcessorUsage()
			EndIf
	Else
		Processor\Count = 0
	EndIf
	
	
	GetProcessorUsage()
	ProcedureReturn Processor\Count
EndProcedure





; Création de la fenêtre
If OpenWindow(0, 0, 0, 500, 400, "CPU", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
	End
EndIf

AddWindowTimer(0, 1, 1000)

InitProcessorUsage() ; Initialisation de la lecture de l'utilisation du/des processeurs

Largeur = WindowWidth(0)
Hauteur = WindowHeight(0)
Hauteur2 = Hauteur / (Processor\Count + 1)

CreateImage(0, Largeur, Hauteur, 32 | #PB_Image_Transparent)
StartDrawing(ImageOutput(0))
	DrawingMode(#PB_2DDrawing_AlphaBlend)
	For Index = 1 To Processor\Count + 1
		Line(0, Hauteur2 * Index - 1, Largeur, 1, $C0BB3C90)
	Next
StopDrawing()
CanvasGadget(0, 0, 0, Largeur, Hauteur)
LoadFont(0, "Arial", 9, #PB_Font_HighQuality)

Repeat
	Event = WaitWindowEvent()
	
	Select Event
		Case #PB_Event_Timer
			Select EventTimer() ; Timers
				Case 1
					GetProcessorUsage() ; Lecture de l'utilisation du processeur
					
					Temps - 1
					#Largeur = 2
					
					CopyImage(0, 1) ; Copie de l'image actelle du graphique
					StartDrawing(ImageOutput(0))
						DrawingMode(#PB_2DDrawing_AlphaBlend)
						Box(0, 0, Largeur, Hauteur, $FFFFFFFF) ; Efface l'image
						DrawAlphaImage(ImageID(1), -#Largeur, 0) ; Dessine l'ancien graphique décalé de 1 pixel
						If Temps <= 0
							Temps = 5
							Line(Largeur - #Largeur, 0, 1, Hauteur2 * (Processor\Count + 1), $40BB3C90) ; Dessine l'axe vertical
						EndIf
						For Index = 1 To Processor\Count ; Dessine le pourcentage d'utilisation de chaque processeur dans le graphique
							Line(Largeur - #Largeur, Hauteur2 * Index - 1, #Largeur, 1, $C0BB3C90) ; Dessine l'axe horizontal
							Line(Largeur - #Largeur, Hauteur2 * (Index - 0.25) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 25%
							Line(Largeur - #Largeur, Hauteur2 * (Index - 0.5) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 50 %
							Line(Largeur - #Largeur, Hauteur2 * (Index - 0.75) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 75 %
							Box(Largeur - #Largeur, Hauteur2 * Index - Hauteur2 * Processor\Usage(Index) / 100, #Largeur, Hauteur2 * Processor\Usage(Index) / 100, $90000000)
						Next
						; Dessine le pourcentage d'utilisation moyen (ou global) dans le graphique
						Line(Largeur - #Largeur, Hauteur2 * (Processor\Count + 1) - 1, #Largeur, 1, $C0BB3C90) ; Dessine l'axe horizontal
						Line(Largeur - #Largeur, Hauteur2 * (Processor\Count + 0.75) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 25%
						Line(Largeur - #Largeur, Hauteur2 * (Processor\Count + 0.5) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 50%
						Line(Largeur - #Largeur, Hauteur2 * (Processor\Count + 0.25) - 1, #Largeur, 1, $60BB3C90) ; Dessine l'axe horizontal 75%
						Box(Largeur - #Largeur, Hauteur2 * (Processor\Count + 1) - Hauteur2 * Processor\GlobalUsage / 100, #Largeur, Hauteur2 * Processor\GlobalUsage / 100, $90000000)
					StopDrawing()
					StartDrawing(CanvasOutput(0))
						DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Transparent)
						DrawAlphaImage(ImageID(0), 0, 0)
						DrawingFont(FontID(0))
						For Index = 1 To Processor\Count ; Affichage du pourcentage d'utilisation de chaque processeur sous forme de texte
							DrawText(4, 4 + Hauteur2 * (Index - 1), "Processeur " + Str(Index) + " : " + StrD(Processor\Usage(Index), 1) + "%", $FF000000)
						Next
						; Affichage du pourcentage d'utilisation processeur moyen (ou global) sous forme de texte
						DrawText(4, 4 + Hauteur2 * Processor\Count, "Moyenne : " + StrD(Processor\GlobalUsage, 1) + "%", $FF000000)
					StopDrawing()
					
			EndSelect
			
	EndSelect
	
Until Event = #PB_Event_CloseWindow

CloseProcessorUsage()





[ Ancien code ]___________________________________________________

Salut,

Voici un code qui permet de calculer le pourcentage d'utilisation du processeur.

Il est basé sur un code de Jacobus issue du programme de ce sujet
http://www.purebasic.fr/french/viewtopic.php?f=8&t=9758
Par contre, j'y ai apporté une correction et mon calcul final n'a absolument rien à voir avec celui de Jacobus (Qui me semble être une grosse usine à gaz et qui à mon avis est faux). Alors Jacobus, si tu es dans le coin, essai mon code et dis moi ce que tu en penses.

Donc j'ai besoin de testeurs.
J'ai essayé sur mon PC (quadcore window 7) et pas de soucis.
Je cherche donc particulièrement des windows XP, des processeur double cœur ou simple cœur. Mais tout le monde est le bienvenue pour valider le bon fonctionnement :D

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu 
; (Basé sur un code de Jacobus pour la compréhension de L'API windows nécessaire au calcul)
; Version de PB : 4.60

; Explication du programme :
; Utilisation du processeur

Structure ProcessorInfoTime
	Idle.q
	Kernel.q
	User.q
EndStructure
Structure ProcessorInfo
	Count.l ; Nombre de processeurs
	Array ActualTime.ProcessorInfoTime(1)
	Array PreviousTime.ProcessorInfoTime(1)
	GlobalUsage.d
	Array Usage.d(1)
EndStructure
Global Processor.ProcessorInfo
Procedure.d GetProcessorUsage()
	Structure  SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
		IdleTime.q
		KernelTime.q
		UserTime.q
		Reserved1.q[2]
		Reserved2.q
	EndStructure
	Protected Dim ProcessorPerformanceInformation.SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION(Processor\Count - 1)
	#SystemProcessorPerformanceInformation = 8
	Protected Index.l, Librairie.i
	Protected Time.ProcessorInfoTime, GlobalTime.q
	If Processor\Count > 0
		; Recopie des temps actuel dans les temps précédents
		For Index = 1 To Processor\Count
			CopyMemory(@Processor\ActualTime(Index), @Processor\PreviousTime(Index), SizeOf(ProcessorInfoTime))
		Next
		; Lecture des nouveaux temps processeurs
		Librairie = OpenLibrary( #PB_Any , "ntdll.dll" )
		If Librairie
			If CallFunction(Librairie, "NtQuerySystemInformation" , #SystemProcessorPerformanceInformation , @ProcessorPerformanceInformation(), SizeOf(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION) * Processor\Count, 0) = 0
				
				Processor\GlobalUsage = 0
				
				For Index = 1 To Processor\Count
					; Copie des temps processeurs
					Processor\ActualTime(Index)\Idle = ProcessorPerformanceInformation(Index - 1)\IdleTime
					Processor\ActualTime(Index)\Kernel = ProcessorPerformanceInformation(Index - 1)\KernelTime
					Processor\ActualTime(Index)\User = ProcessorPerformanceInformation(Index - 1)\UserTime
					; Différence entre avant après
					Time\Idle = Processor\ActualTime(Index)\Idle - Processor\PreviousTime(Index)\Idle
					Time\Kernel = Processor\ActualTime(Index)\Kernel - Processor\PreviousTime(Index)\Kernel
					Time\User = Processor\ActualTime(Index)\User - Processor\PreviousTime(Index)\User
					; Pourcentage d'utilisation
					; Processor\Usage(Index) = Processor\Frequency * (Time\Kernel + Time\User + Time\Idle) / (GlobalTime * Processor\Count) / 100000
					Processor\Usage(Index) = (1 - Time\Idle / (Time\Kernel + Time\User))
					Processor\GlobalUsage + Processor\Usage(Index)
				Next
				
				Processor\GlobalUsage / Processor\Count
				
			EndIf
			CloseLibrary(Librairie)
		EndIf
	EndIf
	ProcedureReturn Processor\GlobalUsage
EndProcedure
Procedure ProcessorUsageInit()
	Protected SystemInformation.SYSTEM_INFO
  GetSystemInfo_ (@SystemInformation)
  Processor\Count = SystemInformation\dwNumberOfProcessors
	Redim Processor\ActualTime(Processor\Count)
	Redim Processor\PreviousTime(Processor\Count)
	Redim Processor\Usage(Processor\Count)
	GetProcessorUsage()
	ProcedureReturn Processor\Count
EndProcedure



; Création de la fenêtre
If OpenWindow(0, 0, 0, 500, 400, "CPU", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
	End
EndIf

AddWindowTimer(0, 1, 1000)

ProcessorUsageInit() ; Initialisation de la lecture de l'utilisation du/des processeurs

Largeur = WindowWidth(0)
Hauteur = WindowHeight(0)
Hauteur2 = Hauteur / (Processor\Count + 1)

CreateImage(0, Largeur, Hauteur, 32 | #PB_Image_Transparent)
StartDrawing(ImageOutput(0))
	DrawingMode(#PB_2DDrawing_AlphaBlend)
	For Index = 1 To Processor\Count + 1
		Line(0, Hauteur2 * Index - 1, Largeur, 1, $80BB3C90)
	Next
StopDrawing()
CanvasGadget(0, 0, 0, Largeur, Hauteur)
LoadFont(0, "Arial", 9, #PB_Font_HighQuality)

Repeat
	Event = WaitWindowEvent()
	
	Select Event
		Case #PB_Event_Timer
			Select EventTimer() ; Timers
				Case 1
					GetProcessorUsage() ; Lecture de l'utilisation du processeur
					
					CopyImage(0, 1) ; Copie de l'image actelle du graphique
					StartDrawing(ImageOutput(0))
						DrawingMode(#PB_2DDrawing_AlphaBlend)
						Box(0, 0, Largeur, Hauteur, $FFFFFFFF) ; Efface l'image
						DrawAlphaImage(ImageID(1), -1, 0) ; Dessine l'ancien graphique décalé de 1 pixel
						For Index = 1 To Processor\Count ; Dessine le pourcentage d'utilisation de chaque processeur dans le graphique
							Line(Largeur - 1, Hauteur2 * Index - Hauteur2 * Processor\Usage(Index), 1, Hauteur2 * Processor\Usage(Index), $90000000)
							Plot(Largeur - 1, Hauteur2 * Index - 1, $80BB3C90) ; Dessine l'axe horizontal
						Next
						; Dessine le pourcentage d'utilisation moyen (ou global) dans le graphique
						Line(Largeur - 1, Hauteur2 * (Processor\Count + 1) - Hauteur2 * Processor\GlobalUsage, 1, Hauteur2 * Processor\GlobalUsage, $90000000)
						Plot(Largeur - 1, Hauteur2 * (Processor\Count + 1) - 1, $80BB3C90) ; Dessine l'axe horizontal
					StopDrawing()
					StartDrawing(CanvasOutput(0))
						DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Transparent)
						DrawAlphaImage(ImageID(0), 0, 0)
						DrawingFont(FontID(0))
						For Index = 1 To Processor\Count ; Affichage du pourcentage d'utilisation de chaque processeur sous forme de texte
							DrawText(4, 4 + Hauteur2 * (Index - 1), "Processeur " + Str(Index) + " : " + Str(100 * Processor\Usage(Index)) + "%", $FF000000)
						Next
						; Affichage du pourcentage d'utilisation processeur moyen (ou global) sous forme de texte
						DrawText(4, 4 + Hauteur2 * Processor\Count, "Moyenne : " + Str(100 * Processor\GlobalUsage) + "%", $FF000000)
					StopDrawing()
					
			EndSelect
			
	EndSelect
	
Until Event = #PB_Event_CloseWindow
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pourcentage d'utilisation du processeur

Message par Ar-S »

ça a l'air de correspondre avec l'affichage du taskmng. - 7 x64 / E8200 (2 cores)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Pourcentage d'utilisation du processeur

Message par MLD »

Salut LSI
AMD core2
semble ok
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Pourcentage d'utilisation du processeur

Message par Mesa »

Ok avec Xp, P4: 1 core.

Mesa.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pourcentage d'utilisation du processeur

Message par Backup »

hum sur mon 4coeurs (i7 2670QM) ton prg donne des chiffres bizarre ! qui ne correspondent pas

si je compare a HWINFO64sensor Statut ( http://hwinfo64-portable.softonic.fr/ )

ton prg me dis que les coeurs 1,3,6,7 fonctionnent et les : 2,4,5,8 restent a 0%
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Pourcentage d'utilisation du processeur

Message par Le Soldat Inconnu »

4 coeurs ou 8 coeurs ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Pourcentage d'utilisation du processeur

Message par nico »

4 coeurs physiques et au total 8 coeurs logiques!

J'ai un 2670 aussi, et ça à l'air correct mais difficile de savoir si la précision est bonne ou pas!
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Pourcentage d'utilisation du processeur

Message par Le Soldat Inconnu »

@Dobro : Et avec le programme de Jacobus (voir lien du premier sujet), cela fonctionne ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pourcentage d'utilisation du processeur

Message par Backup »

nico a écrit :4 coeurs physiques et au total 8 coeurs logiques!

J'ai un 2670 aussi, et ça à l'air correct mais difficile de savoir si la précision est bonne ou pas!
oui , mais pas d'apres Hinfo64 !!

qui lui indique bien l'activité des coeurs 0,1,2,3 (et leur threading respectif )

alors que le prg du soldat indique l'activité du threading ! (peut etre une moyenne a faire ...) mais a quoi ils correspondent ??

et de plus les chiffres en pourcentage, ne correspondent pas ...
m’étonnerai que Hinfo64 soit a remettre en cause, il est utilisé par les overclocker en tout genre ...mais bon..

je vais voir pour le prg de jacobus ;)
Dernière modification par Backup le mer. 22/févr./2012 14:33, modifié 2 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pourcentage d'utilisation du processeur

Message par Backup »

pour le prg de jacobus , pas mieux !!

le core 1 est a peut pret bon par rapport a Hinfo64
mais le reste est fantaisiste ( avec meme des chiffres négatif !! )

je pense que votre présentation n'est pas la bonne

il faudrait afficher de la sorte :

Core 1 Thread 1
Core 1 Thread 2
;*************
Core 2 Thread 1
Core 2 Thread 2
;*************
Core 3 Thread 1
Core 3 Thread 2
;*************
Core 4 Thread 1
Core 4 Thread 2

:)

utilise Hinfo64/86 pour tester ton prg , tu verra par toi meme :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Pourcentage d'utilisation du processeur

Message par Le Soldat Inconnu »

Mais chez moi, mon code marche, je ne verrai rien du tout :mrgreen:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pourcentage d'utilisation du processeur

Message par Backup »

Le Soldat Inconnu a écrit :Mais chez moi, mon code marche, je ne verrai rien du tout :mrgreen:
tu l'a comparé a Hinfo ??
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Pourcentage d'utilisation du processeur

Message par Le Soldat Inconnu »

Dis moi si le code de ce sujet
http://www.purebasic.fr/english/viewtop ... ssor+usage
fonctionne chez toi

(le code tout en bas du thread dans un zip)

Non, j'ai pas comparé, je ne trouve pas ton programme
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pourcentage d'utilisation du processeur

Message par Backup »

Le Soldat Inconnu a écrit :Dis moi si le code de ce sujet
http://www.purebasic.fr/english/viewtop ... ssor+usage
fonctionne chez toi

(le code tout en bas du thread dans un zip)
regarderai demain :)
Non, j'ai pas comparé, je ne trouve pas ton programme
tu veux des lunettes ? :)
Dobro a écrit :hum sur mon 4coeurs (i7 2670QM) ton prg donne des chiffres bizarre ! qui ne correspondent pas

si je compare a HWINFO64sensor Statut ( http://hwinfo64-portable.softonic.fr/ )

ton prg me dis que les coeurs 1,3,6,7 fonctionnent et les : 2,4,5,8 restent a 0%
GG
Messages : 239
Inscription : jeu. 09/déc./2004 12:23

Re: Pourcentage d'utilisation du processeur

Message par GG »

Sur un bi-core Pentium 4 3 Ghz sous XP, cela semble en phase avec le gestionnaire de tâches.
PureBasic 6.03 - Windows 11 22H2 (64 bits)
Répondre