UN PTIT CODE POUR PIKÉR LA VITESSE DES CPU INTEL RÈCENTS
cs_bgK
Messages postés131Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention19 janvier 2004
-
10 juin 2002 à 18:47
soumpro
Messages postés52Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention 7 mai 2004
-
29 mars 2004 à 17:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
soumpro
Messages postés52Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention 7 mai 2004 29 mars 2004 à 17:39
Bon , rien de particulier !
Il faut quand meme pousser un peu plus loin et ce n'est pas à 100% asm !
Enfin !
Scaq
Messages postés8Date d'inscriptionlundi 7 octobre 2002StatutMembreDernière intervention 8 janvier 2014 7 oct. 2002 à 16:56
Il y a il me semble une erreur de pile...
ou sleep commence par pop
ton code asm est en 32bits,il est plus rapide de passer les parametre par les registres
Je me trompe peut être!:)
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 12 juin 2002 à 03:31
C'est en effet une autre mèthode cam91.
Mais avec ton code, j'ai un plantage liè au fait que tu oublie de sauver les registres, qui bien sur sont modifiès par le call sleep.
Le rèsultat de ta routine est moins prècis (je ne comprend dailleur pas pq).
enfin ton code est un peux "camicase" mais peux convenir dans certains cas.
cs_cam91
Messages postés19Date d'inscriptiondimanche 9 juin 2002StatutMembreDernière intervention 4 février 2006 12 juin 2002 à 00:10
pas mal ton code, je ne connaissais pas le 'call sleep'.
Mais il y à une erreur, dw $310f stock la fréquence sur 64 bits dans edx:eax
(et non pas dans edx+eax). De plus il y a beaucoup de code inutile.
Je ne corrige pas l'erreur, mais je te propose un code plus simple
pour la même fonction qui est exact pour une fréquence <=4 Ghz.
Attention à diviser le résultat par 500000.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 10 juin 2002 à 21:07
Il est le premier, il a osé ! Ca mérite des encouragements, tout de même.
Félicitations, JLN.
Si c'est pas du vrai ASM ? Alors, que faut-il de plus ? ou de moins ?
Continues, mon gars...tu nous intéresses. [;-)]
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 10 juin 2002 à 19:51
Soyez sympa les gars, c'est le premier script et vous critiquez déjà. Attendez de voir la suite avant, non ??? Ceci dit il y a quand même un bout d'assembleur dans ce script, osez dire le contraire !
fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 20096 10 juin 2002 à 19:10
d'où la catégorie Delphi et ASM bgK
fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 20096 10 juin 2002 à 19:09
ca plante a
result:=cpu_speed;
:)
cs_bgK
Messages postés131Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention19 janvier 2004 10 juin 2002 à 18:47
C'est pas du vrai ASM, c'est pour ajouter dans un prog delphi !!! :)
29 mars 2004 à 17:39
Il faut quand meme pousser un peu plus loin et ce n'est pas à 100% asm !
Enfin !
7 oct. 2002 à 16:56
ou sleep commence par pop
ton code asm est en 32bits,il est plus rapide de passer les parametre par les registres
Je me trompe peut être!:)
12 juin 2002 à 03:31
Mais avec ton code, j'ai un plantage liè au fait que tu oublie de sauver les registres, qui bien sur sont modifiès par le call sleep.
Le rèsultat de ta routine est moins prècis (je ne comprend dailleur pas pq).
enfin ton code est un peux "camicase" mais peux convenir dans certains cas.
12 juin 2002 à 00:10
Mais il y à une erreur, dw $310f stock la fréquence sur 64 bits dans edx:eax
(et non pas dans edx+eax). De plus il y a beaucoup de code inutile.
Je ne corrige pas l'erreur, mais je te propose un code plus simple
pour la même fonction qui est exact pour une fréquence <=4 Ghz.
Attention à diviser le résultat par 500000.
function Tform1.get_cpu_speed:dword;
asm
push 1 ;call sleep;dw $310F;mov ecx,eax;
push 500;call sleep;dw $310F;sub eax,ecx
end;
11 juin 2002 à 10:46
ca marche bien en plus :-D
11 juin 2002 à 00:09
:p
10 juin 2002 à 21:07
Félicitations, JLN.
Si c'est pas du vrai ASM ? Alors, que faut-il de plus ? ou de moins ?
Continues, mon gars...tu nous intéresses. [;-)]
10 juin 2002 à 19:51
10 juin 2002 à 19:10
10 juin 2002 à 19:09
result:=cpu_speed;
:)
10 juin 2002 à 18:47