Moi chui pas d'accord qu'Erix14 mette fond au débit comme ça! Désolé, je suis beaucoup plus curieux que je ne vous semble l'être à ce sujet!
Erix14 sous-entend que la seule visu du fichier ASM est valable. Ce qui est quand même faux puisque c'est par là qu'on commence!! Le fichier ASM c'est la théorie. Dans la pratique, chaque CPU va allègrement avaler certaines de ces instructions selon le contexte que l'électronique est capable de prendre ou non en charge (multi-coeurs, pipeline, caches, etc...).
Et c'est bien le résultat de tels tests qui permet d'obtenir une idée. Notamment le dernier code que j'ai posté qui est radical: j'obtiens personnellement un rapport de 6 pour 1 avec un poste à galène à 1GHz. Donc, logiquement, même avec des grosses bécanes multi-coeur, vous avez forcément une différence significative.
Là où l'on est tous d'accord, c'est que ça n'est pas une optimisation à suggérer de mettre en natif, puisque, comme dit Erix14, dans le cas actuel la valeur de fin de boucle est mise à jour à chaque boucle, ce qui est une fonctionnalité à part entière.
Dans le cas où une boucle n'a pas à modifier sa valeur de fin durant son exécution, faire le calcul avant et le stocker dans une variable permet de gagner des ressources CPU. Là-dessus, je pense qu'on est aussi d'accord.
Mais, maintenant, LSI, d'une erreur d'inattention, tu as, je pense trouvé une caractéristique intéressante de ton CPU, qu'il est peut-être bon de mettre en lumière. C'est pour cela que j'ai posté ce dernier code plus haut. Il t'épargne de rédiger 100 boucles imbriquées l'une dans l 'autre, dont l'expression de max de boucle est modifiable à volonté en ligne 70:
Code : Tout sélectionner
BouclageEcriture(2, 100, "X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M")
Il stocke, compile et exécute ainsi le fichier enfant "TempForNextTest.PB". Dans ce cas-ci, 22 multiplications par boucle, sont effectuées pour bien saturer ton CPU. Mais n'hésite pas à diminuer le nombre de multiplications pour trouver le seuil d'équilibre. Pour ma part, il est à... 0 multiplications! (Quand je ne laisse que "X" en ligne 70). Dès que je mets une première multiplication, j'ai une moyenne de 28% de temps en cycles supplémentaires. Si ton CPU a plusieurs coeurs (je lis quad core dans ta signature), visiblement, avec une équivalence de temps de cycles quand tu lui fourgues 3 multiplications, c'est qu'il sollicite tous ses coeurs!
Je fantasme un peu mais si, à la 4ème multiplication insérée, tu restes dans un équilibre de temps de cycles (deux valeurs aproximativement idem de temps de cycles), c'est que ton CPU ne sollicite plus seulement tous ses coeurs, mais qu'il sollicite un éventuel cache. Dans ce cas, la capacité de ce cache peut-être étudiée pour savoir combien de variables mémoire et d'opération, il mémorise temporairement, etc... ça peut être très utile pour de futurs gros calculs répétitifs.
Bref! N'hésite pas à perdre un peu de temps à tester ce code et à m'en retourner quelques valeurs quand tu auras le temps. Je suis curieux de savoir ce que ça donne!
Pour info, le code enfant créé de manière automatique ressemble à ça:
Code : Tout sélectionner
DisableDebugger
Define Ini1.I
Define Fin1.I
! RDTSC
! MOV [v_Ini1], Eax
For AA = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AB = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AC = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AD = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AE = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AF = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AG = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AH = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AI = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AJ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AK = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AL = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AM = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AN = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AO = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AP = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AQ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AR = 0 To XYZTUVWXYZABCDEFGHIJKLM
For As = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AT = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AU = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AV = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AW = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AX = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AY = 0 To XYZTUVWXYZABCDEFGHIJKLM
For AZ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BA = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BB = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BC = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BD = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BE = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BF = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BG = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BH = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BI = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BJ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BK = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BL = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BM = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BN = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BO = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BP = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BQ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BR = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BS = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BT = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BU = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BV = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BW = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BX = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BY = 0 To XYZTUVWXYZABCDEFGHIJKLM
For BZ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CA = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CB = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CC = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CD = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CE = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CF = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CG = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CH = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CI = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CJ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CK = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CL = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CM = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CN = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CO = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CP = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CQ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CR = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CS = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CT = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CU = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CV = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CW = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CX = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CY = 0 To XYZTUVWXYZABCDEFGHIJKLM
For CZ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DA = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DB = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DC = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DD = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DE = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DF = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DG = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DH = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DI = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DJ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DK = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DL = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DM = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DN = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DO = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DP = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DQ = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DR = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DS = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DT = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DU = 0 To XYZTUVWXYZABCDEFGHIJKLM
For DV = 0 To XYZTUVWXYZABCDEFGHIJKLM
! RDTSC
! MOV [v_Fin1], Eax
Break 100
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Define Ini2.I
Define Fin2.I
! RDTSC
! MOV [v_Ini2], Eax
For AA = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AB = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AC = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AD = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AE = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AF = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AG = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AH = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AI = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AJ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AK = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AL = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AM = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AN = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AO = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AP = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AQ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AR = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For As = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AT = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AU = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AV = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AW = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AX = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AY = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For AZ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BA = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BB = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BC = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BD = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BE = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BF = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BG = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BH = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BI = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BJ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BK = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BL = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BM = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BN = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BO = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BP = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BQ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BR = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BS = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BT = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BU = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BV = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BW = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BX = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BY = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For BZ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CA = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CB = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CC = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CD = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CE = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CF = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CG = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CH = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CI = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CJ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CK = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CL = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CM = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CN = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CO = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CP = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CQ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CR = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CS = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CT = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CU = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CV = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CW = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CX = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CY = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For CZ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DA = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DB = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DC = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DD = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DE = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DF = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DG = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DH = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DI = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DJ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DK = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DL = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DM = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DN = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DO = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DP = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DQ = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DR = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DS = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DT = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DU = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
For DV = 0 To X * Y * Z * T * U * V * W * X * Y * Z * A * B * C * D * E * F * G * H * I * J * K * L * M
! RDTSC
! MOV [v_Fin2], Eax
Break 100
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
MessageRequester("Quantité approx de cycles utilisés", "Avec optimisation = " + Str(Fin1 - Ini1) + " cycles" + Chr(10) + "Sans optimisation = " + Str(Fin2 - Ini2) + " cycles")