LINUX.ORG.RU

История изменений

Исправление vertexua, (текущая версия) :

Скоро будет еще много интересных срачей и бенчмарков. На shootout например есть такой бенчмарк

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html

regex-redux
source	secs	mem	gz	busy	cpu load
Rust    2.12	153,184	986	3.15	15% 33% 85% 15%
Java   10.25	634,884	740	30.23	68% 95% 67% 65%

Я решил добавить WebAssembly через WASI/wasmtime (http://wasmtime.dev) бенчмарк. Это JIT к WebAssembly плюс системный интерфейс к IO.

Увы проект на ранних стадиях и не умеет в многопоточность, потому чтобы было чесно я убрал rayon из Rust версии и parallelStreams() из Java. Потом собрал Rust бенчмарк з --target=wasm32-wasi

source	          secs	mem
Rust              2.12	153,184
WebAssembly       8.7   328,712 
Java              10.25	634,884

Вот так WebAssembly JIT написаный считай позавчера уделал Java на одном ядре (понятно что отсутсвие многопоточности - сильный минус). До натива еще далеко конечно.

Что интересно, в Java использовался встроеный движек регулярных выражений. В Rust использовался regex crate. В WebAssembly тот же regex был полностью (!!!) скомпилирован в WebAssembly, что означает что мы сделали тест достаточно высокой сложности как для экспериментального рантайма.

WebAssembly конечно нужно подтянуться, иначе он не потеснит натив на серверах, учитывая что почти всегда можно собрать натив. Только если он процентов на 5 будет уступать, тогда удобство единого файла для всех архитектур перевесит.

Наблюдаем. @stevejobs, иди защищай Java

Исправление vertexua, :

Скоро будет еще много интересных срачей и бенчмарков. На shootout например есть такой бенчмарк

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html

regex-redux
source	secs	mem	gz	busy	cpu load
Rust    2.12	153,184	986	3.15	15% 33% 85% 15%
Java   10.25	634,884	740	30.23	68% 95% 67% 65%

Я решил добавить WebAssembly через WASI/wasmtime (http://wasmtime.dev) бенчмарк. Это JIT к WebAssembly плюс системный интерфейс к IO.

Увы проект на ранних стадиях и не умеет в многопоточность, потому чтобы было чесно я убрал rayon из Rust версии и parallelStreams() из Java. Потом собрал Rust бенчмарк з --target=wasm32-wasi

source	          secs	mem
Rust              2.12	153,184
WebAssembly       8.7   328,712 
Java              10.25	634,884

Вот так WebAssembly JIT написаный считай позавчера уделал Java на одном ядре (понятно что отсутсвие многопоточности - сильный минус). До натива еще далеко конечно.

Что интересно, в Java использовался встроеный движек регулярных выражений. В Rust использовался regex crate. В WebAssembly он же был полностью (!!!) скомпилирован в WebAssembly, что означает что мы сделали тест достаточно высокой сложности как для экспериментального рантайма.

WebAssembly конечно нужно подтянуться, иначе он не потеснит натив на серверах, учитывая что почти всегда можно собрать натив. Только если он процентов на 5 будет уступать, тогда удобство единого файла для всех архитектур перевесит.

Наблюдаем. @stevejobs, иди защищай Java

Исправление vertexua, :

Скоро будет еще много интересных срачей и бенчмарков. На shootout например есть такой бенчмарк

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html

regex-redux
source	secs	mem	gz	busy	cpu load
Rust    2.12	153,184	986	3.15	15% 33% 85% 15%
Java   10.25	634,884	740	30.23	68% 95% 67% 65%

Я решил добавить WebAssembly через WASI/wasmtime (http://wasmtime.dev) бенчмарк. Это JIT к WebAssembly плюс системный интерфейс к IO.

Увы проект на ранних стадиях и не умеет в многопоточность, потому чтобы было чесно я убрал rayon из Rust версии и parallelStreams() из Java. Потом собрал Rust бенчмарк з --target=wasm32-wasi

source	          secs	mem
Rust              2.12	153,184
WebAssembly       8.7   328,712 
Java              10.25	634,884

Вот так WebAssembly JIT написаный считай позавчера уделал Java на одном ядре (понятно что отсутсвие многопоточности - сильный минус). До натива еще далеко конечно.

Что интересно, в Java использовался встроеный движек регулярных выражений. В Rust использовался regex crate. В WebAssembly он же был полностью (!!!) скомпилирован в WebAssembly, что означает что мы сделали тест достаточно высокой сложности как для экспериментального рантайма.

Наблюдаем. @stevejobs, иди защищай Java

Исправление vertexua, :

Скоро будет еще много интересных срачей и бенчмарков. На shootout например есть такой бенчмарк

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html

regex-redux
source	secs	mem	gz	busy	cpu load
Rust    2.12	153,184	986	3.15	15% 33% 85% 15%
Java   10.25	634,884	740	30.23	68% 95% 67% 65%

Я решил добавить WebAssembly через WASI/wasmtime (http://wasmtime.dev) бенчмарк. Это JIT к WebAssembly плюс системный интерфейс к IO.

Увы проект на ранних стадиях и не умеет в многопоточность, потому чтобы было чесно я убрал rayon из Rust версии и parallelStreams() из Java. Потом собрал Rust бенчмарк з --target=wasm32-wasi

source	          secs	mem
Rust              2.12	153,184
WebAssembly       8.7   328,712 
Java              10.25	634,884

Вот так WebAssembly JIT написаный считай позавчера уделал Java на одном ядре (понятно что отсутсвие многопоточности - сильный минус). До натива еще далеко конечно.

Что интересно, в Java использовался встроеный движек регулярных выражений. В Rust использовался regex crate. В WebAssembly он же был полностью (!!!) скомпилирован в WebAssembly, что означает что мы сделали тест достаточно высокой сложности как для экспериментального рантайма.

Наблюдаем. @stevejobs

Исходная версия vertexua, :

Скоро будет еще много интересных срачей и бенчмарков. На shootout например есть такой бенчмарк

https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html

regex-redux
source	secs	mem	gz	busy	cpu load
Rust    2.12	153,184	986	3.15	15% 33% 85% 15%
Java   10.25	634,884	740	30.23	68% 95% 67% 65%

Я решил добавить WebAssembly через WASI/wasmtime (http://wasmtime.dev) бенчмарк. Это JIT к WebAssembly плюс системный интерфейс к IO.

Увы проект на ранних стадиях и не умеет в многопоточность, потому чтобы было чесно я убрал rayon из Rust версии и parallelStreams() из Java. Потом собрал Rust бенчмарк з --target=wasm32-wasi

source	          secs	mem
Rust              2.12	153,184
WebAssembly       8.7   328,712 
Java              10.25	634,884

Вот так WebAssembly JIT написаный считай позавчера уделал Java на одном ядре (понятно что отсутсвие многопоточности - сильный минус). До натива еще далеко конечно.

Что интересно, в Java использовался встроеный движек регулярных выражений. В Rust использовался regex crate. В WebAssembly он же был полностью (!!!) скомпилирован в WebAssembly, что означает что мы сделали тест достаточно высокой сложности как для экспериментального рантайма.

Наблюдаем.