Test vitesse selon type (win32, win64)

Soyez le premier à donner votre avis sur cette source.

Vue 6 441 fois - Téléchargée 303 fois

Description

Le zip contient version Win32 et x64.

Seuls intéressent les résultats indiqués par la colonne 'perfs', le reste n'est qu'un retour bidon de fonction.

Pour continuer la discussion commencée en commentaires sur:
http://www.cppfrance.com/code.aspx?ID=45969
où j'avais dit:
"Si on mettait le 'int' à 2 octets ce ne serait pas une optimisation mais une nuisance surtout en terme de perfs.
Ce code est pour Window qui a fort heureusement et définitivement (comme les autres acteurs majeurs) exclu C99 de ses compilos, int et long resteront à 4 octets."

Je mets en évidence par ce code que les manipulations sur 4 octets (8 pour x64) sont toujours les meilleures.
Tout le code des boucles est en ASM pour ne pas être dépendant des optimisations incontrolables du compilateur. Les boucles sont strictement identiques pour chaque bouton, aucun accès mémoire qui provoquerait des rechargement de page, juste une lecture et écriture sur adresse fixe de la stack par tour de boucle et la même pour chaque test.

CONSTATATIONS PERSO:
Sur Win32: le bouton DWORDs donne quasi à tout coup les temps nécessaires à ce calcul stérile. On note par contre avec BYTEs et WORDs des variations très importantes et très fréquentes. Je n'ai pas la réponse certaine du pourquoi, je suppose une latence de cache due au chargement des instructions courtes préfixées.
Sur x64: QWORDs et DWORDs idem, surement du au fait que x64 n'est qu'une extension du 32. L'emploi de BYTEs et WORDs y est toujours aussi contre productif.

Variations identiques avec Windows XP sur P4 HT et Window Server 2008 x64 sur bi XEON.

Toutes vos constatations et commentaires seront les bien venus.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
152
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
29 avril 2009

tester sous vista avec core duo 2 6750 @ 3.2ghz (car je pence que loverclocking y est pour quelque chose aussi :) )

BYTEs=13463
WORDs=13534
DWORDs=13612
mais tres variable quand même
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
Voici mes meilleurs scores :)
BYTEs=4073
WORDs=4076
DWORDs=4059
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
En version 32, bien entendu je n'ai pas implémenté QWORD car l'adressage natif 64 n'existe pas (hors les registres XMM mais dans un tout autre but).
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Comme tous les tests, faut faire sur une série, pour ça que j'ai mis des boutons. Répéter plusieurs fois de suite la même fonction et noter le meilleur temps et les variations.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
Au test suivant j'ai 5087, 4196 et 4074
Afficher les 7 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.