Emmanuel Delahaye C is a sharp tool | in_your_phion a écrit :
j'ai un programme où dans une boucle j'affichage le pourcentage écoulé. J'aimerais savoir si ca fait "perdre" du temps au calcul, en d'autres termes est ce que ça irait (significativement) plus vite sans affichage.
|
Bien sûr que l'affichage a un cout. L'astuce algorithmique de base, c'est de ne changer l'affichage que si la donnée a changé...
EDIT : ajouté compteur de printf()...
Code :
- #include <stdio.h>
- int main (void)
- {
- enum
- { MIN = 23, MAX = 586426 };
- {
- long count = 0;
- long i;
- for (i = MIN; i < MAX; i++)
- {
- printf ("\r%3ld %%", (i * 100) / MAX), count++;
- fflush (stdout);
- }
- printf ("\ndone (%ld printf())\n", count);
- }
- {
- long count = 0;
- long i;
- int old = -1;
- for (i = MIN; i < MAX; i++)
- {
- int const pcent = (i * 100) / MAX;
- if (old != pcent)
- {
- old = pcent;
- printf ("\r%3d %%", pcent), count++;
- fflush (stdout);
- }
- }
- printf ("\ndone (%ld printf())\n", count);
- }
- return 0;
- }
|
99 %
done (586403 printf())
99 %
done (100 printf())
Press ENTER to continue.
|
Message édité par Emmanuel Delahaye le 01-12-2006 à 19:29:00 ---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
|