Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1240 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Temps reel / WinXP, comportement etrange

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Temps reel / WinXP, comportement etrange

n°1523357
Ace17
Posté le 04-03-2007 à 09:30:26  profilanswer
 

Bonjour,
je realise un programme qui doit communiquer avec une carte d'acquisition video. Lorsqu'une nouvelle image arrive, le pilote de la carte d'acquisition appelle un callback. L'ecart de temps entre les appels de ce callback devrait etre de 40ms, puisque c'est la periode a laquelle les images sont envoyees. Or il se trouve que les mesures sont tres bizarres, et dependent du fait que Windows Media Player soit lance ou non. Au depart je n'y croyais pas, mais j'ai repete l'experience de nombreuses fois, et le phenomene se reproduit systematiquement :
 
Si WMP n'est pas lance, les ecarts sont les suivants:
OnFrame : 23ms
OnFrame : 57ms
OnFrame : 23ms
OnFrame : 57ms
....
 
Par contre si on lance WMP, ca change tout, et ca devient plus precis:
OnFrame : 40ms
OnFrame : 39ms
OnFrame : 40ms
OnFrame : 40ms
OnFrame : 41ms
OnFrame : 40ms
....
 
Je precise que je mesure le temps avec timeGetTime, le priority boost lie aux interruptions est actif, j'ai donne a mon processus et a mon thread la priorite maximale (REALTIME_PRIORITY_CLASS, THREAD_PRIORITY_TIME_CRITICAL), et que ca marche meme si WMP n'est pas en train de jouer un fichier (il suffit qu'il soit lance).
 
Est-ce que ceux d'entre vous qui auraient deja touche a des problemes de timing ont deja rencontre ce comportement? Comment le reproduire ? Mon hypothese, c'est que WMP doit provoquer le basculement d'un parametre de l'OS affectant toutes les applications.

mood
Publicité
Posté le 04-03-2007 à 09:30:26  profilanswer
 

n°1523453
0x90
Posté le 04-03-2007 à 20:51:04  profilanswer
 

Je dis ça totalement au pif, mais t'aurais pas un processeur qui change de vitesse selon la charge par hasard ? (Charge que WMP arrive à maintenir suffisement haut pour éviter des switch rapide/lent tout au long de ton acquisition)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1524117
Ace17
Posté le 05-03-2007 à 23:35:37  profilanswer
 

Bon, j'ai trouve ... mais je pensais pas devoir descendre aussi profond.
Dans l'api du noyau de Windows XP, il y a une fonction ExSetTimerResolution qui sert a fixer la frequence de ... quelque chose. Je n'ai pas compris quoi exactement, mais c'est effectivement un parametre qui affecte toutes les applications qui tournent, et plus il est bas, plus la precision temporelle est grande.
 
Verification faite, puisque cette fonction renvoie l'ancienne valeur du parametre, j'ai pu tester sa valeur avec ou sans WMP. Et bingo, quand WMP est lance, le parametre est divise par 10. WMP doit indirectement provoquer le chargement d'un driver qui change la valeur du parametre.
 
J'ai donc resolu mon probleme en codant un micro-driver qui regle ce parametre a son chargement et le restaure au dechargement...
 
On m'y reprendra a vouloir faire du temps reel sous Windows ... :sarcastic:

n°1524166
_darkalt3_
Proctopathe
Posté le 06-03-2007 à 09:17:55  profilanswer
 

[:drapal], ca peut servir :jap:


Message édité par _darkalt3_ le 06-03-2007 à 09:18:08

---------------
Töp of the plöp
n°1526618
amiro1989
Posté le 09-03-2007 à 21:04:50  profilanswer
 

^Oui, en effet!

n°1526710
Ace17
Posté le 10-03-2007 à 10:16:36  profilanswer
 

Si il y en a qui veulent mon driver, ils n'ont qu'a me demander.  
C'est juste un truc simplissime qui permet d'appeler la fonction ExSetTimerResolution depuis le mode utilisateur ...

n°1526770
breizhbugs
Posté le 10-03-2007 à 13:06:27  profilanswer
 

Ca me fait penser a un article que j'ai lu et qui expliquait l'influence de l'affichage d'une page de bourse de yahoo sur les perfomances multimedia: en fait cette page affichait une sorte de graphique qui changeait la resolution du timer multimedia et le rendait ainsi beaucoup plus fin.
 
Bon en fait c'est pas vraiment ca mais ca a peut etre le meme genre d'effet, voici la page en question: http://www.codeproject.com/tips/YahooSpeeds.asp


Message édité par breizhbugs le 10-03-2007 à 13:09:00

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Temps reel / WinXP, comportement etrange

 

Sujets relatifs
Updater la position d'une trackbar en temps réelexecuter un vbs sur winxp
probleme de liens etrangeFaire tourner trois boucle for next en même temps ...?
[Résolu][VS6] WinXP=>Win2k: "This program cannot be run in DOS Mode"rafraichir une image en temps réel?
le temps en seconde depuis 1970Temps de réponse pour jBase
Plus de sujets relatifs à : Temps reel / WinXP, comportement etrange


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR