[C++] Comment ne pas prendre 100% du cpu dans une boucle [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
7 octobre 2008
-
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
-
Bonjour,

Je suis en train de faire un projet, et j'ai une question qui me tracasse la tête depuis un moment.

Donc j'ai 2 processus, un processus de calcule, et un autre qui interprète les variable en visualisation graphique.
Les 2 processus utilise de mémoire partagée (shm) pour modifier/afficher les même variable.

Dans mon processus interface j'ai une boucle qui tourne et qui actualise graphiquement les données visuelles. Cette boucle utilise 99% de mon cpu. Donc comment faire pour qu'elle ne prenne par exemple que 10% par exemple.

La lenteur de l'exécution n'est pas un soucis dans mon cas.

Merci par avance de votre aide.

2 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut

Ajoute un Sleep(50); dans ta boucle.
Cela signifie que tu donnes 50 ms au CPU pour faire autre chose.
Tu peux augmenter cette valeur suivant tes besoins. Bien sur, plus tu augmentes cette valeur et plus la charge du processeur diminu.

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1
Salut

Le mieux serait encore de mettre en place un mecanisme de notification entre les 2 process ...

Quand Process A met a jour les données, il ne le notifie au processus B qui fait le traitement.

Fait une recherche sur les mecanisme de synchro (Semaphore & co) pour en savoir plus

D@runia