Comment déterminer la consommation de CPU et de mémoire depuis l'intérieur d'un processus en C++ ?
Bonjour à tous ! J'écris en C++ depuis environ un an et j'ai rencontré un problème qui m'a laissé perplexe. J'ai besoin que mon programme (un serveur de traitement d'images) surveille en temps réel combien de mémoire et de CPU il consomme. Le problème est que je ne comprends pas comment obtenir ces données depuis l'intérieur du processus lui-même.
Par exemple, je veux afficher dans le journal quelque chose comme : "Consommation de mémoire maximale : 150 Mo, charge CPU : 45 %". J'ai essayé d'utiliser des variables simples comme `sizeof()` pour les objets, mais cela ne donne pas une image réelle — car la mémoire est allouée en tas (heap), en plus des frais généraux de la pile et des ressources système. Avec le CPU, c'est encore plus compliqué : je peux mesurer le temps d'exécution d'un morceau de code avec `clock()`, mais ce temps est uniquement celui de mon thread, pas de tout le programme, et il ne prend pas en compte le temps d'attente des entrées-sorties.
S'il vous plaît, dites-moi s'il existe un moyen standard ou des bibliothèques qui permettent d'obtenir ces métriques depuis l'intérieur du processus ? Idéalement multiplateforme, mais au moins pour Linux et Windows.