URL.createObjectURL()很慢

时间:2017-01-04 20:45:15

标签: javascript parallel-processing real-time web-worker

我创建了库uwork,但启动每个进程需要一些时间,因此它不适合实时应用程序。做了一些性能基准,我得到了this snippet来说明问题:

let external = (new Date()).getTime();
let blob = new Blob([`
  let internal = new Date();
  console.log("Creation:", internal - ${external} + 'ms');
`], {"type": "text\/plain"});
let file = URL.createObjectURL(blob);
let ww = new Worker(file);

创建文件和Web worker需要50-400ms之间的任何时间。有没有办法优化这个?为什么需要这么长时间?

这对于“漫长”的处理时间是完全可以的,因为那时启动时间可以忽略不计,但对于视频分析这样的实时应用程序来说这是不可能的,我希望以至少10fps(100ms /运行)的速度应用它

修改

some testing之后,这也需要50-400毫秒,所以我强烈认为这是URL.createObjectURL()(或new Blob())花费这段时间而不是创建网络工作者的本身:

let external = (new Date()).getTime();
let blob = new Blob([external], {"type": "text\/plain"});
let file = URL.createObjectURL(blob);
fetch(file).then(res => res.text()).then(file => {
  console.log("Fetched:", new Date() - parseInt(file), 'ms');
});

0 个答案:

没有答案