http://jsfiddle.net/ES4xG/8/ stürzt die meisten Retina-Geräte ab.iOS Safari hat nicht genügend Arbeitsspeicher mit "-webkit-transform"
iOS Safari "leicht" nicht genügend Arbeitsspeicher und stürzt ab, wenn Sie einige -webkit-transform
Anweisungen verwenden. Dieser Ansatz liefert beeindruckende Grafiken, aber gerade auf Retina-Displays scheint er viel Speicherplatz zu verbrauchen und Abstürze zu verursachen.
Die Demo oben zeigt einen Text angezeigt 150 Mal, die sonst normalerweise auf einem PC-Browser laufen würde:
Die Schriftgröße und Anzahl der Elemente übertrieben einen Absturz zu verursachen. Die -webkit-transform: translate3d(0,0,0)
soll GPU beschleunigte Zeichnung jedes Elements erzwingen.
In der realen Anwendung verwenden wir translateX
, Y
, Z
, scale
und andere, die auf die gleiche Art und Weise zu GPU Gebrauch verbunden zu sein scheinen. Bilder und Sprites werden ebenfalls verwendet, sind jedoch nicht direkt mit Abstürzen verbunden.
das Szenario oben Gegeben:
1) Ist es ein Fehler, dass iOS Safari abstürzt?
2) Beim Einstecken des Speichermonitors von Apple Instruments klettert der virtuelle Speicher und scheint der Schuldige des Absturzes zu sein. Was genau benutzt dieses Gedächtnis?
3) Gibt es einen anderen GPU-beschleunigten Ansatz, der nicht viel Speicher verbrauchen würde?
Sie haben viel irrsinnig großen Text (1500px), den großen Puffer auf der GPU erzeugt - vor allem auf Retina-Geräten. Dies ist verpflichtet, viel Speicher zu verbrauchen. – i47
Ja, Sie haben Recht Speicherverbrauch ist ein Problem. Aber sollte Safari nicht abstürzen? Also wird diese Erinnerung tatsächlich von der GPU konsumiert? Ich schlage nicht vor, die Schriftgröße ist richtig, das ist nur eine Vereinfachung des Problems. Sie können viele Elemente mit kleineren Schriftarten haben, die auf die gleiche Weise zum Absturz führen. Prost. –
Netter Code. Crashed mein iPad 2 (keine Netzhaut) auf Google Chrome. Das ist jedoch eine Menge Rendering zu tun. – TheDoctor