begin process at 2012 02 12 19:30:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > TEST VITESSE SELON TYPE (WIN32, WIN64)

TEST VITESSE SELON TYPE (WIN32, WIN64)


 Information sur la source

Note :
Aucune note
Catégorie :Système Classé sous :ASM, TYPE, OPTIMISATION, x64 Niveau :Débutant Date de création :09/03/2008 Vu / téléchargé :4 759 / 132

Auteur : BruNews

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64)
Source avec Zip Source avec une capture FIND TEXT (WIN64)
Source avec Zip DELETE DIRECTORY (WIN64)
Source avec Zip ENUM DIRECTORY (WIN64)
Source avec Zip TEMPLATES C/C++ POUR VS 2010

 Sources de la même categorie

Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10
Source avec Zip PETITE CLASSE DE GESTION DES PROCESSUS SOUS WINDOWS par wisar
Source avec Zip KEYLOGGER AVEC NOM DU PROCESSUS ET DE LA FENETRE QUI A LE FO... par wisar
Source avec Zip LINUX USB BOOT LEGER par patatalo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip Source avec une capture CRIBLE D'ERATOSTHÈNE OPTIMISÉ par pgl10
Source avec Zip Source avec une capture OPTIMISATION DE CALCULS (WIN64) par BruNews
Source avec Zip Source avec une capture CALENDRIER (WIN64) par BruNews
Source avec Zip Source avec une capture DATE EN OLE INT (WIN64) par BruNews

Commentaires et avis

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


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

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

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

Au test suivant j'ai 5087, 4196 et 4074

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.

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

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

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

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 Visual Studio 2008 x64 et procedure __asm [ par ld121962 ] Bonjour, Je voudrais passer un code de win32 en x64. A la compilation j'ai un message me disant que le mot clef "__asm, mov, etc.." sont inconnus. Q calculer les intervalles avec boost [ par nassim1987 ] Bonjour, J'utilise la bibliothèque C++ Boost ,avec la librairie qui gère les intervalles . je voudrais utiliser la notion d'arrondi(rounding), j'ai Template et héritage [ par ndubien ] Bonjour, Je souhaiterais savoir s'il est possible de créer une classe utilisant un template "restreint" à certaines classes. Je m'explique, je souha Application type boite de dialogue [ par Sophia ] Bonjour,j'utilise borland c++ 5.02 et je voudrais faire une application type boite de dialogue.Avec les fonctions DialogBox, CreateDialog,CreateDialog VC++ fait chier [ par GoldenEye ] Qui peut me dire comment on place le curseur où on veut et ce sans Borland ( conio.h et gotoxy aux chiottes donc ) sous DOS et avec VC++ 6.0 ( ça fait Conversion de types de données... [ par nullspace ] J'ai jamais réussis à trouver une bonne solution pour convertir un type de variable dans une autre variable ayant un autre type.Par exemple...si j'ai petit pb de type string [ par bidules ] D'apres ce que g pu apprendre lorsque l'on veut declarer une variable de type string il faut faire :#include <string>string variable;c bien ca? Variable int sur le disque... [ par nullspace ] Je cherche à enregistrer et lire sur le disque par ofstream et ifstream à partir de variables de type int.Seulement il m'écrit sous format texte.En vb Conversion de type [ par Dlofret ] Bonjour, J'aimerais une façon simple d'afficher une donnée de type float dans un format string. Comment dois-jem m'y prendre ??


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,416 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales