A-frame / Three js утечка потоковой памяти - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь транслировать 360-градусное видео в прямом эфире через A-кадр, устанавливая атрибут sr c неба на конечную точку Flask, которая обслуживает каждый кадр при выполнении запроса GET. Код работает, однако, несмотря на то, что я отключил кеширование, использование памяти страницей со временем постоянно увеличивается и значительно замедляется. Большая часть памяти соответствует go тому, что помечено как (закрытие) в chrome инструментах разработчика (32 байта на кадр).

Chrome использование памяти

Код:

<a-sky set-sky=""></a-sky>


THREE.Cache.enabled = false


 AFRAME.registerComponent('set-sky', {
   schema: {default:''},
   init: function() {
     this.timeout = setInterval(this.updateSky.bind(this), 41);
     this.sky = this.el;
     this.sky.setAttribute( 'crossorigin', "Anonymous");
     this.sky.setAttribute( 'src', "http://0.0.0.0:5000/video_feed?" + new Date().getTime());

   },
   remove: function() {
     clearInterval(this.timeout);
     this.el.removeObject3D(this.object3D);
   },
   updateSky: function() {
       THREE.texture = {}
       this.sky.setAttribute( 'src', "http://0.0.0.0:5000/video_feed?" + new Date().getTime());
   }
 });

На стороне сервера я также настроил запрос не хранить изображения

response.headers['Pragma-Directive'] = 'no-cache'
response.headers['Cache-Directive'] = 'no-cache'
response.headers['Cache-Control'] = 'no-store   '
response.headers['Pragma'] = 'no-cache'
response.headers['Expires'] = '0'

Что я могу сделать, чтобы данные не сохранялись в памяти?

...