MESURES EN HAUTE PRECISION (WIN32)

sitesref Messages postés 40 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 31 juillet 2004 - 31 juil. 2004 à 17:30
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 févr. 2007 à 10:57
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 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2007 à 10:30
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 202 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 29 janvier 2019
16 févr. 2007 à 01:33
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 202 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 29 janvier 2019
16 févr. 2007 à 01:22
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
5 avril 2006 à 00:04
Ca serait possible que tu files le code du programme en entier stp ca m'intéresserait beaucoup :p
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 août 2004 à 15:20
La maj avec reduction de taille incorpore le code ID=23802.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 juil. 2004 à 18:01
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
31 juil. 2004 à 17:30
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.
Rejoignez-nous