gaudetm
Messages postés44Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention13 décembre 2004
-
13 déc. 2004 à 12:04
gaudetm
Messages postés44Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention13 décembre 2004
-
13 déc. 2004 à 16:28
Bonjour à tous,
voila mon probleme, je souhaite controler la vitesse d'un thread (ou plusieurs) par contre je ne trouve pas une documentation concernant ce sujet.
les procedures de ralentissement sous delphi (comme sleep ou sleepEx) acceptent une valeur minimale de 1ms, et une pause de cette valeur pour un thread le ralentie enormement.
ce que je veux savoir c'est s'il ya un moyen de ralentir un thread, donc au lieu d'utiliser à 100% les ressources systemes, est-ce que je peux le ralentir pour utiliser 50% par exemple?
l'environnement dans lequel je parle se base sur un emulateur que j'ai developpé, (emulation des processeurs 6502 8bits)
normallement ces processeurs tournent de 1 à 2Mhz.
par contre mon emulateur lui tourne à 55Mhz sur un intel 2Ghz (au niveau de l'emulateur)
j'ai besoin de ralentir le thread principale qui fait toute l'emulation, pour qu'il n'utilise plus 100% des ressources systemes, car ça me cause quelques problemes pour les connexions TCP/IP (ralentissement à ce niveau là)
gaudetm
Messages postés44Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention13 décembre 2004 13 déc. 2004 à 13:48
@jmp77
merci pour ta doc (j'ai programmé 3 ans en java)
mais malheureusement le probleme est pareil peu importe le language
toutes les procedures de pause ou sleep fonctionnent en millisecondes, or faire un suspend pour thread en milliseconde le rend très lent (et devient aussi lent qu'en timer normal sous delphi)
je cherche en fait un moyen de controler la vitesse de mon thread au niveau de l'horloge du CPU et pas l'horloge humaine!
donc je cherche à le controler au niveau microseconde et pas milliseconde
gaudetm
Messages postés44Date d'inscriptionmercredi 23 juillet 2003StatutMembreDernière intervention13 décembre 2004 13 déc. 2004 à 14:22
@BruNews
je sais, et ça n'existe que sous NT
mais ça ne va pas m'aider, car le thread il est toujours hors control!
j'ai essayé de voir des docs concernant les emulateurs, mais ils expliquent comment faire un emulateur sans parler des threads lol
en fait le probleme avec la priorité c'est le NMI (NonMaskable Interrupt)
le NMI ds mon emulateur doit s'auto ajuster pour garder l'affichage correct (sinon y'aura des haut et des bas dans la vitesse du programme emulé)
si le joue avec les priorité du thread, ça me cause des variations brusques dans la vitesse d'affichage (la vitesse de modifs dans la memoire et pas au nivo graphique, mais à cause de ça le graphique devient rapide: une consequence)
lpCreationTime : Moment de la création de l'exétron
lpExitTime : Moment de la fin de l'exétron (indéfini si il fonctionne encore)
lpKernelTime : Quantité de temps passé par l'exétron à s'exécuter en mode système
lpUserTime : Quantité de temps passé par l'exétron à s'exécuter en mode application
Par contre, je ne pourrais pas t'en dire plus sur ton problème... :sad)
@+
Bonne Prog'
Nico
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)