| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/WebAssembly/Reference/JavaScript_interface/Memory/Memory | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis octobre 2017.
Le constructeur WebAssembly.Memory() permet de crer un nouvel objet Memory dont la proprit buffer est un tableau tampon ArrayBuffer redimensionnable ou un SharedArrayBuffer contenant les octets bruts de mmoire laquelle accde une Instance WebAssembly.
Une mmoire cre par du code JavaScript ou WebAssembly sera accessible et modifiable depuis JavaScript ou WebAssembly.
new WebAssembly.Memory(descripteurMemoire);
Un objet contenant les proprits suivantes :
initialLa taille initiale de la mmoire WebAssembly Memory, exprime en nombre de pages WebAssembly.
maximum FacultatifLa taille maximale que peut atteindre la mmoire WebAssembly, exprime en nombre de pages WebAssembly. Lorsque ce paramtre est prsent, il peut tre utilis comme indication par le moteur afin de rserver la mmoire d'avance. Toutefois, le moteur pourra ignorer cette rservation ou l'effectuer avec une taille moindre. Les mmoires WebAssembly qui ne sont pas partages n'ont pas besoin de dfinir une proprit maximum, en revanche, c'est une proprit ncessaire pour les mmoires partages.
shared FacultatifUne valeur boolenne qui dfinit si la mmoire est partage ou non. Si elle vaut true, il s'agira d'une mmoire partage. La valeur par dfaut est false.
Note : Une page WebAssembly mesure une taille constante de 65 536 octets, soit 64Ko.
descripteurMemoire n'est pas un objet, une exception TypeError sera leve.maximum est indiqu et est infrieur initial, une exception RangeError sera leve.Il existe deux faons d'obtenir un objet WebAssembly.Memory. La premire consiste la construire depuis du code JavaScript. Dans l'exemple qui suit, on cre une nouvelle instance d'un objet Memory WebAssembly avec une taille initiale de 10 pages (640Ko) et une taille maximale de 100 pages (6,4Mo). Sa proprit buffer renverra un objet ArrayBuffer.
var memory = new WebAssembly.Memory({ initial: 10, maximum: 100 });
La deuxime mthode pour obtenir un objet WebAssembly.Memory consiste l'exporter depuis un module WebAssembly. Dans l'exemple suivant (voir memory.html sur GitHub pour le code source, ainsi que la dmonstration correspondante), on rcupre et on instancie le bytecode charg memory.wasm avec la mthode WebAssembly.instantiateStreaming() tout en important la mmoire cre la ligne prcdente. On stocke ensuite certaines valeurs dans cette mmoire et on exporte une fonction qu'on utilise pour additionner certaines des valeurs.
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);
});
Par dfaut, les mmoires WebAssembly ne sont pas partages. On peut crer une mmoire partage en passant shared: true dans l'objet d'initialisation du constructeur :
let memory = new WebAssembly.Memory({
initial: 10,
maximum: 100,
shared: true,
});
La proprit buffer de l'objet mmoire correspondant renverra alors un objet SharedArrayBuffer.
| Spcification |
|---|
| WebAssembly JavaScript Interface # dom-memory-memory |
Cette page a t modifie le 7 sept. 2025 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |