virtuellen v. physischen Speicher in der Beurteilung von C/C++ memory leak

Ich habe eine C++ - Anwendung, die ich versuche zu Eisen in die Speicher-Lecks aus und ich erkannte, dass ich nicht vollständig verstehen den Unterschied zwischen virtuellen und physikalischen Speicher.

Ergebnisse aus top (also 16.8 g = virtuelle, 111m = physikalischen):

4406 um 20 0 16.8g 111m 4928 S 64.7 22.8 36:53.65 client

Mein Prozess hält 500 Anschlüsse, einer für jeden Benutzer, und diese zahlen es bedeutet, es ist über 30 MB virtuellen overhead für jeden Benutzer. Ohne in die details meiner Anwendung, der einzige Weg, wie es klingen könnte, aus der Ferne realistisch, die addition aller Vektoren, Strukturen, threads, Funktionen auf dem stack, etc., ist, wenn ich keine Ahnung habe, was der virtuelle Speicher eigentlich bedeutet. No-O-Optimierungs-flags, btw.

Also meine Fragen sind:

  • welche Operationen in C++ würde aufblasen virtuellen Speicher, so viel?
  • Ist es ein problem, wenn meine Aufgabe ist es, mit Auftritten des virtuellen Speichers?
  • Der stack-und heap-Funktion Variablen, Vektoren, etc. - diese unbedingt erhöhen, die Nutzung des physischen Speichers?
  • Würde das entfernen eines memory leak (via delete oder free() oder so) unbedingt reduzieren beide physischen und virtuellen Speicher-Auslastung?
  • Haben Sie versucht, mit einem memory-profiler wie valgrind? Mit top-überprüfen der Dichtheit ist nicht ideal.
  • Mein Kollege riet mir, dass valgrind wurde sehr sinnlos angesichts der Bibliotheken, die wir verwenden (ich brauche, um zu untersuchen, diese mich immer noch... es ist auf der to-do -). Jetzt bin ich versucht, zu verstehen, die tatsächlichen zahlen, die ich versuche zu bekommen down und arbeiten an der source-Analyse-Ebene - wenn dies wird fruchtlosem ich werde Ihnen tools in.
  • Ohne Optimierung = Ihre Daten ist irrelevant.
  • zu meinem Verständnis -O1 und -O2-Optimierung für Geschwindigkeit und erhöhen task Größe. Also wenn ich durch den task Größe Probleme mit Ihnen aus-es kann nur noch schlimmer werden mit Ihnen auf.
InformationsquelleAutor djechlin | 2012-06-05
Schreibe einen Kommentar