Test vitesse selon type (win32, win64)

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

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.