Ich arbeite derzeit an einer C-Netzwerkanwendung für Linux. Es basiert auf DPDK. Ich habe die App mit Valgrind ausgeführt, die keine Speicherlecks zeigt. Ich habe auch Intel Inspector 2016 versucht, mit den gleichen Ergebnissen. Aber wenn ich meine App für einige Tage auf einem System (AWS EC2-Instanz) laufen lasse, während ich die RAM-Auslastung (Cloudwatch) überwache, wird der RAM ständig, linear und langsam (ca. 1 MB/Tag) erhöht. Wie kann ich dieses Leck finden?Kann Speicherverlust in C-Anwendung nicht finden
Antwort
Eine Möglichkeit, dies zu debuggen, besteht darin, einen Code zu schreiben, der alle Speicherzuweisungen und die gesamte Zuweisung überwacht. Mit diesem Überwachungscode können Sie herausfinden, wo der zugewiesene Speicher ist.
Da Sie Linux verwenden, kann dies ein Ort, um zu starten:
http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/Hooks-for-Malloc.html
Ein erster Test überprüfen zu können, ob alle zugewiesenen Speicher free'd wird, wenn das Programm geschlossen wird. Dies zeigt an, ob Sie ein Leck oder eine Ansammlung von verwendetem Speicher haben.
aufgerufen wird. Vielen Dank. Ich war auf der Suche nach so etwas. Ich werde es versuchen. – Vineet
- 1. WebAPI-Speicherverlust in BuildManager
- 2. Kann Application.terminate zu Speicherverlust führen?
- 3. Erkennung von Speicherverlust in C
- 4. Speicherverlust Situation in iphone
- 5. C# Speicherverlust in Schleife
- 6. Speicherverlust in Owin.AppBuilderExtensions
- 7. Untersuchung Speicherverlust
- 8. Django nicht finden kann Pakete in virtualenv nicht finden
- 9. Speicherverlust in iPad app
- 10. Kann Dumpbin.exe nicht finden
- 11. Kann Meteormodul nicht finden
- 12. Kann Bild nicht finden
- 13. Kann SecurityMockMvcConfigurers nicht finden
- 14. kann -lmysqlclient nicht finden
- 15. Kann eine geplante Zukunft einen Speicherverlust verursachen?
- 16. AVAudioPlayer Speicherverlust
- 17. Kann dieses Runnable vor Speicherverlust geschützt werden?
- 18. Kann System.Xaml nicht finden?
- 19. Kann Genymotion.app nicht finden
- 20. Kann Jquery nicht finden
- 21. Kann system.web.http nicht finden
- 22. Kann EnableIEHosting nicht finden
- 23. BindingList-Speicherverlust
- 24. Speicherverlust betrifft
- 25. Ruby-Code-Speicherverlust in der Schleife
- 26. Plötzlicher PHP-Speicherverlust in Codeigniter
- 27. Möglicher Speicherverlust, weil StringBuffer nicht verwendet wird?
- 28. Chrome Profiler Javascript Speicherverlust
- 29. Speicherverlust mit Valgrind in c
- 30. wie Speicherverlust zu beheben?
Genau - wie können wir dieses Leck herausfinden? Sie haben keinen Code veröffentlicht. –
Postleitzahl, die Sie am meisten vermuten. –
Ich kann den Code nicht veröffentlichen. Es ist eine sehr große Codebasis. Und ich habe jetzt seit ein paar Tagen nach dem Leck gesucht, nicht annähernd gefunden? Ich brauche nur ein paar Ideen, was getan werden könnte, wenn Valgrind und andere Tools diese Aufgabe nicht erfüllen können. – Vineet