Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TEST VITESSE SELON TYPE (WIN32, WIN64)


Information sur la source



Description

Cliquez pour voir la capture en taille normale
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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de racpp le 09/03/2008 19:17:40 administrateur CS

Salut,
Très intéressant.
Sur mon p4 2.8:
BYTEs=4103
WORDs=4248
DWORDs=4410
QWORDs=champ reste vide


signaler à un administrateur
Commentaire de racpp le 09/03/2008 19:20:51 administrateur CS

Il parait que j'ai des résultats inverses non?

signaler à un administrateur
Commentaire de racpp le 09/03/2008 19:22:47 administrateur CS

Au test suivant j'ai 5087, 4196 et 4074

signaler à un administrateur
Commentaire de BruNews le 09/03/2008 19:30:12 administrateur CS

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.

signaler à un administrateur
Commentaire de BruNews le 09/03/2008 19:35:53 administrateur CS

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).

signaler à un administrateur
Commentaire de racpp le 09/03/2008 19:55:58 administrateur CS

Voici mes meilleurs scores :)
BYTEs=4073
WORDs=4076
DWORDs=4059

signaler à un administrateur
Commentaire de djmmix le 13/09/2008 17:01:01

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

optimisation d un code asm [ par sajid_morad ] salut tout le monde j aimerai bien savoir comment optimiser un code en assembleur ( le temps d execution des instruction le plus optimal ), et esqu il l asm et la config release [ par sajid_morad ] salut tout le monde, j ai un probleme avec la configuration release de visaul c++, le probleme c est que j ai due inserer un bout de code en asm dans release vs debug en asm !!!! [ par sajid_morad ] salut tout le monde, voulant optimisé une boucle qui prend un peu de temps je l ai réécri en asm, en effet j ai pu optimisé le temps en optimisant le supprimer objet de type BITMAP [ par tdeco ] SalutJ'utilise un objet de type BITMAP que je cré à partir d'un buffer et que j'affiche par la suite.Il y a t-il un moyen de supprimer cet objet après convertion de type [ par lu6fer ] voila je cherhe a convertir un tableau de caractere en entier.ce tableau contient des chiffre servant d'identificateur.et je voudrai le faire grace a test du pointeur [ par jeltimed ] bonjour .en fait je suis débutant en c++ et je voulais juste savoir est ce que ya moyen d'appliquer la logique suivant en c++: si pointeur pointe pb avec template et surcharge [ par luhtor ] Je veux créer une classe vecteur dont le type des vecteurs peut varié. Et je cherche à surcharger l'opérateur << . Quand je supprime la notion d Récupérer taille d'un méga fichier [ par Weedy_59 ] Enfin j'aurai peut-etre dus écrire en titre, avoir la taille d'un Giga fichier, lol. Oui mon problème c'est que je n'arrive pas à récupérer la taille Comment récupérer une valeur définie par __int64 ? [ par Weedy_59 ] Voici mon problème, je voulais acquérir la taille d'un fichier de + 4Go donc j'ai demandé une aide car a cause du type 'unsigned long' j'étais limité Changement de focus par TAB [ par simtiers ] Salut j'essaie de faire dans une de mes app une navigation par clavier entre chaque éléments de ma fenêtre principale, comme dans les boites de dialog


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,733 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.