Понятно, что один указатель на функцию без ифов лучше, чем несколько ифов. Но если у Вас 8 ифов, то не думаю, что Вы отделаетесь одним указателем на функцию, и в ней самой не будет ифов. 😉
Не всегда, если это switch-case (который в худшем случае трансформируется в jump table) то произвордительрность может быть и не хуже, кроме того у меня часто выходило, что бинарный поиск организованный через иерархию вложенных if-else был быстрее даже чем поисковая таблица, но это все зависит от размеров. иногда только реальные бенчмарки скажут наверняка
а как нормально пробросить массив больше чем стандартная страница? я конечно сделал grow(столько_сколько_нужно) у exports.memory, но верно ли это?
можно использовать эти методы:
__builtin_wasm_current_memory(); // получить колличество выделенных страниц (memory.size) __builtin_wasm_grow_memory(pagesDelta); // увеличить текущее колличество страниц на pagesDelta
__builtin_wasm_current_memory(); // получить колличество выделенных страниц (memory.size) __builtin_wasm_grow_memory(pagesDelta); // увеличить текущее колличество страниц на pagesDelta
Если ты хочешь пробросить массив, который не помещается в линейную память, то его нужно расширить, где уже это делать тебе решать, где удобнее там и расширяй)