In JavaScript-Typen suchen Ich versuche herauszufinden, wie groß die maximale Speichergröße für einige Datentypen ist. Zum Beispiel habe ich einen schnellen rekursiven Algo eingerichtet, um die Var-Größe zu erhöhen, bis der Browser abstürzt, was schließlich irgendwo bei 128mb (oder vielleicht 256) für Strings in meiner bestehenden Version von Chrome liegt.Javascript maximale Größe für Typen?
Ich habe es die schmerzhafte Art und Weise getan, weil ich keine Spezifikationen zu diesem finden konnte, aber ständige Browserabstürze machen dies zu einer schmerzhaften Probe (Versuch fangen aus irgendeinem Grund mit diesem speziellen Problem nutzlos).
Ich bin für Informationen über maximale Speichergröße für die anderen Typen auch auf der Suche (Array, Objekt, Funktionen, Strings, Zahlen, bools ...)
EMCA-262 Abschnitt 8.4 ist vage auf diesen
Die Länge eines Strings ist die Anzahl der Elemente (dh 16-Bit-Werte) innerhalb des Strings. Der leere String hat die Länge Null und enthält daher keine Elemente.
... vielleicht ist dies etwas, das in Browsern als implementiert identifiziert werden muss?
ECMA jedoch sagt uns über die Zahlen, beispielsweise
der Nummerntyp genau 18437736874454810627 hat (das heißt, 2^64-2^53 + 3) Werte, die die doppeltgenaue 64- Bit-Format IEEE 754-Werte wie im IEEE-Standard für binäre Fließkomma-Arithmetik angegeben, außer dass die 900799254740990 (d. h. 2^53-2) unterschiedlichen "Not-a-Number" -Werte des IEEE-Standards in ECMAScript as dargestellt sind ein einzelner spezieller NaN-Wert.
Aber dann sehe ich nichts über Objekte.
Was kann ich für die Verwendung in Browsern erwarten? Gibt es eine Code-Basis, die hilft, sehr große Objekte und Strings zu verwalten?
Wie viel Speicher kann ich in einem einzigen Skript zuordnen?
So gibt es wirklich kein zentraler Bereich für diese Art von Informationen? – Incognito
Nicht wirklich, aber wenn du diese Grenzen erreichst, tust du höchstwahrscheinlich etwas, das nicht in die Browserumgebung passt :) Obwohl es immer noch interessant ist, zu den Informationen zu gelangen, aber wie gesagt, du wirst es tun müssen viel graben auf Google usw., um es zu finden. –
Wie in jeder anderen Sprache ist die Frage "Was ist die maximale Länge eines Strings?" Analog zur Frage "Wie viel RAM hat der Computer?". Implementierungen können es zwar einschränken oder nicht (wie im Falle von Chrome), aber am Ende des Tages ist eine Zeichenfolge nur ein Array von Bytes (und tatsächlich ist es in den meisten Javascript-Interpretern da draußen nur ein dünner Wrapper um Null-terminiert C Zeichenfolgen). – slebetman