Wenn / wann wird der freigegebene Heapspeicher zurückgefordert?

Ich habe über Nacht Speichertests auf einem eingebetteten Linux-System ausgeführt. Mit vmstat habe ich beobachtet, dass der freie Speicher mit der Zeit stetig abnimmt. Nach einigenklatscht Analyse inprocfswächst der Haufen eines Prozesses ungefähr gleich schnell. Ich vermutete ein Speicherleck und fand ein paar Stellen im Code, an denennew unddelete werden regelmäßig verwendet. Allerdings habe ich keinen gesehennew Anrufe ohne Übereinstimmungdelete Anrufe.

Ich habe den Speichertest erneut ausgeführt und heute Morgen die Speicher-Caches mit dem folgenden Aufruf gelöscht

echo 3 > /proc/sys/vm/drop_caches

Der in vmstat aufgelistete freie Speicher ist auf einen Wert gesunken, der in der Nähe des Zeitpunkts liegt, zu dem der Test gestartet wurde.

Fordert der Kernel regelmäßig nicht verwendete Heap-Seiten zurück? Wenn ja, gibt es andere Zeiten als die oben genannten, in denen dies durchgeführt wird? Wahrscheinlich, wenn der freie Speicher eine bestimmte Schwelle unterschreitet?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage