分配所需的大小我试图运行该代码分配一个ArrayBuffer:JavaScript是不是ArrayBuffer
var data = new ArrayBuffer(336000000);
console.log(data.byteLength); // outputs 125829120
有谁知道为什么不分配,如果字节的数量? Chrome不会给我任何错误/警告。
这个问题是不是每个平台上,但在几个像银河S6(Android浏览器)
分配所需的大小我试图运行该代码分配一个ArrayBuffer:JavaScript是不是ArrayBuffer
var data = new ArrayBuffer(336000000);
console.log(data.byteLength); // outputs 125829120
有谁知道为什么不分配,如果字节的数量? Chrome不会给我任何错误/警告。
这个问题是不是每个平台上,但在几个像银河S6(Android浏览器)
你试图分配更多的内存比可用。然而,根据规范,这应该抛出一个异常,而不是返回你一个较小的缓冲区:
http://www.ecma-international.org/ecma-262/6.0/#sec-createbytedatablock
让DB是由大小字节的新的数据块的价值。如果不可能创建这样的数据块,则引发RangeError异常。
和以往的规范https://www.khronos.org/registry/typedarray/specs/latest/#5
如果请求的字节数无法分配将引发异常
所以,如果您的浏览器返回一个较小的缓冲区而不是抛出例外,它不符合规定。
这就是336兆字节。也许你只能访问125兆字节的内存? – Kris
它输出'336000000'就好了。我把它放在Chrome上的控制台上。 –
@NeilDocherty不会依赖于可用的资源吗?我希望你有更多的内存可以通过S6在你的电脑上使用。 – Kris