Рубрики
Без рубрики

Wasm: Управление памятью

Итак, вы решили написать свое новое веб -приложение в WASM – захватывающее! Кроме того, вы хотите это написать … Tagged с CPP, Webassembly, JavaScript.

Итак, вы решили написать свое новое веб -приложение в WASM – захватывающее! Кроме того, вы хотите написать его в C ++, чтобы иметь мелкозернистый контроль над хранением данных и манипуляциями.

Вот несколько отличных советов, которые помогут вам преодолеть серьезные головные боли.

Во -первых, поскольку память, доступная для вашей программы, на самом деле является объектом JS, она доступна как один смежный кусок, который ограничен линейным масштабированием. Это означает, что вы должны быть очень осторожны с удалением объектов и освобождением памяти. На самом деле, прекратите удалять объекты вообще. Если вы чувствуете необходимость избавиться от временных объектов памяти, создайте отдельный временный объект памяти в JS для этой операции, например, так:

Второй большой подсказка – выровнять свои структуры данных. Если у вас есть много структур данных, которые входят и выходят из области выполнения, вы столкнетесь с множеством разломов сегментации из-за смещений памяти, особенно если ваши структуры имеют много уровней беспрострукций масштабирования, например, в случае Цепочки Маркова.

Не предусмотрено альтернативное текст для этого изображения. Явное выравнивание памяти не будет иметь штрафы с точки зрения роста памяти, поскольку сложности ваших цепей Маркова увеличиваются – именно здесь пригодится множество объектов памяти. Этот недостаток стоит бонусов на производительность и стабильности, которые вы узнаете, когда вы копаетесь в WASM.

Веселитесь в вашем путешествии Wasm!

Оригинал: “https://dev.to/shaafiee/wasm-memory-management-33l6”