Haute precision par dll

Soyez le premier à donner votre avis sur cette source.

Vue 4 542 fois - Téléchargée 465 fois

Description

une DLL de 3,5 Ko qui fournit:
- mesure vitesse processeur.
- mesure en ticks processeur.
- mesure en millisecondes.
de quoi optimiser vos algorithmes en les mesurant.
Les mesures fournies par cette dll ne sont pas dependants de la frequence de mise a jour donc PRECIS, ce qui n'est pas le cas GetTickCount.
Notez qu'il est fortement recommande de tester au moins 1 fois le retour de bnPrecisionOK avant de continuer, il indique la disponibilite du timer haute resolution du systeme.

Source / Exemple :


Option Explicit

Declare Function bnPrecisionOK Lib "D:\PrecisVb.dll" () As Long
Declare Function bnCpuSpeedMghz Lib "D:\PrecisVb.dll" () As Long
Declare Sub bnTicksStart Lib "D:\PrecisVb.dll" ()
Declare Function bnTicksResult Lib "D:\PrecisVb.dll" () As Double
Declare Sub bnMilliscndStart Lib "D:\PrecisVb.dll" ()
Declare Function bnMilliscndResult Lib "D:\PrecisVb.dll" () As Double

Function PerdreTemps(num As Long) As Double
  Dim d As Double, i As Long
  d = 1.5
  While num
    d = d + 1.5
    d = d - 1
    d = d + i
    num = num - 1
  Wend
  PerdreTemps = d
End Function

Sub TestDll()
  If bnPrecisionOK Then MsgBox "bnPrecisionOK"
End Sub

Sub DireCpuSpeed()
  If bnPrecisionOK Then MsgBox bnCpuSpeedMghz
End Sub

Sub TestTicks()
  Dim res As Double
  If bnPrecisionOK = 0 Then Exit Sub
  bnTicksStart
  res = PerdreTemps(9500000)
  MsgBox bnTicksResult
  MsgBox res
End Sub

Sub TestMillisecondes()
  Dim res As Double
  If bnPrecisionOK = 0 Then Exit Sub
  bnMilliscndStart
  res = PerdreTemps(9500000)
  MsgBox bnMilliscndResult
  MsgBox res
End Sub

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Je n'ose te conseiller d'aller jeter un oeil par là :
http://www.vbfrance.com/code.aspx?ID=17608

Bonnes Fêtes à tous et bonne prog.

Afyn
Navedac
Messages postés
6
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
28 décembre 2004

bonjour , j'ai un petit pb et je pense que cela peut m'aider ...
en fait pour le moment j'utilise un timer avec un interval
fixé a un , dans ce timer j'ai mis a a + 1 et if a >100 then a1 , jusque la tout va bien . pour chaque valeur de a , j'ai une action correspondante ( je peut pas gerer toutes ce actions en même temps , pb de conflits ) . Logiquement , a doit faire sa boucle 10 fois dans une seconde , ben chez moi il fait une boucle ^par seconde , et j'ai besoin de créer l'illusion de la simultanéité de ces actions , bref je veux aller plus vite ^^ .

Mais je suis un vrai newbie et ne sait pas comment me servir de votre programme . Pourriez vous m'indiquer , si possible , pas a pas , ce que je dois faire pour me servir de ce programme ?
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

L'API QueryPerformanceCounter permet cette mesure.

Afyn
Navedac
Messages postés
4
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
12 septembre 2006

je recherche une méthode pour mesurer le temps entre deux clicks de souris et cela avec une précision inférieure à la milliseconde
si vous avez des pistes de recherches merci pour les tuyaux
erdan
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

Oui, merci, c'est ce que je pensais !

Set Timer n'est pas efficace en fait pour un séquenceur MIDI.
(Résolution max 1ms +ou- 10 ms et le call back est un WM_Timer avec un low priority...)

SetWaitabletimer est meilleurs d'aprés les mesures que j'ai pu faire.

TimerQueueTimer doit être meilleurs, mais j'ai eu des soucis de stabilité (?) que je n'ai pas su résoudre, donc je me contente du
Waitable Timer pou l'instant.

Merci

A+

Afyn
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.