Bonjour, est-il plus économique en puissance de calcul pour introduire un délai dans un programme d'utiliser une boucle avec un comptage ou une bibliothèque gérant le temps telle que chrono ?
Bonjour, est-il plus économique en puissance de calcul pour introduire un délai dans un programme d'utiliser une boucle avec un comptage ou une bibliothèque gérant le temps telle que chrono ?
Salut,
Depuis l'arrivée de C++11, la seule manière correcte d'introduire un délais dans un programme, du moins, si tu ne veux pas mettre tout ton système à genoux pour cause d'utilisation maximale de tous les coeurs disponibles, c'est de passer par std::this_thread::sleep_for() ou std::this_thread::sleep.
Bien sur, si tu ne disposes pas de la possibilité d'utiliser C++11 ou ultérieur (ce qui serait vraiment dommage, l'idéal étant de pouvoir carrément disposer de C++14 au minimum), il faudra sans doute te tourner vers une bibliothèque tierce, voire deux, car il s'agira sans doute de disposer d'un thread et d'un système de calcul de temps![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Re,
avec ce code:
Sous Linux compilant avec gcc 11 comme suggéré voici la commande utilisé g++ -std=c++11 programme.cpp -o programme, j'obtiens les 3 erreurs suivantes: ‘chrono_literals’ is not a namespace-name / expected namespace-name before ‘;’ token / unable to find numeric literal operator ‘operator""s’. Également une note est laissée en fin: use -std=gnu++11 or -fext-numeric-literals to enable more built-in suffixes donnant encore les mêmes erreurs une fois les options explorées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <iostream> #include <string> #include <chrono> #include <thread> int main(){ using namespace std::chrono_literals; std::this_thread::sleep_for(2s); return 0;}
std::chrono_literals fait partie de c++14, donc -std=c++14 comme option de compilation.
N'hésite pas à consulter la doc.
Partager