problem: konstant steigender speicherbedarf
-
naja, ich darf den code leider nicht veröffentlichen, und er wäre auch viel zu groß...
vielleicht weiss ja jemand eine möglichkeit, wie mein programm während der laufzeit seine eigene RAM-nutzung mitloggen kann, so könnte ich dann herausfinden wo immer mehr RAM beansprucht wird und dort dann einen auszug machen. ich habe schon selber gesucht, und die einzige möglichkeit sehe ich eigentlich in den funktionen der libBZ2....
-
Du weißt aber schon, dass du den allozierten Speicher auch wieder freigeben musst?
-
logo. allocated wird in main(), zu beginn. danach wird absolut nichts mehr allocated, und am ende von main wird es mit free(buffername) wieder freigegeben.
-
nimm doch nen debugger und verfolge den programmfluss
oder nimm nen profiler und guck so mal
-
Du könntest auch mal valgrind benutzen, wenn Du Dein Programm alternativ auch unter Linux compilieren kannst, der fängt sehr viele potentielle Memory Leaks ab und zeigt sie an.
-
mit debuggern kenne ich mich leider nicht aus, alles was ich bisher davon gesehen habe war komplex und nirgends gabs sowas wie tutorials etc...
das mit dem profiler klingt interessant, wo bekommt man einen her?
das mit valgrind muss ich auch mal probieren. linux ist kein prob, weil die app sehr portabel ist....
-
also wenn du GCC benutzt, da gibts einen gdb (gnu debugger)
der ist ziemlich einfach.profiler... hm, von gnu gibts einen aber ka wie der heißt. gprof oder sowas
-
jo, habe mal den gprof profiler von mingw32 getestet, funktioniert auch ganz gut, nur zeigt der mir nur an, wieviel zeit jede funktion in anspruch nimmt, aber nichts über memory usage... muss mir dann wohl doch den GDB näher anschauen...
-
Schau mal hier nach:
http://www.wikiservice.at/dse/wiki.cgi?SpeicherChecker
-
danke, schaut gut aus.