Ich verwende mein C-Programm und ich möchte den Speicher sehen, der dadurch benutzt wird. Ich benutze den Profiler gprof
. Ist es möglich mit gprof
? Oder muss ich vielleicht das Valgrind Profil studieren?Siehe den Speicher, der von einem C-Programm mit gprof verwendet wird
Antwort
Wenn Sie den Valgrind Weg gehen wollen, ist Massif das Tool zu verwenden:
valgrind --tool=massif your_app -your_options
Sie können gprof verwenden - aber Sie müssen sicherstellen, dass Sie Ihr c-Programm mit den richtigen Optionen für das Profiling (-pg) kompiliert haben. Zum Beispiel:
cc -o cprogram program.c othercode.c -g -pg
verwenden gprof, überprüfen Sie die man-Seiten - aber, kurz gesagt:
gprof <options> [executable-file [profile-data-files...]] [> outfile]
Ich hoffe, dass dies hilft!
Wie hilft dies dem OP, den verwendeten Speicher anzuzeigen? –
Ich interpretierte die Frage als, wie man die laufende Anwendung profiliert. Wenn das gesamte OP den Speicherbedarf sehen möchte, dann ist gprof (und die zugehörigen Compiler/Linker-Optionen) unnötig, weil 'top' ausreichen wird. Sogar Valgrind benötigt die Option -pg, die verwendet werden soll. – headbanger
Sie können auch überprüfen, http://valgrind-users.narkive.com/MPnV7HOw/gcc-pg-valgrind-errors – headbanger
- 1. Speicher, der von einem Prozess unter Mac OS verwendet wird
- 2. Verwenden von gprof mit Pthreads
- 3. Verwenden von gprof mit Sockets
- 4. Wird der virtuelle Speicher für den Kernel selbst verwendet?
- 5. Freigabe von Speicher, der von JavaScript-Objekten verwendet wird
- 6. Wo ist der Speicher, den VMware verwendet?
- 7. Speicher, der von jeder iPhone App verwendet wird
- 8. Wie viel Speicher wird von Mondrian verwendet?
- 9. Warum wird Azure-BLOB-Speicher selten verwendet?
- 10. Speicher von Arrays verwendet
- 11. Siehe Speicher-Verwendung von Windows 10 Mobile beim Debuggen
- 12. Leveldb Limit Test - Limit Speicher, der von einem Programm verwendet wird
- 13. gprof eine Bibliothek - Frage
- 14. Siehe Inhalt der langen Wert im lokalen Speicher in Safari
- 15. Code-Profiler (gprof) lesen
- 16. Wie benannter gemeinsamer Speicher verwendet wird?
- 17. gprof und Argumente ausführbaren
- 18. Diskrepanz zwischen Gprof und (Unix) Zeit; gprof meldet niedrigere Laufzeiten
- 19. Zuweisung von Zeigern, aber Speicher wird immer noch verwendet
- 20. gprof und Eclipse Fehler
- 21. C++ main verwendet nur ~ 20% Zeit sagt gprof
- 22. Siehe autorisierte Bereiche mit einem Google-Zugriffstoken
- 23. Kann libcrypto Methoden mit gprof nicht profilieren
- 24. Freigeben von Speicher, der von nicht verbundenen DOM-Knoten in Javascript verwendet wird
- 25. Wie wird der Stapelbildcontainer verwendet?
- 26. E-Mail-Benachrichtigung mit Jconsole, wenn der Speicher von Java-Anwendung verwendet, erreicht den Schwellenwert
- 27. Finden Sie heraus, wie viel Speicher von einem Objekt in C# verwendet wird?
- 28. Kompilieren in g ++ für gprof
- 29. Dienst verwendet immer mehr Speicher
- 30. Warum verwendet eine native Bibliothek 1,5 Mal mehr Speicher, wenn sie von Java verwendet wird, als wenn sie von einem C-Programm unter Linux verwendet wird?
Mein Eindruck ist, dass 'gprof' in erster Linie für die Timing-Performance verwendet wird und nicht für die Größe des Speichers Mess benutzt. Valgrind kümmert sich mehr um das Gedächtnis. Ich habe es nur für die Erkennung von "Speichermissbrauch" verwendet. Es gibt andere Möglichkeiten, es zu verwenden, und eines davon kann für Sie geeignet sein. –