Cocoa bietet für page-aligned Speicherbereiche, die es Memory Zones aufruft, und bietet einige Speicherverwaltungsfunktionen, die eine Zone als ein Argument verwenden.Haben Sie jemals NSZoneMalloc() anstelle von malloc() verwendet?
Angenommen, Sie müssen einen Speicherblock zuweisen (nicht für ein Objekt, sondern für beliebige Daten). Wenn Sie malloc(size)
aufrufen, wird der Puffer immer in der Standardzone zugewiesen. Möglicherweise hat jedoch jemand allocWithZone:
verwendet, um Ihr Objekt in einer anderen Zone als dem Standard zuzuordnen. In diesem Fall scheint es besser zu sein, NSZoneMalloc([self zone], size)
zu verwenden, der Ihren Puffer und Ihr eigenes Objekt im selben Speicherbereich hält.
Folgen Sie dieser Praxis? Haben Sie jemals Speicherzonen genutzt?
Update: Ich denke, es gibt eine Tendenz auf Stack Overflow, um Fragen zu Low-Level-Themen mit einem Vortrag über vorzeitige Optimierung zu beantworten. Ich verstehe, dass Zonen auf der NeXT-Hardware 1993 vermutlich mehr Bedeutung hatten als heute, und eine Google-Suche macht deutlich, dass sich praktisch niemand mit ihnen beschäftigt. Ich frage trotzdem, ob jemand ein Projekt beschreiben könnte, in dem sie Speicherzonen nutzen.
Ich habe entweder nie wirklich den Nutzen der Speicherzonen gesehen, also bin ich froh, dass Sie diese Frage gestellt. – Alex