Bonjour,
Je doit faire un logiciel qui doit analyser le signal micro en temps réel.
Pour celà j'utilise <pthread.h> de POSIX. J'ai deux thread, un qui récupère les 10 dernières ms du signal (cette opération est blocante et met 10ms), et l'autre
qui analyse les 10 ms précédentes.
Tous les échantillons du signal récupérés doivent être analysés et il doit y en avoir 100 par seconde (car il ya 100*10ms en 1sec). Je doit donc synchroniser mes threads. Pour celà j'uilise la procedure pthread_yield().
Mais en placant cette procedure je constate une baisse énorme de performance, en effet mes thread tournent 10 fois trops lentement et je récupère donc seulement 10*10ms en une seconde, soit 90% d'échantillons perdus :-(.
Au début j'ai penser que mon analyse pouvait être à l'origine de ces pertent de performance, mais j'obtient les mêmes résultats quand mes deux thread ne font que boucler sans éffectuer aucune opération, elle se donnet juste la main avec pthread_yield.
Merci de bien vouloir m'apporter votre aide.
Message édité par totalchuck le 20-02-2005 à 23:09:10