Size: a a a

WebAssembly — русскоговорящее сообщество

2021 July 31

でゲソ in WebAssembly — русскоговорящее сообщество
а есть почитать про него, а то гугол меня на тимсорт кидает
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
если перейти по ссылке на твит то можно найти статью по которой я это реализовывал
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ктонибудь знает как докер образ шустрее в исполнении node.js?
node:16.6.0-alpine3.14
или
node:16.6.0-buster
?
источник

DI

Dmitry Ilyin in WebAssembly — русскоговорящее сообщество
Alpine обычно собирается на Musl с -Os и там могут быть оптимизации по скорости выключены, но надо тестить
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
спасибо
источник
2021 August 01

でゲソ in WebAssembly — русскоговорящее сообщество
а ссылкой на имплементацию не поделишься?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Она очень специфичная для AssemblyScript. Кроме того там немного другой insertion sort + некоторые специфичные оптимизации, не как в публикации. Если планируешь это реализовывать на каком то другом языке то лучше по пейперу делать, проще будет разобраться
источник

でゲソ in WebAssembly — русскоговорящее сообщество
да это понятно. врядли доберусь реализовывать, а текущий вариант посмотреть было бы неплохо
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Кстати можно заметить насколько это компактнее даже самомго простого TImSort
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Line 172,173 buffer deallocation... Есть какой-то идеоматический шаблон для гарантии что эти строки будут выполнены? ( Something like _finally_)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
В смысле? Это не managed аллокации, они всегда будут выполнены. Другое дело если бы это было __new (или new ArrayBuffer) вместо __alloc (или heap.alloc, что тоже самое)
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
I am talking about __free
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Еще раз пара __alloc /  __free это не GC аллокации, они явно выделяют и освобаждают память в хипе
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
А вот для __new / new ArrayBuffer вызывать __free бесполезно. если только __new не используется для структуры помеченной как @unmanaged
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
Может, вопрос про исключения, которые могут прервать выполнение раньше, чем оно дойдёт до free?
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Correct
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
I clearly said so
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
Then what prevented you from writing that yourself? 😊
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Там не могут быть никаких исключений =) Любое исключение (trap) прервет выполнение программы, без возможности сделать rewind
источник