Size: a a a

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

2020 September 24

К

Константин in WebAssembly — русскоговорящее сообщество
Тупой тест, но по ходу рили Decoder быстрее.
Еще бы в верную кодировку
Upd, я как всегда неверно написал length
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Если заменить на
const buffer = new Uint16Array(new TextEncoder().encode(text));

function charCode() {
return String.fromCharCode.apply(String, buffer);
}

const dec = new TextDecoder('utf-16le');
function decoder() {
return dec.decode(buffer);
}


как и должно быть, то результаты такие:
источник

M

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

К

Константин in WebAssembly — русскоговорящее сообщество
apply херова, так как сделает переполнение стека
источник

M

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

К

Константин in WebAssembly — русскоговорящее сообщество
Нужно тогда батчить
источник

M

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

К

Константин in WebAssembly — русскоговорящее сообщество
Ну вот, и кому верить? В фф тупой, в хроме не тупой
источник

К

Константин in WebAssembly — русскоговорящее сообщество
Хром занимает почти весь рынок
источник

К

Константин in WebAssembly — русскоговорящее сообщество
Ну на худой заменю просто реализацию, все равно частично придётся переписать наверное лоадер..
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Hmm, а Safari последний вообще интерестные результаты дает)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Но я бы не сильно доверял этим тестам, так как входной буффер инвариантен, лучше что бы это все же каждую итерацию ренерировалась новая строка, боюсь просто TextDecoder может просто напросто иметь внутренний кэш. Учитывая как себя повел Safari так похоже и рпоизошло, ну не может быть пости 1млн операций в сек, это практически вызов пустой функции
источник

К

Константин in WebAssembly — русскоговорящее сообщество
Да, надо порандомить.
А то они так же сделали с текстурой webgl из канвы.
Но тогда проблема, что будет так же рандом влезать в метрики.
И хз как оно там работает тоже
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Константин
Да, надо порандомить.
А то они так же сделали с текстурой webgl из канвы.
Но тогда проблема, что будет так же рандом влезать в метрики.
И хз как оно там работает тоже
Если получиться сделать правильный бенчмарк с разными размерами строки (small, middle, large) а так же рандобизацией и окажеться что text encoding все таки быстрее на большинстве браузеров, то смело открывай issue и мы переделаем лоадер
источник

К

Константин in WebAssembly — русскоговорящее сообщество
MaxGraey
Если получиться сделать правильный бенчмарк с разными размерами строки (small, middle, large) а так же рандобизацией и окажеться что text encoding все таки быстрее на большинстве браузеров, то смело открывай issue и мы переделаем лоадер
Бенчмаркер тупой, он так же Setup запускает для каждого теста
источник

К

Константин in WebAssembly — русскоговорящее сообщество
что как бы конечно круто, но... хотя, так можно порандомить.
источник

К

Константин in WebAssembly — русскоговорящее сообщество
те запускает сетап для кадой пачки.
источник
2020 September 26

Constantine ʕ◔ϖ◔ʔ🦀... in WebAssembly — русскоговорящее сообщество
источник

c

cevek in WebAssembly — русскоговорящее сообщество
кажется они просто склеили готовый парсер на го, quickjs  и написали пару биндингов к фс, консольке и сети
источник

AI

Andrei 💅💅💅 Iashchak... in WebAssembly — русскоговорящее сообщество
cevek
кажется они просто склеили готовый парсер на го, quickjs  и написали пару биндингов к фс, консольке и сети
Как и нода, да?
источник