Je souhaite obtenir des informations sur l'utilisation de la mémoire pour chaque processus et pour l'ensemble du système. Dans Windows, c'est plutôt facile. GetProcessMemoryInfo et GlobalMemoryStatusEx font ces tâches grandement et très facilement. Par exemple, GetProcessMemoryInfo donne "PeakWorkingSetSize" du processus donné. GlobalMemoryStatusEx renvoie la mémoire disponible dans tout le système.API d'utilisation de la mémoire C/C++ sous Linux/Windows
Cependant, je dois le faire sous Linux. J'essaie de trouver des API système Linux équivalentes GetProcessMemoryInfo et GlobalMemoryStatusEx.
J'ai trouvé 'getrusage'. Cependant, max 'ru_maxrss' (taille de l'ensemble résident) dans la structure rusage est juste zéro, ce qui n'est pas implémenté. En outre, je n'ai aucune idée d'obtenir la mémoire libre de tout le système.
Solution de contournement actuelle pour cela, j'utilise "system (" ps -p% my_pid -o vsz, rsz ");". Connexion manuelle au fichier Mais, c'est sale et pas pratique pour traiter les données. Je voudrais savoir quelques API Linux de fantaisie à cette fin.
Voulez-vous la quantité de mémoire utilisée par un processus particulier ou ce qui est utilisé par un thread particulier? – ChadNC
@ChadNC, je voulais par processus et système large, et j'ai résolu ce problème. – minjang