Size: a a a

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

2019 March 18

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Ну это я округлил)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
хм, а почему в теории он вообще должен уступать?
есть теоретические пределы как для текущей версии wasm (вспомнить только отсутствие SIMD так и отсутствиее гомогенных таблиц функций)

так и более менее фундаментальные. Например, в движках общего назначения в большинстве случаев нужно зарезервировать регистр
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
произведенный код очень чувствителен к количеству регистров в распоряжении
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
если это не статистически было выведено конечно
типа в X % всех программ используется вот такая вот штука, которую компилятор может с оптимизировать так, чтобы получить Y перфоманса на зафиксированной архитектуре, а в jit такого-то типа из-за того-того это не может, но может другую оптимизацию и т.д.
источник

MV

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

lp

lil pep in WebAssembly — русскоговорящее сообщество
ага, это правильно
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
тут, имхо, скорее прикидки
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
мы ща обстрактных коней обсуждаем
источник

lp

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

lp

lil pep in WebAssembly — русскоговорящее сообщество
некоторые "фундаментальные проблемы" на самом деле не такие уж и фундаментальные если предположить некоторые изменения на железе
источник

MV

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

lp

lil pep in WebAssembly — русскоговорящее сообщество
ID:414983998
В теории, идеальный jit должен уступать всего на 10% нативу. Но у v8 например очень медленный mem bound checking и нету еще многих оптимизаций для циклов и оптимизаций для 64-битовых целых насколько я смотрел. Они только недавно добавили loop rotation pass. А еще нужен unroll, vectorization, LCSSA, LICM, ScalarEvolution
вот про v8 не понял. Даже liftoff умеет в поимку OOB через сигналы
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
кажется, что максимально возможное количество оптимизаций как-то связано с количеством информации, которое компилятор может получить из исходника
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
вроде как только это и имеет значение
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
хотя я хз, что они называют JITом у себя
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
v8 вообще скорее всего другая итория
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
там же многое на постоянном сборе статистики завязано
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
неужели реализации JIT для васма такие же?
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
@pepyakin Не та статья, но тоже интерестная:
http://www.ittc.ku.edu/~kulkarni/CARS/papers/pgo.pdf
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
кажется тут просто путанница в терминологии
источник