begin process at 2012 02 11 09:42:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Optimisation du code

 > TIMER HAUTE PRÉCISION

TIMER HAUTE PRÉCISION


 Information sur la source

Note :
Aucune note
Catégorie :Optimisation du code Classé sous :timer, précision, chronomètre Niveau :Débutant Date de création :13/09/2006 Date de mise à jour :13/09/2006 12:42:40 Vu / téléchargé :7 264 / 782

Auteur : Agaga

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Ce projet est en fait une DLL qui regroupe des procedures de l'API windows permettant de mesurer le temps écoulé entre deux instants de manière très précise (de l'ordre de la nanoseconde).



 Conclusion

Le fonctionnement est simple. Déclarez un objet cTimerHiRes et ensuite pour chronometrer utilisez obj.TimerStart au debut du code a chronometrer et obj.TimerStop a la fin du code, ensuite appelez getTimeElapsed pour recuperer le temps écoulé (de type Double).

Cette source a été en partie récupérée d'un exemple d'API-Guide.

NB: un petit conseil, au lieu de cliquer sur le bouton de lancement du code "|>", tapez "main" dans la console de debug.

 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


 Historique

13 septembre 2006 12:42:40 :
Ajouté : choix de l'unité du résultat (automatique ou prédéfini par l'utilisateur) et de quelques commentaires supplémentaires.

 Sources du même auteur

Source avec Zip Source avec une capture COURBES DE BEZIERS PAR L'ALGO DE DE CASTELJAU
Source avec Zip Source avec une capture TRACEUR DE FONCTION ÉVOLUÉ [EN TRAVAUX]
Source avec Zip DICTIONNAIRES, ANAGRAMMES : ALGOS EFFICACES
Source avec Zip Source avec une capture HEXVIEWER : VISUALISATEUR DE FICHIERS EN HEXADECIMAL
Source avec Zip SAUVEGARDE DE PARAMETRES EN .INI(OU AUTRE)

 Sources de la même categorie

Source avec Zip FONCTIONS PRATIQUE POUR LISTVIEW par Galactus13
Source avec une capture Source .NET (Dotnet) HISTOGRAMME - SUITE - GRAPHIQUE DE BARRES VERTICALES POUR UN... par tchconst
Source .NET (Dotnet) HISTOGRAMME (BIS) BARRES VIA DATATABLE 100 % PERSONNALISÉ par tchconst
Source avec une capture Source .NET (Dotnet) AFFICHER UN HISTOGRAMME PERSONNALISÉ par tchconst
Source avec une capture Source .NET (Dotnet) PROFIL BINAIRE D'UN OBJET par tchconst

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture JEU DU SERPENT/TRON par dada9109
Source avec Zip Source avec une capture PLANCHE CONTACT SOUS WORD par Le Pivert
Source avec Zip [VBA] CHRONOMOTS par Softmama
Source avec Zip FERMER UN PROGRAMME OU UN PROCESSUS par 123collargol
Source avec Zip CLASSE CHRONOMÈTRE HAUTE PRÉCISION par mythic_kruger

Commentaires et avis

Commentaire de Cacophrene le 13/09/2006 11:54:10

Salut !

Ce n'est pas vraiment nouveau, mais ça a le mérite d'être regroupé dans une classe. Seul problème : ça manque de commentaires (deux commentaires en anglais, dont l'un avec une faute d'orthographe : "ampty").

Sinon, une suggestion : il serait sympa d'ajouter un argument optionnel à la fonction getTimeElapsed afin de pouvoir préciser l'unité voulue (s, ms, µs ou ns). Si le paramètre n'est pas précisé par l'utilisateur, tu pourrais faire en sorte que ta fonction choisisse toute seule l'unité la plus appropriée (celle qui donne grosso modo 0 < temps mesuré < 1000).

Peut-être même que ce code aurait pu aller dans les fragments (codes Snippets). Bon l'avantage ici, c'est qu'il s'accompagne d'un exemple.

Voilà tout ! Je n'ai pas noté.

Cordialement,
Cacophrène

Commentaire de Agaga le 13/09/2006 12:04:09

ok, merci pour tes remarques.

J'ai quand meme une question ... (noob de moi !) : ca veut dire quoi un "fragment", et "codes snippets) ??

Quand a ce que tu as dit au sujet de l'unité, c'est une bonne idée, je vais m'y ateler. Pour info, ce petit dll m'a servi dasn une autre appli, tel quel et je me suis dit que ca pourrait servir, c'est pour ça quil n'y a pas grand chose, juste le strict minimum ;).

A+

Commentaire de violent_ken le 13/09/2006 13:38:33

Salut, voilà ce que sont que les Snippets :

http://www.codyx.org/

@+

Commentaire de clubpsr le 13/09/2006 13:41:43

Je te cite : un petit conseil, au lieu de cliquer sur le bouton de lancement du code "|>", tapez "main" dans la console de debug.

Tu peux dire pourquoi c'est mieux ?

Commentaire de Agaga le 13/09/2006 13:44:30

OK merci beaucoup ! :)

Par contre, j'en ai regardé une dizaine et vraiement, la grande majorité est inutile ! ou alors, j'ai pas bien pijé le truc ...

Par exemple, un gars ecrit une enorme fonction pour supprimer les espaces d'une chaine, alors que la commande 'replace(str," ","")' le fait tres bien et plus vite !... c'est qd meme bizarre, et ce n'est pas le seul code ainsi. Que penser ?

A+

Commentaire de Agaga le 13/09/2006 13:48:04

CLUBSPR :
C'est uniquement pour le test que j'ai créé. En effet, si tu tapes simplement main dans la console, l'execution se fait instantanément sans précompiler le code, donc c'est plus simple et plus rapide pour tester plusieurs fois (enfin, il me semble).

