Calculer la vitesse du cpu

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 793 fois - Téléchargée 31 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

Messages postés
23
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
17 octobre 2005

ah ouais, effectivement, ça marche mieux avec uses windows;

merci tout plein !
Messages postés
368
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013

lol,

uses Windows;

int64 est reconnu par Delphi 4....

Dword peut etre remplacer par Cardinal;

Bon Coding...

ManChesTer.
Messages postés
23
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
17 octobre 2005

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
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010

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 !)
Messages postés
368
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013

_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.