zu erkennen, wie Sie wissen, TBBmalloc gibt keine Speicherblöcke zum System zurück. Ich benutze einen visuellen Leckdetektor, um ein Speicherleck in meinem Projekt zu erkennen. und ich frage mich, wie man Speicherverlust in TBBmalloc erkennen kann. Ich möchte den Callstack sehen, welche von ausgelaufenen Speicherblöcken, wenn das Programm wie Visual Lecksucher ausgetreten ist.wie Speicherleck in tbbmalloc
Gibt es ein weiteres großartiges Werkzeug zur Erkennung? , wie man Code einfach zu schreiben, Speicherverlust zu erkennen?
TBBMalloc gibt immer noch kein Objekt kleiner Größe zurück, das unter 8 KB liegt, bis das Programm beendet wird. – nolimitk
Ja, und das liegt daran, dass das kürzlich freigegebene Objekt höchstwahrscheinlich in einem CPU-Cache heiß ist und die Chancen hoch sind, dass es sehr bald wieder verwendet wird. Die Zuweiser messen ständig zwischen Leistung und Speicherverbrauch, und die automatische Entscheidung kann nicht zu 100% optimal sein. TBBmalloc verfügt über hoch entwickelte Caching, kann es (meist mit einigen Ausnahmen) wird über scalable_allocation_command (TBBMALLOC_CLEAN_ALL_BUFFERS, 0) gereinigt Streng pro Thread sprechen Caches der freien Objekte auf Faden Beendigung gereinigt werden, nicht beim Beenden des Programms. –
vor allem, danke für Ihre Antwort. Ich meinte nicht, dass tbbmalloc ein Problem hat. Ich weiß, was du gesagt hast, und ich liebe Tbbmalloc. Ich möchte nur einen Speicherverlust in meiner Anwendung mit tbbmalloc erkennen, wenn ich kein Objekt mit kleiner Größe an tbbmalloc zurückgebe, benutze scalable_free() – nolimitk