Bonjour,
Lors du traitement qui rempli la barre de progression la charge CPU augmente à 100%. Est-qu'il existe un moyen de diminuer cela duant mon traitement ?
Merci d'avance
Bonjour,
Lors du traitement qui rempli la barre de progression la charge CPU augmente à 100%. Est-qu'il existe un moyen de diminuer cela duant mon traitement ?
Merci d'avance
Sans explications détaillées de ce que tu fais et le code qui va avec, non.
Je mettrais les codes plus tard je ne peux pas y accéder pour le moment.
En gros j'ai une copie de fichier et une boucle qui surveille la taille du fichier de destination et rempli 2 barre de progression (celui du fichier et le total).
Sur d'autres programmes (la copie de fichier avec nautilus et la commande cp) la charge CPU est bien de 100% également mais c'est principalement de la latence tandis que les charges système et utilisateur sont très faibles.
J'ai regardé dans les sources de nautilus et je m'y perd. En fait j'attend qu'on me dise non c'est pas la peine ou oui il existe tel ou tel solution. Les sources ne devraient pas êtres nécessaires mais je les posteraient quand même au cas où.
Merci de vos futurs réponses
Fais la mise à jour de la taille du fichier une fois toutes les secondes ou tous les 10èmes de secondes plutôt que de faire ça en permanence et ça devrait régler ton pb.
J'ai oublié de préciser que j'ai déjà essayé ça en faisant
J'ai tanté cette solution car mon prof d'info m'a dis d'essayer de ralentir la boucle. Si il existe d'autres solutions je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 int passer = 0; while([...]) { if(passer == 10000) //et même plus grand ça ne marche pas très bien { passer = 0; //remettre à zéro et poursuivre le traitement de la boucle } else { passer++; continue; //saute la boucle actuelle } [...] //le traitement des barres de progression etc... }
Fais la mise à jour de ta barre de progression dans le callback d'un g_timeout_add qui sera appelé toutes les secondes/10ème de seconde
Partager