【发布时间】:2019-02-23 15:35:15
【问题描述】:
我在我尝试过的所有浏览器中都偶然发现了一些奇怪的行为:
- Chromium 69.0.3497.92(官方版本)Arch Linux(64 位)
- Chrome 69.0.3497.100(官方版本)(64 位)
- Firefox 62.0(64 位)
当我尝试通过实例化 WebAssembly.Memory 对象为 WebAssembly 分配内存时,例如这样:
new WebAssembly.Memory({ initial: 1 })
在 Chrome/Chromium 中,我得到:
VM274:1 Uncaught RangeError: WebAssembly.Memory(): could not allocate memory
at <anonymous>:1:1
(anonymous) @ VM274:1
在 Firefox 中,我得到:
Error: out of memory
分配在 Node.js 中工作得很好,但由于某种原因,我所有的浏览器在这里都失败了。我不知道该怎么做,所有依赖 WebAssembly 的网站都对我无法使用。
我怀疑 Linux 正在阻止浏览器(但不是 node.js?)分配内存,但这只是一个疯狂的猜测。在另一台计算机上几乎相同的安装工作正常,但在这台特定的计算机上,浏览器的每次分配都会失败。
有人知道怎么回事吗?
这是我对ulimit -a 的输出:
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) unlimited
-m: resident set size (kbytes) unlimited
-u: processes 31215
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 16384
-v: address space (kbytes) 8388608
-x: file locks unlimited
-i: pending signals 31215
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 99
-N 15: unlimited
【问题讨论】:
标签: javascript linux memory browser webassembly