VITESSE CPU EN MGHZ (WIN32)

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 juin 2004 à 15:25
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008 - 8 juil. 2004 à 17:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23802-vitesse-cpu-en-mghz-win32

FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
8 juil. 2004 à 17:09
Marche nikel chez moi
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2004 à 15:17
mirlaine > teste sur bixeon Server 2003, va impec.
mirlaine Messages postés 32 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 24 août 2005
26 juin 2004 à 14:45
salut
je me demandai si yavai dotre moyen pour trouver la vitess du cpu...

je sai pas si ton code tien compt des system à plusieur processeur
et je me demandai si c'etait possible san api enfin c'est pluto commen
c'est possible car ca deja ete fait je pense

sinon chez moi ca march tres bien a+
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 15:07
Heu... Mais je crois pas que ton code soit plus rapide que le miens...

Le nombre d'instruction que tu met dépasse une boucle avec div !

Bon la mienne ne mes pas à jours EDI ? Bah ! Suffit de modifer la valeur pushé par le pushad dans la pile ! C'est tout !

Tu sais quoi ? Et bien dès que j'ai du temps, je vais tester la vitesse de nos deux fonctions avec 1000 ou 10000 execution à la suite.

Je te tiendrais au courant.

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2004 à 14:28
'div' est une cata en terme de perf et surtout dans une boucle.
Ma ultoa retourne pointeur sur fin d'ecriture, tres pratique pour les chainages par exemple dans du reporting, on gagne pas mal de temps. Bien entendu ici c'etait inutile, on peut donc retirer 2 instructions mais vraiment pas grave.
125 milli secondes est le temps qu'on reste dans la boucle a agiter le processeur, faudrait ajouter les quelques calculs de debut et de fin mais doit etre infime avec les processeurs actuels.
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 14:21
Ah, excuse, j'ai oublier arprès la boucle 2 de mettre:

xor al, al
stsb

Là ! C'est mieux ;0)

@+
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 14:16
Autre chose encore, elle est viollante ta procedure ultoa !!!

Tu pourrais faire plus cours quand même !
En passant par la pile ;) Y moins de condition ! (PLus qu'une)

Un truc du genre:

EAX = LONG
EDI = *Str

ultoa:
pushad
pushf

cld

xor cx, cx
mov ebx, 10

.boucle
xor edx, edx
div ebx ; EDX:EAX div EBX > EAX Qotient et EDX Reste.

add dl, 48 ; Convertion en Ascii.
push dx

inc cx

test eax, eax
jnz .boucle

.boucle2
pop ax
stsb ; Met dans la chaîne al <=> chiffre ascii.
loop .boucle2

popf
popad
ret

Voilà ! C'est ce que j'utilise...
M'enfin ta peut-être tes raisons...

@+
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 14:05
Oui ! Lol

T'as raison, mais je veut dire qu'indifférament du temps, on peut shopper la vitesse du CPU. C'est bien pratique !

Mais une question ? Comment fonctionne les timers précis de Windows ? Parce qu'en programmation système, j'ai pas (encore ;) trouvé le moyen de faire ça !

Je connais bien sur l'interruption timer, mais elle est limitée à 55 millisecondes...

Et c'est pas rond pour 125 milisecondes !

M'enfin je me goure de calcul peut-être...

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2004 à 13:43
Attendre... je veux bien mais me semble que le but d'un prog est le resultat juste en un minimum de temps, non ?
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 13:30
Ok. Merci.

Mais de toute magnière, on peut attendre une seconde, c'est pareil nan ?

Vu que c'est tout les cycles que le compteur avance...

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2004 à 11:24
Le bouclage est sur QueryPerformanceCounter en CONTINU jusque atteigne 125 milli secondes. RDTSC est 1 fois au debut avant boucle et 1 fois en sortie.
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
22 juin 2004 à 11:11
C'est un P4 2000mh detecté partout comme un 2017mhz.
C'est ça fréquence d'origine. (PEut pas le monter ! Le FSB arrache tout sinon ;0)

J'ai fais des testes, et j'ai pas eu autre chose quze 2017 !
C'est peut être que le CPU était occuper sur une tâche prioritaire qui à laisser le temp à tes valeur de boucler ?

Mais j'oubliais de te dire bravo ! Pour cette source ;)

Au fait, t'attend conbien de temp entre chaque réception du RDTSC ?
10 Millisecondes ? PLus ? Moins ?

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 juin 2004 à 23:26
Dixit Intel manuel 2:
RDTSC—Read Time-Stamp Counter
This instruction loads the current value of the processor’s time-stamp counter into the EDX:EAX registers. The time-stamp counter is contained in a 64-bit MSR. The high-order 32 bits of the MSR are loaded into the EDX register, and the low-order 32 bits are loaded into the EAX register. The processor increments the time-stamp counter MSR every clock cycle and resets it to 0 whenever the processor is reset.

Bombela > c'est quoi comme type de processeur, tu as peut-etre une gestin d'energie dessus qui lui abaisse la frequence si peu employe ?
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
21 juin 2004 à 22:18
J'ai pas le temps d'analyser ton code, tu pourrais me l'expliquer ?

(Je parle de la procédure pour analyser la vitesse de CPU)

Juste que tu mettes quelques commentaire, notament pour l'instruction spéciale que tu utilise. (Elle choppe le nombre d'instruction executée par le CPU ?)

Merci man !
Bombela Messages postés 225 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 juillet 2008
21 juin 2004 à 22:01
Zut !

Pour un 2000Mhz, ocille entre 2017 et 2200 !!

Y a un blême...

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 juin 2004 à 15:25
Prog de test dans le zip.
Rejoignez-nous