MESURES EN HAUTE PRECISION (WIN32)

Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
31 juillet 2004
- - Dernière réponse : Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
- 16 févr. 2007 à 10:57
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
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
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