Ich habe eine App, die häufig binäre Nachrichten über einen WebSocket (mindestens einmal pro Rahmen) empfängt und die Daten plottet, mit Canvas/Webgl. Ich habe bemerkt, dass ich ein ziemlich gutes Sägezahngedächtnisprofil habe; viele kurzlebige Datenbrocken. WebSocket häufige onmessage zero-copy
Das überrascht mich nicht, da ich ein Objekt aus onmessage
, mindestens einmal alle 16 ms empfangen, die zum Zeichnen und dann dereferenziert verwendet wird.
Meine Frage ist: Gibt es irgendwelche Tipps zur Vermeidung/Minimierung? Basierend auf dem WebSocket API scheint es keine Alternative zu geben, dass bei jedem Socket-Empfangsaufruf neuer Speicher zugewiesen wird. In einer anderen Sprache/Umgebung würde ich etwas Speicher vorgeben und in diesen Puffer aufnehmen, um zu vermeiden, dass ständig Speicher für kurzlebige Objekte zugewiesen werden, aber ich kann mir keinen offensichtlichen Weg vorstellen, dies in JavaScript im Browser zu erreichen.
Als Referenz, hier ist meine Frames Ansicht.
Ich weiß nicht, ob das Leerlaufzeit Garbage Collection ist? Alle dev-tools Ninja Einblicke würden sehr geschätzt werden.
in JS Haben Sie bekommen jedes Codebeispiel finden können? habe etwas angefangen? eine Geige? – Anonymous0day
Ich habe das gleiche Problem streaming Sensor Datum von meinem Raspberry Pi über WebSockets. Ich fürchte, es gibt und wird keine Möglichkeit geben, die Speicherzuweisung von WebSockets in Javascript zu stören. Meine Forschung hat keine Ergebnisse gebracht. – windm
Was möchten Sie erreichen? Wie lange läuft das Programm und wie wichtig ist konsistente, langlebige Leistung? Einen kleinen Code oder ein Codebeispiel zu sehen wäre großartig. –