Swift stack/heap Verständnis
Möchte ich undesrtand, was gespeichert wird, in den stack/heap in swift. Ich habe eine rought Schätzung:
Alles, was Sie drucken und die Speicher-Adresse angezeigt, nicht die Werte, werden diese auf dem stack gespeichert werden, und was gedruckt wird, als Werte, werden diese auf dem heap, im Grunde je nach Wert-und Referenz-Typen. Bin ich völlig falsch? Und Optional können Sie einen visual replresentation der stack/heap?
Dieser Vortrag erklärt einige der Swift verwenden Sie die heap-und stack: Reich.io/news/andy-matuschak-controlling-Komplexität. Kurz gesagt, kann man nicht machen Annahmen, ob ein Wert oder eine Referenz wird am Ende auf dem heap oder Stapel, wie Sie in C.
Überrascht, dass noch niemand beantwortet hat noch, ist das eine Art von Geheimsprache nur bekannt, nachdem Sie etwas zu bezahlen, um apple ??
Überrascht, dass noch niemand beantwortet hat noch, ist das eine Art von Geheimsprache nur bekannt, nachdem Sie etwas zu bezahlen, um apple ??
InformationsquelleAutor Dániel Nagy | 2014-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
als juul genannten Referenz-Arten gespeichert sind, in Haufen und Werte im stack...
Hier möchte ich die Erklärung, warum...
Stack und einen Heap ?
Stack für statische Zuweisung von Speicher-und Heap ist für die dynamische Speicherverwaltung, die beide im computer gespeichert (RAM).
Variablen zugewiesen, die auf dem stack gespeichert sind, direkt auf den Speicher und den Zugriff auf diesen Speicher ist sehr schnell, und es ist die Zuteilung behandelt wird, wenn das Programm kompiliert wird. Wenn eine Funktion oder eine Methode ruft eine weitere Funktion, die wiederum ruft eine andere Funktion etc., die Ausführung aller dieser Funktionen bleibt angehalten, bis Sie die Letzte Funktion gibt seinen Wert zurück. Der stack ist immer reserviert in einem LIFO-Reihenfolge, die die meisten vor kurzem reserviert-block wird immer der nächste block freigegeben werden. Dies macht es wirklich einfach, den überblick zu behalten-Stapel, zu befreien, einen block aus dem Stapel ist nichts mehr als eine Anpassung Zeiger.
Variablen reserviert auf dem heap haben Ihre Speicher zur Laufzeit und Zugriff auf diesen Speicher ist ein bisschen langsamer, aber die heap-Größe wird nur begrenzt durch die Größe des virtuellen Speichers . Element des Heaps haben keine Abhängigkeiten untereinander und können jederzeit aufgerufen werden, nach dem Zufallsprinzip zu jeder Zeit. Nehmen Sie einen block und jederzeit frei es zu jeder Zeit. Dies macht es viel schwieriger zu verfolgen, welche Teile des heap zugewiesen werden oder sich frei zu jeder Zeit gegeben.
InformationsquelleAutor Jaydeep Vyas
Klassen (Referenztypen) zugeordnet sind, in den Haufen, Wert-Typen (wie Struct, String, Int, Bool, etc) Leben in den stack. Finden Sie in diesem Thema weitere, detaillierte Antworten: Warum Wählen Sie Struktur Über Klasse?
InformationsquelleAutor Juul