Je travaille sur un programme d'arrière-plan qui sera exécuté pendant une longue période, et j'ai un programme de journalisation externe ( SmartInspect ) que je veux alimenter périodiquement avec certaines valeurs, pour le surveiller en temps réel lors du débogage.
Je sais que je peux simplement lancer plusieurs programmes, comme le Gestionnaire des tâches, ou IARSN TaskInfo, mais je voudrais tout garder dans mon propre programme pour cela, car je veux aussi ajouter quelques règles simples comme si le programme utilise plus de X% de CPU, le signaler dans le journal.
J'ai un fil d'arrière-plan qui fournit périodiquement des statistiques à SmartInspect, comme la consommation de mémoire, l'ensemble de travail, etc.
Est-il possible pour ce fil d'obtenir une mesure raisonnablement précise de la part des ressources du processeur de l'ordinateur qu'il consomme ? Le programme principal est une application à un seul thread (à l'exception du thread de surveillance qui enregistre les statistiques), donc si une technique est limitée à combien consomme un seul fil alors ce serait bien aussi.
J'ai trouvé des entrées liées à quelque chose appelé rusage pour Linux et C. Existe-t-il quelque chose de similaire que je puisse utiliser pour cela ?
Edit : Ok, j'ai essayé la méthode du compteur de performance, mais cela ajoutait beaucoup de données GC à chaque appel, donc le graphique de l'utilisation de la mémoire et de la collecte des déchets montait en flèche. Je pense que je vais laisser cette partie de côté pour le moment.