Я пытался найти способ экспортировать вектор или другую кучу, выделенную в JavaScript. Я попробовал это: < /p> [code]use wasm_bindgen::prelude::*; use std::alloc::{Layout, dealloc};
#[wasm_bindgen] pub fn get_array() -> ArrayBuffer { let data = vec![1, 2, 3, 4, 5]; let ptr = data.as_ptr(); let len = data.len();
std::mem::forget(data);
ArrayBuffer { ptr, len } }
#[wasm_bindgen] pub fn free_array_raw(ptr: *mut u8, len: usize) { unsafe { let mut v = Vec::from_raw_parts(ptr, len, len); v.fill(0); drop(v); } } < /code> I Compile с wasm-pack targetting nodejs < /p> wasm-pack build --target nodejs < /code> Вот мой код Javascript, который я использовал для его тестирования < /p> const wasm = require('./pkg/wasm.js');
async function run() { const arrayBuffer = wasm.get_array(); const ptr = arrayBuffer.ptr; const len = arrayBuffer.len;
const memory = wasm.__wasm.memory;
const uint8Array = new Uint8Array(memory.buffer, ptr, len);
run().catch(console.error); < /code> Память не складывается, я все еще могу получить доступ к данным < /p> [root@localhost wasm]# node ./main.js Uint8Array(5) [ 1, 2, 3, 4, 5 ] Uint8Array(5) [ 1, 2, 3, 4, 5 ] [/code] Как правильный способ сдать память кучи?
Существует класс A и его ребенок B (и B дети Ba , bb и т. Д.). Ba , bb , ... хранятся в векторе . - это в основном интерфейс и не имеет каких -либо параметров, и B и его дети держат указатели, и в настоящее время они не удаляются, когда программа...
У меня есть приложение Blazor 8 Wasm, которое работает нормально, но при каждом обновлении/навигации по странице загрузка занимает много секунд. Похоже, файлы веб-сборки не кэшируются.
Когда я смотрю на вкладке сеть, каждый раз загружается 90...
Yesterday I tried to open a *.txt file larger than 3 MB with android. Why can't android open it? Previously I had tried to open that file with Windows with the same RAM capacity and Processor speed.