Ho un'app che riceve frequentemente messaggi binari su una WebSocket (almeno una volta per frame) e traccia i dati, usando canvas/webgl. Ho notato che ho un profilo di memoria del dente di sega piuttosto buono; molti pezzi di dati di breve durata. WebSocket onmessage frequente zero-copy
Questo non mi sorprende dal momento che sto ricevendo un oggetto da onmessage
, almeno una volta ogni 16 ms, che viene utilizzato per il disegno e poi de-reference.
La mia domanda è: ci sono suggerimenti per evitare/minimizzare questo? In base allo WebSocket API, non sembra essere un'alternativa all'aver ricevuto una nuova memoria allocata su ogni chiamata di ricezione socket. In un'altra lingua/ambiente, pre-allocare un po 'di memoria e ricevere in quel buffer, per evitare di allocare costantemente memoria per oggetti di breve durata, ma non riesco a pensare ad alcun modo ovvio per ottenere ciò in JavaScript nel browser.
Per riferimento, ecco la vista Frames.
Non so se questo tempo di inattività è garbage collection? Qualsiasi intuizione ninja degli strumenti di sviluppo sarebbe molto apprezzata.
Avete qualche esempio di codice? hai iniziato qualcosa? un violino? – Anonymous0day
Ho lo stesso problema con la data del sensore di streaming dal mio raspberry pi su WebSockets. Temo che non ci sia e non sarà in alcun modo possibile interferire con l'allocazione della memoria di WebSockets in javascript. La mia ricerca non ha portato alcun risultato. – windm
Cosa speri di ottenere? Quanto dura il programma e quanto è importante una prestazione costante e di lunga durata? Vedere un piccolo codice o un esempio di codice sarebbe fantastico –