Baseline Widely available
WebAssembly.Memory()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯æ°ãã Memory
ãªãã¸ã§ã¯ããçæãã¾ãããã㯠buffer
ããããã£ããµã¤ãºå¤æ´å¯è½ãª ArrayBuffer
ã¾ã㯠SharedArrayBuffer
ã§ããã WebAssembly ã® Instance
ããã¢ã¯ã»ã¹ããçã®ãã¤ãåã®ã¡ã¢ãªã¼ã§ãããã®ã§ãã
JavaScript ã¾ã㯠WebAssembly ã³ã¼ãããçæãããã¡ã¢ãªã¼ã¯ JavaScript 㨠WebAssembly ã®ã©ã¡ããããã¢ã¯ã»ã¹ã夿´ãå¯è½ã«ãªãã¾ãã
æ§ænew WebAssembly.Memory(memoryDescriptor);
弿°
以ä¸ã®ã¡ã³ãã¼ãå«ããã¨ãã§ãããªãã¸ã§ã¯ãã§ãã
WebAssembly ã¡ã¢ãªã¼ã®åæãµã¤ãºã§ãåä½ã¯ WebAssembly ãã¼ã¸æ°ã§ãã
WebAssembly ã¡ã¢ãªã¼ãæ¡å¼µã§ããæå¤§ãµã¤ãºã§ãåä½ã¯ WebAssembly ãã¼ã¸æ°ã§ããåå¨ããå ´åã maximum
弿°ã¯ã¨ã³ã¸ã³ãã¡ã¢ãªã¼ãäºç´ãããã³ãã¨ãã¦ä½¿ç¨ããã¾ãããã ããã¨ã³ã¸ã³ã¯ãã®äºç´ãªã¯ã¨ã¹ããç¡è¦ãããåºå®ããããããã¨ãããã¾ããä¸è¬çã«ãã»ã¨ãã©ã® WebAssembly ã¢ã¸ã¥ã¼ã«ã§ã¯ maximum
ãè¨å®ããå¿
è¦ã¯ããã¾ããã
è«çå¤ã§ããã®ã¡ã¢ãªã¼ãå
±æã¡ã¢ãªã¼ã«ãããã©ãããå®ç¾©ãã¾ãã true
ã«è¨å®ããã¨ãå
±æã¡ã¢ãªã¼ã«ãªãã¾ããæ¢å®å¤ã¯ false
ã§ãã
ã¡ã¢: WebAssembly ãã¼ã¸ã¯ 65,536 ãã¤ããããªãã¡ 64KiB ã®åºå®é·ã§ãã
ä¾å¤memoryDescriptor
ããªãã¸ã§ã¯ãã§ãªãå ´åã¯ã TypeError
ãçºçãã¾ããmaximum
ãè¨å®ããã¦ãããã㤠initial
ãããå°ããå ´åã¯ã RangeError
ãçºçãã¾ããWebAssembly.Memory
ãªãã¸ã§ã¯ããåå¾ããæ¹æ³ã¯ 2 ã¤ããã¾ãã 1 ã¤ç®ã¯ JavaScript ããæ§ç¯ããæ¹æ³ã§ããæ¬¡ã®ä¾ã§ã¯ãæ°ãã WebAssembly Memory ã¤ã³ã¹ã¿ã³ã¹ãåæãµã¤ãºã 10 ãã¼ã¸ (640KiB) ãæå¤§ãµã¤ãºã 100 ãã¼ã¸ (6.4MiB) ã§çæãã¦ãã¾ãããã® buffer
ããããã£ã¯ ArrayBuffer
ãè¿ãã¾ãã
var memory = new WebAssembly.Memory({ initial: 10, maximum: 100 });
2 ã¤ç®ã¯ WebAssembly ã¢ã¸ã¥ã¼ã«ããã¨ã¯ã¹ãã¼ãããã WebAssembly.Memory
ãªãã¸ã§ã¯ãã使ç¨ããæ¹æ³ã§ããæ¬¡ã®ä¾ã§ã¯ (GitHub ä¸ã® memory.html ããã³åä½ä¾ãåç
§)ã memory.wasm ãã¤ãã³ã¼ãã WebAssembly.instantiateStreaming()
ã¡ã½ããã§èªã¿è¾¼ã¿ãã§ã¤ã³ã¹ã¿ã³ã¹åãããã®ä¸ã®è¡ã§çæãããã¡ã¢ãªã¼ã«ã¤ã³ãã¼ããã¾ãããããããã¡ã¢ãªã¼ã«ããã¤ãã®å¤ãæ ¼ç´ãã颿°ãã¨ã¯ã¹ãã¼ããã¦ä½¿ç¨ããããã¤ãã®å¤ãåè¨ãã¾ãã
WebAssembly.instantiateStreaming(fetch("memory.wasm"), {
js: { mem: memory },
}).then((obj) => {
var i32 = new Uint32Array(memory.buffer);
for (var i = 0; i < 10; i++) {
i32[i] = i;
}
var sum = obj.instance.exports.accumulate(0, 10);
console.log(sum);
});
å
±æã¡ã¢ãªã¼ã®ä½æ
æ¢å®ã§ã¯ã WebAssembly ã®ã¡ã¢ãªã¼ã¯å
±æããã¦ãã¾ãããå
±æã¡ã¢ãªã¼ã使ããã«ã¯ãã³ã³ã¹ãã©ã¯ã¿ã¼ ã®åæåãªãã¸ã§ã¯ãã« shared: true
ãæ¸¡ãã¦ãã ããã
let memory = new WebAssembly.Memory({
initial: 10,
maximum: 100,
shared: true,
});
ãã®ã¡ã¢ãªã¼ã® buffer
ããããã£ã¯ SharedArrayBuffer
ãè¿ãã¾ãã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4