3 Stimmen

Haben Sie jemals NSZoneMalloc() anstelle von malloc() verwendet?

Cocoa sieht seitenorientierte Speicherbereiche vor, die es Memory-Zonen und bietet einige Speicherverwaltungsfunktionen, die eine Zone als Argument benötigen.

Nehmen wir an, Sie müssen einen Speicherblock zuweisen (nicht für ein Objekt, sondern für beliebige Daten). Wenn Sie malloc(size) wird der Puffer immer in der Standardzone zugewiesen. Es kann jedoch vorkommen, dass jemand allocWithZone: um Ihr Objekt in einer anderen Zone als der Standardzone zuzuordnen. In diesem Fall wäre es besser, Folgendes zu verwenden NSZoneMalloc([self zone], size) die dafür sorgt, dass sich der Puffer und das eigene Objekt im selben Speicherbereich befinden.

Befolgen Sie diese Praxis? Haben Sie jemals Memory-Zonen genutzt?

Update: Ich glaube, auf Stack Overflow gibt es eine Tendenz, auf Fragen zu Low-Level-Themen mit einem Vortrag über verfrühte Optimierung zu antworten. Ich verstehe, dass Zonen 1993 auf NeXT-Hardware wahrscheinlich wichtiger waren als heute, und eine Google-Suche macht deutlich, dass sich praktisch niemand mit ihnen beschäftigt. Ich frage trotzdem, um zu sehen, ob jemand ein Projekt beschreiben kann, bei dem er Speicherzonen verwendet hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X