GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zuweisen und Freigeben von Speicher über Shared-Lib-Grenzen hinweg

Solange Sie sich an Glibc oder andere "normale" Allokatoren (jemalloc, tcmalloc usw.) halten, wird der Heap-Zustand von allen Bibliotheken geteilt, und daher können Sie irgendwo zugewiesenen Speicher mit 03 wohin du willst.

Theoretisch könnte man das umgehen. Beispielsweise können einige Bibliotheken mit einer benutzerdefinierten Implementierung von 12 verknüpft werden /20 (über Symbolskript-Trick von 34 ), die über einen eigenen privaten Heap verfügt und daher nicht gut mit anderen Teilen Ihres Programms interagiert. Aber ich habe so etwas noch nie im wirklichen Leben gesehen.

STL-Container basieren auf 42 /50 damit ist eine Weitergabe/Änderung auch über Bibliotheksgrenzen hinweg möglich. Natürlich können verschiedene Bibliotheken mit verschiedenen Compilern und verschiedenen inkompatiblen Versionen von STL (z. B. libstdc++, libcxx usw.) kompiliert werden, aber ihre C++-Containertypen wären unterschiedlich und der Compiler würde Ihnen einfach nicht erlauben, sie über inkompatible Module zu übergeben.


Linux
  1. So löschen Sie Speicherpuffer und Cache in Linux

  2. Linux – Speichernutzung unter Linux richtig ermitteln?

  3. Über Mem und Vmem?

  4. _path_files und Compadd Ignore-files Parameter?

  5. So berechnen Sie die Speichernutzung in Linux mit sar, ps und free

Verwenden des kostenlosen Linux-Befehls

So überprüfen Sie die Speichernutzung in Linux

Linux Free Command (Speichernutzung prüfen)

Speicherüberwachung und -verwaltung

Linux Memory Management – ​​Swapping, Caches und Shared VM

kostenlose Befehlsbeispiele in Linux