Commentaire de clubpsr le 13/09/2006 13:54:20

J'ai lu dans ton code : 'faute d'avoir le vrai caractère pour micro, on met "u" ....

Regarde la touche entre "%" et "return", tiens je vais voir se qui se passe si j'appuye dessus ***** et avec shift µµµµµµµµµµ

Juste ce que tu voulais, j'ai toujours dit qu'il y avait trop de touche sur ce clavier.

Commentaire de Agaga le 13/09/2006 13:56:16

mdr !!!
Merci, j'aurais appris beaucoup de choses aujourd'hui :p !!!

Commentaire de PCPT le 13/09/2006 17:02:34 administrateur CS

Agaga -> comme tu l'as vu les snippets c'est des morceaux de code, des petites fonctions pratiques, etc...
et pour l'exemple dont tu parles (http://www.codyx.org/snippet_supprimer-espaces-multiples_165.aspx il me semble), 2 méthodes sont proposées.

de plus le but n'est pas de remplacer les espaces mais les espaces multiples par un seul.
donc replace(str," ","") serait faux, et replace(str,"  "," ") laisserait les triplons etc...

voilà pour la petite info du jour ^^


pour ton code, pas regardé...
++

Commentaire de Agaga le 13/09/2006 17:09:08

Oui, en effet, tu as raison, je m'y suis pas assez penché dessus. Et a vrai dire je n'avais pas vu la deuxieme version... qui elle utilise replace. et aussi, encore etourderie de ma part, je pensais qu'il s'agissait juste de supprimer tous les espaces de la chaine, c'est d'ailleur ce que j'ai ecrit au-dessus... dc encore désolé, le code etait finalement pertinant !

Commentaire de Cacophrene le 13/09/2006 19:55:07

Salut !

C'est beaucoup mieux comme ça ! Par contre, au sujet de la longueur des fonctions dans les fragments (codes snippets), il faut dire plusieurs choses :

1. Des fonctions comme Replace / Split n'existent pas dans VB5 et antérieur. Donc, si on s'en passe, ce n'est pas forcément très mauvais (même si c'est sans doute pénalisant pour les performances)

2. Les fonctions les plus courtes ne sont pas toujours les plus rapides. Surtout parmi les algorithmes, il existe des cas bien connus (nombres premiers, Fibonacci, Fourier, etc...) de versions "longues" dont les équivalents "courts" sont beaucoup plus lent.

Conclusion : Il y a sans doute de bonnes raisons à voir parfois de longs codes là où on s'attend à trouver deux lignes qui se battent en duel ;-)

Sinon oui désolé j'aurais dû préciser pour snippets... surtout avec ma manie de tout franciser :-). "Fragments" n'est utilisé nulle part (sauf erreur) sur ce site.

Cordialement,
Cacophrène

Commentaire de violent_ken le 13/09/2006 19:57:28

Très intéressantes, tes deux remarques.

@+

Commentaire de Agaga le 13/09/2006 20:04:07

OK, je pense avoir saisi (ce fut long et laborieu, mais avec le temps, j'apprend vite ! XD ).

Bref, je pense qu'on a fait le tour du sujet ;).


A+ et merci pour les eclaircissements !

Commentaire de Afyn le 16/09/2006 16:10:58

En fait c'est pas un timer (comme celui de VB) c'est un chronomètre ...
Petite précision ... mais grosse différence

Afyn
Navedac

Commentaire de Agaga le 16/09/2006 16:27:42

Tu as tout a fait raison, ce n'est pas un TIMER... mais j'ai employé le mot TIMER en référence a l'instruction Timer qui fonctionne de la meme façon.

a+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

timer : précision < 10 ms, possible ?? [ par airbeu ] Salut, je suis sous XP avec visual basic 5.0Je cherche à déclencher un fonction toutes les millisecondes, or le problème est que la précision de l'int Timer : est-il fiable ? [ par Nichlas ] Bonjour,j'ai réalisé un chronomètre, mais je suis confronté à un problème. Selon la machine où je lance le chronomètre, les secondes avancent plus ou Timer [ par MouLeT ] Voil&#224; quand on met un Timer sur une Form, on &#224; une pr&#233;cision quasiment au dixi&#232;me. Et comme sur les jeux vid&#233;os&nbsp;je vois Timer avec visual basic editor de excel 2003 [ par Vincentdu13 ] Bonjour, je me sers de Visual basic Editor de Excel 2003 (UserForm), or il n'y a pas de controle "Timer" (Timer1, Timer2 ect...)J'ai tent&#233; de cop afficher une image pendant une seconde grace a la fonction timer [ par diabolikbp91 ] Bonjour ,j'ai un probleme avec la fonction timer ,je ne sais pas comment faire afficher une image pendant seulement une seconde.merci de m'aider. Diab Timer VB6 [ par ghostyon ] Bonjour,D&#233;butant en VB6, je me rend compte que le timer de VB6 ne permet pas un interval de 2min soit 1200000ms.Y a-t-il quelqu'un parmis vous qu Projet avec plusieurs form problemes d'objet [ par darkwhite ] Bonjour a tous dans mon projet vb j'ai plusieurs form. comment on fait pour&nbsp; q'un objet soit acccesible par toute les form exemple: dans la form Controle Timer (VB6) [ par nathan ] Salut !en vb6, comment remettre a 0 la valeur d'un timer (controle timer)&nbsp;! Quand je met enabled = false ok il s'emble s'arreter mais si je remet timer [ par fallen_13 ] Bonjour, J'ai un souci sur un timer qui se bloque et reste inactif. Pour r&#233;sumer mon application, c'est une mise a jour automatique d'un diaporam stopper un timer... [ par leptigwen ] slt, je voudrais savoir comment stopper un timer??


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,108 sec (3)

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