Ich verwende GCD, um Speicherdruckbenachrichtigungen zu erhalten.Wie reagiert man auf Speicherdruckbenachrichtigungen von GCD?
GCD documentation beschreibt einige Konstanten wie folgt:
DISPATCH_MEMORYPRESSURE_WARN
Der Systemspeicher Druckzustand an der Warnstufe ist. Apps sollten Speicher freigeben, die sie gerade nicht benötigen.
DISPATCH_MEMORYPRESSURE_CRITICAL
Der Systemspeicher ist Druckzustand in der kritischen Phase. Die Apps sollten so viel Speicher wie möglich freigeben.
Scheint logisch, dass ich ungenutzten Speicher freigeben sollte. Aber auch in anderen Orten (man pages und source code) finde ich diese Notiz dieser Konstanten bezogen werden:
Erhöhte Speicherdruck ist eine systemweite Bedingung, dass Anwendungen für diese Quelle registriert durch Änderung ihrer Zukunft Speicher reagieren sollten Nutzungsverhalten, z durch Reduzieren der Cachegrößen von neu initiierten Operationen, bis der Speicherdruck wieder normal ist.
sollten jedoch Anwendungen nicht durchqueren, und vorhandene Caches für vergangene Operationen verwerfen, wenn das System System tem Speicherdruck tritt einen erhöhten Zustand ist, wie die wahrscheinlich VM Operationen auszulösen, die weiter weiter Ther Systemspeicherdruck verschlimmern.
Das verwirrt mich. Also sollte ich Speicher freigeben, oder sollte ich einfach aufhören, neuen Speicher zuzuweisen?