AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010
-
3 juil. 2007 à 17:54
AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010
-
17 juil. 2007 à 12:51
bonjour,
est ce qu'il n'y a pas un composant ou une classe qui permet une plus grande puissance que les Threads car il semble que ces derniers ne marche pas toujours et bloque mon application.
"Si tu veux du miel, résiste au piqure des abeilles"
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 3 juil. 2007 à 18:57
c'est pas vraiment le fait qu'on utilise des threads ou pas qui rend l'application puissante, mais les methodes et le code que l'on ecrit.
d'ailleur, je ne vois pas le rapport avec la programmation RT qui necessite enormement de puissance et aussi des optimisations trés poussées de toute les partie dynamique du code.
Le précalculé, lui, prend moins de ressources et permet d'augmenter considerablement la reactivitée d'un programme, il allourdit egalement ce dernier.
mais a choisir, il faut parfois savoir faire un savant melange de précalculé et de realtime, pour obtenir un bon compromis poid/puissance.
par exemple, calculer des sinus et cosinus en temps réel vas enormement rallentir les calculs. on peu donc utiliser des tableaux précalculés de sinus et de cosinus pour les valeurs constantes et reduire ensuite la complexitée des calculs pour ameliorer les performances.
on vas donc utilisé une partie précalculée et une partie temps réel, qui serat plus perfomante grace aux précalculs.
AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010 3 juil. 2007 à 19:08
bjr,
moi j'ai fait une application qui lit les données envoyées sur le port parallèle et qui les envoie dans un fichier. je remarque que dans ce fichier il manque bcq d'informations utiles. si tu veux je peux t'envoyer la partie du code qui me mets en doute !!
merci et a+.
"Si tu veux du miel, résiste au piqure des abeilles"
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 3 juil. 2007 à 19:51
Quelle est la fréquence d'échantillonage que tu souhaites ?
Par défaut il faut savoir que Windows se réserve dans les 10 à 15ms pour effectuer ses tâches.
Donc si tu veux "diminuer" ce temps, et de la même façon augmenter tes acquisitions, il faut que tu définisses la priorité de ton thread à une valeur supérieure à tpNormal (tpHigher , tpHighest ou voire tpTimeCritical ), MAIS ATTENTION, auquel cas le système paraitra de plus en plus bloqué, car tu ne lui laisseras de moins en moins de temps pour pouvoir gérer l'affichage, la souris, etc...
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 3 juil. 2007 à 21:36
Salut,
Ce serait une erreur de croire que les Threads donne de la puissance. Au contraire, la multiplication des threads provoque une dégradation rapide des performances de la machine.
Toute la puissance est dans le code, comme a dit Foxi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010 4 juil. 2007 à 10:50
j'ai une fréquence d'échatillonnage de 8KHz donc je dois avoir les données avec un débit de 8Kbits/s dans mon port parallèle ces données je dois les envoyer vers un fichier wave mais le truc ces qu'elles ne sont pas toutes envoyées...
"Si tu veux du miel, résiste au piqure des abeilles"
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 4 juil. 2007 à 17:06
Salut,
Question récurrente qui n'a pas de réponse ultime...
L'un des gros points qui fait à mon avis que Windows est pas temps réel du tout, c'est l'interruptions (IRQ0) qui lancent l'execution du code de l'ordonnanceur(cf bas de cette page). L'ordonnanceur sélectionne thread suivant à executer, et si on met une grosse priorité, il choisirat plus souvent le notre, mais pas systèmatiquement. Et le code de l'ordonnanceur consomme aussi du temps CPU.
Les IRQ0 sont générés par un PIT, et il semble possible de modifier sa fréquence par soft. J'aurais bien envie d'essayer un de ces 4 !
AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010 5 juil. 2007 à 19:10
bjr,
si je programme mon application (que j'ai déjà réalisé) sous un autre environement comme le labview est ce dernier va me parmettre de recupérer toutes les données même si j'ai une fréquence de 8Khz de données qui arrive sur mon port parallèle.
"Si tu veux du miel, résiste au piqure des abeilles"
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 20092 8 juil. 2007 à 11:25
Les changements de contexte processeur aussi bouffent des ressources - qqs milliers de cycles a moins d'avoir du multiproc, mais là c'est le partage des E/S qui va poser problème.
Ce qui m'échappe, c'est que si tu veux créer un wav (format son), pourquoi passer par un port parallele, alors qu'un carte son se charge de ca en hard ?
Comme le précise Rt15, y a strictement rien de temps réel sous zindoz, et meme sous xp, t'as aucun controle sur le(s) ordonnaceur(s) disponible(s).
AmineTheGreat
Messages postés47Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention28 décembre 2010 17 juil. 2007 à 12:51
bjr,
maitenant je passe par la carte son et cela marche très bien ! il me reste jsute une chose à faire c'est de controler l'enregistrement du son automatiquement et ça ce que j'arrive pas à faire car il faut que je mette les données dans un buffer avant de les enregitrer sur le fichier wav !
a++.
"Si tu veux du miel, résiste au piqure des abeilles"