Bonjour, existe-t-il un moyen de connaître la RAM de la machine sur laquelle tourne un exécutable en C++ ? Je souhaiterais m'en servir pour détecter quand les données que je dois gérer sont trop importantes pour pouvoir être stocké dans la RAM et utiliser des fichiers pour sauvegarder des résultats dans ce cas. A l'heure actuelle, j'ai des bad alloc dans ce cas.
Merci d'avance.
API Windows ?
Jette un œil ici
http://msdn.microsoft.com/en-us/library/cc300158(v=VS.85).aspx
J'ai oublié de préciser je suis sur Linux même si il faudrait que j'arrive aussi à gérer le cas Windows.
Le 15 septembre 2019 à 13:40:43 TechnoForce3 a écrit :
J'ai oublié de préciser je suis sur Linux même si il faudrait que j'arrive aussi à gérer le cas Windows.
Sur Linux tu peux lire /proc/meminfo ou utiliser sysinfo(2) https://linux.die.net/man/2/sysinfo
En general, les gens n'aiment pas utiliser sysinfo pour connaitre le montant de RAM disponible. Ca peut changer d'un moment a l'autre, et je ne pense pas que ca peut te dire le montant de RAM disponible dans ton cgroup. En pratique les gens passent une option ax programmes pour dire combien de memoire ne pas depasser. C'est beaucoup plus simple pour administrerune machine de passer un parametre plutot que de laisser l'application faire un genre d'allocation dynamique foireux.
Ah oui pas bête du tout. Merci pour l'astuce
Je fait un tableau avec une taille dynamique. T'incrémente ça taille jusqu'a ce que ton programme crash
T'aura une idée de la RAM dispo