Ich baue eine Webgl-Anwendung. Und es erfordert Deserialisierung von Daten ~ 15MB (das ist die Größe eines einzelnen Objekts, ich werde etwa 10 davon in meiner Anwendung haben) und der größere Teil (90%) dieser Daten ist ein paar Arrays von Fließkommazahlen und diese Arrays müssen in Float32Arrays in JavaScript deserialisiert werden.Besser performante Alternativen von JSON auf mobilen Geräten
Derzeit verwende ich JSON. Da meine Daten viele Wiederholungszahlen enthalten, ist sie stark komprimierbar und ich bin mit der Netzwerkleistung zufrieden. Außerdem. Ich bin auch mit der Leistung auf dem Desktop zufrieden. Das Laden, Deserialisieren der Daten in reine JS-Arrays und das anschließende Konvertieren in Float32Arrays auf mobilen Geräten erfordert jedoch viel Zeit.
ich als protobuff verwenden, aber ich sah dieses auf https://protobuffers.codeplex.com/
Protocol Buffers sind keine großen Nachrichten zu verarbeiten entworfen. Wenn Sie Nachrichten verarbeiten, die größer als ein Megabyte sind, ist es möglicherweise Zeit eine alternative Strategie zu betrachten.
Was kann ich tun, um die Leistung meiner Anwendung zu verbessern? Welche SERDES-Methoden sollte ich testen?
Bitte führen Sie mich durch diesen Prozess und helfen Sie mir, meine Alternativen zu testen, werde ich mehr Details stellen, wenn Sie etwas in den Kommentaren fragen.
Haben Sie sich BSON angesehen? – Bergi
@Bergi Ich überprüfe das jetzt! – Hasan
Ist die 15MB die Größe der serialisierten JSON-Daten oder die Größe der Daten im Speicher nach der Deserialisierung? Laut http://bsonspec.org/spec.html sieht es so aus, als ob BSON 64-Bit-Floats speichert, nicht 32bit, was sehr schade ist. Protocol Buffers haben einen Double und einen Float, also für Ihre 32bit Float Arrays, die kompakter als BSON sind und eine gute Chance haben schneller zu sein. – bazza