Calculer la vitesse du cpu

0/5 (11 avis)

Snippet vu 6 136 fois - Téléchargée 33 fois

Contenu du snippet

bein voila une chtite function qui calcule la vitesse du cpu.

faites par exemple

label1:=inttostr(GetCpuSpeed);

voila bon coding a vous

ManChesTer

Source / Exemple :


function get_cpu_speed:dword;
{
 voila un chtite functon pour prendre la vitesse
 du cpu qui marche avec un pentium au minimum

 bon coding a vous ...

 ManChesTer (c)2002 freeware
}
var Speed : dword;
    perform: int64;
begin
 perform:=0;
 SetpriorityClass(getcurrentprocess,REALTIME_PRIORITY_CLASS);
 SetThreadPriority(getcurrentThread,THREAD_PRIORITY_TIME_CRITICAL);
 asm
   push eax
   push edx
   push ecx
   push 1000
   call sleep      // appel de sleep(1000)
   dw   $310F      // rdtsc (red internal cpu timer in cycle)
   add  eax,edx
   mov  speed,eax  // stokez les cycles machine
   push edx
   xor  eax,eax
   push 1000
   call sleep      // appel de sleep(1000)
   pop  edx
   dw   $310F      // relire le timer cpu rdsc
   add  eax,edx
   sub  eax,speed  // garder 1000 millisecondes (1 seconde)
   mov  speed,eax  // le stocké dans speed;
   pop  ecx
   pop  edx
   pop  eax
 end;
 result:=round((speed / 1000000) / 3)*3; // div 3 * 3 a cose de busfeq
end;

A voir également

Ajouter un commentaire Commentaires
LeFrettchen Messages postés 23 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 17 octobre 2005
2 sept. 2004 à 00:09
ah ouais, effectivement, ça marche mieux avec uses windows;

merci tout plein !
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
1 sept. 2004 à 22:03
lol,

uses Windows;

int64 est reconnu par Delphi 4....

Dword peut etre remplacer par Cardinal;

Bon Coding...

ManChesTer.
LeFrettchen Messages postés 23 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 17 octobre 2005
1 sept. 2004 à 02:30
bin chez moi ça marche pas !
connais pas : dword, int64

quelqu'un serait-il assez gentil pour nous traduire ça en Delphi ?

En plus, j'ai Delphi 4, et il ne reconnait pas :
- SetpriorityClass
- getcurrentprocess
- REALTIME_PRIORITY_CLASS
- SetThreadPriority
- getcurrentThread
- THREAD_PRIORITY_TIME_CRITICAL
- sleep

et il me trouve des erreurs de concordance de taille d'opérande
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
28 juin 2004 à 23:48
Avec les hordes de dresseurs de mûles qui traine sur ce site ...
Je comprends pourquoi il faut le mettre en priorité ... haute :þ

(Chauffe Chauffffe mon DD ... :D !)
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
8 janv. 2004 à 21:59
_jonathan,

Non ce n'est pas determinant mais indispensable pour obtenir un resultat valable, lol

en effet si windows ecrit sur le disque dur (par exemple) au moment ou tu lance la routine sans definir une prioritè "Haute", tu peux obtenir nimporte quel genre de valeur fantaisistes 4.888 mz pour un Pentium 200mz par exemple...

Windows est ultitache et il faut en tenir compte ;o))

Bon coding ...

ManChesTer.
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.