MESURES EN HAUTE PRECISION (WIN32)

Signaler
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
31 juillet 2004
-
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11006-mesures-en-haute-precision-win32

Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
dis Brunews, t'es toujours embetté...
que tu postes chaque source sur chacun des sites CS (Asm et Cpp, quoi ^^) selon leur langage, ou que tu regroupe tout dans le même zip, certains trouvent toujours a redire...

++
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
Dire nimporte quoi a donc plus sa place ici ???
Faut-il aussi supprimer les sources qui utilisent DirectX, OpenGL, Sdl, etc etc au prétexte qu'on en a pas les sources ?
Je suppose donc que tu n'as jamais employé sprintf() ni aucune lib dont on n'a pas les sources avec le compilo.
verdy_p
Messages postés
203
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
29 janvier 2019

Je motive ma demlande de supprimer ce code, car ce qu'est sensé faire la librairie c'est d'accéder à des registres spéciaux internes du processeur, qui peuvent même être réservés. Ce type de code sera nécessairement dépendant du type de processeur utilisé (rien n'indique qu'il sera portable ou ne rendra pas des résultats faux, ni que le type de processeur est correctement testé; de plus la détetion exacte du type de processeur nécessite des instructions privilégiées, et ce genre de librairie va donc tenter d'élever ses privilèges, ce qui constitue un risque élevé de sécurité, car cela se passe sans autorisation explicite de l'utilisateur!)

Réellement, pour mesurer le temps de façon précise, il y a des APIs Windows officielles qui permettent d'accéder de façon portable aux "compteurs de précision" supportés par Windows et mis à sa disposition par le pilote spécifique du processeur installé, ou par d'autres périphériques externes pouvant fournir des horloges encore plus précises.

Si on veut passer outre Windows et ses pilotes de processeur, il faut écrire du code assembleur qui va détecter le type de processeur et lire les registres de compteurs de temps de précision, ou à défaut, qui va effectuer une mesure empirique de boucle basée sur des profils de processeurs connus (mais rien ne dit que la mesure empirique obtenue fonctionnera sur toutes les générations de processeurs).

Ce code, de plus, est incapable d'estimer la précision de la mesure puisque, a priori, il tourne en tant que thread d'un processus, et que la mesure va être influencée par les processus et threads concurrents et l'activité générale du système. Pour que la mesure soit fiable, il faut mesurer des indicateurs de qualité, notamment avec plusieurs mesures non correllées et le calcul d'un écart type suffisant pour estimer la précision. C'est comme pour un sondage: il faut une population minimale dans l'échantillon de mesures pour estimer la précision du pourcentage de votes!

Bref, ce code est totalement à éviter, car il n'est pas possible d'en mesurer la sécurité, ni la fiabilité, ni la compatibilité.
verdy_p
Messages postés
203
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
29 janvier 2019

Ce code devrait être suppimé de la liste.

Ce n'est en effet pas du tout un code source mais juste un exemple d'utilisation (très basique car la partie sourcée ne contient rien au sujet de la mesure que ce programme est sensé faire, mais juste un squelette vide très générique similaire à une appli HELLO World de base) d'une librairie propriétaire (bnPrecis.lib avec bnPrecis.h) sans aucun source.

STRONG DELETE NOW. Ca n'a rien à faire ici!!!
nicolas66
Messages postés
116
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
4 janvier 2009

Ca serait possible que tu files le code du programme en entier stp ca m'intéresserait beaucoup :p
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
La maj avec reduction de taille incorpore le code ID=23802.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
http://www.asmfr.com/code.aspx?ID=23802
tu en as deja une partie ici refaite en mieux.
sitesref
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
31 juillet 2004

je comprends pas pq tu mets pas le code source de bnprecis.dll pask'après tt c ça le coeur du programme non ?

dommage paske les mesures sont très correctes.