j'ai un probleme avec je ne sais pas comment faire pour minimiser l'utilisation du CPU dans mon programme...
j'ai utiliser la fonction sleep(int); puis la fonction usleep(int);
mais l'utilisation du CPU reste trop grande...
je cherche une fonction qui donne la main au systeme et qui attend
sans toure dans la fille d'attente du systeme...
merci pour votre aide
int main(void) {
int key, i=0;
FILE *meminfo;
char value[256];
struct tm up_time;
time(&d_time);
uname(&u_name);
init_curses(); // initialisation de curses
bkgd(COLOR_PAIR(1));
memwin = subwin(stdscr,26,33,0,0);
box(memwin, ACS_VLINE, ACS_HLINE);
cpuwin = subwin(stdscr, 10, 30, 0, 33);
box(cpuwin, ACS_VLINE, ACS_HLINE);
hddwin = subwin(stdscr, 11, 30, 10, 33);
box(hddwin, ACS_VLINE, ACS_HLINE);
sup_info = subwin(stdscr, 5, 30, 21, 33);
box(sup_info, ACS_VLINE, ACS_HLINE);
menu_bar();
set_title();
create_sub_win();
refresh();
while(1) {
werase(sub_mem);
if((meminfo = fopen(PROC_MEM, "r")) != NULL) {
while(fgets(value, sizeof(value), meminfo)) {
// while(fscanf(meminfo, "%[^\n]", value)) {
if(value[0] != '#') {
i+=1;
wmove(sub_mem, i, 1);
wprintw(sub_mem, "- %s", value);
}
}
i=0;
fclose(meminfo);
}
info_sup();
wrefresh(sub_mem);
usleep(10000);
}
getch();
delwin(cpuwin);
delwin(memwin);
delwin(menubar);
endwin();
return 0;
}
# usleep dans la boucle
Posté par Adrien BUSTANY (site web personnel) . Évalué à 0.
# sleep/usleep
Posté par NeoX . Évalué à 0.
de ce que je me souviens, ca met surtout ton programme en pause.
si tu regardais un mode de programmation en thread avec des files d'attentes...
# RTFM
Posté par Krunch (site web personnel) . Évalué à 2.
Tu peux aussi jeter un oeil à setpriority(2).
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# minimiser l'utilisation du CPU
Posté par xenos . Évalué à 1.
[^] # Re: minimiser l'utilisation du CPU
Posté par NeoX . Évalué à -1.
je vais paraitre con mais mais je trouve qu'il y a beaucoup de boucle imbriqué pour juste lire dans le meminfo et envoyer les infos dans submem
avec beaucoup d'instructions (wmove, wprintw) qui doivent prendre du temps.
[^] # Re: minimiser l'utilisation du CPU
Posté par daggett . Évalué à 3.
Donc revenir à 1 fois par seconde.
Ensuite, fermer et rouvrir le fichier à chaque tour, c'est un peu bourrin aussi, mieux vaudrait faire un fopen() une fois avant le while(1), et juste utiliser rewind pour relire depuis le début.
# projet terminer à 50%
Posté par xenos . Évalué à 1.
# Francais quand tu nous tiens
Posté par peck (site web personnel) . Évalué à 4.
- qui attend son tour dans la fille : pauvre fille
- qui attend cent tours dans la file : ou cent cavaliers sur une ligne
- qui attend que le sang tourne dans la fille : ...
- qui attend s'entoure de filles : ca c'est un dicton qui me plait
Mais bon, peu de choses en rapport direct avec le schmilblick
[^] # Re: Francais quand tu nous tiens
Posté par xenos . Évalué à 1.
j'écris vraiment sans réflexion, de plus je ne suis pas un français
j'espère dans l'avenir que mon français seras aussi bien que le tien
merci encore une fois ...
qui attend son tour dans la file
NOTE : je sais faire la différence entre fille et file, là c'était jute que faute de frape
double frape sur le "l".... pour sans je l'avoue ... j'ai vraiment des problèmes.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.