J'ai ce code d'application numérique relativement grand qui peut durer quelques jours et éventuellement cracher des nombres. Le tout est écrit en C++, en utilisant un tas de bibliothèques tierces, et compilé en utilisant GCC 4.6. Le code utilise des pointeurs partagés partout.Découvrez où la mémoire est consommée
Malheureusement, avec le temps, la consommation de mémoire du code augmente jusqu'à ce que toute la mémoire (partagée) soit épuisée, puis tombe en panne. Algorithmiquement, le code ne devrait pas accumuler de mémoire au fil du temps, donc il y aura un bug quelque part.
J'ai exécuté un petit exemple à travers le vérificateur de fuite de valgrind qui rapporte que tout devrait bien se passer. Ma pensée était que des pointeurs partagés pourraient involontairement être créés quelque part, empêchant des données inutiles d'être libérées le long du processus (mais c'est juste une estimation). À la fin de la journée, je suis à court d'idées sur la façon de déboguer une telle chose. Des idées?
mot-clé: 'memory profiler' – Kos
Demandez également à valgrind de signaler la mémoire" encore accessible ". –