The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Mozilla развивает WASI для использования WebAssembly в..., opennews (?), 28-Мрт-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


21. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +6 +/
Сообщение от Аноним (82), 28-Мрт-19, 13:25 
Неееет! Остановите их кто-нибудь, хватит с нас нодыжс!
Ответить | Правка | Наверх | Cообщить модератору

24. "Mozilla развивает WASI для использования WebAssembly вне бра..."  –3 +/
Сообщение от Аноним (16), 28-Мрт-19, 13:35 
Нода божественна! И она тоже умеет в васм.
Ответить | Правка | Наверх | Cообщить модератору

25. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Аноним (11), 28-Мрт-19, 13:36 
Не пользуйся, тебя никто не заставляет.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

26. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Иваныч (??), 28-Мрт-19, 13:39 
Казалось бы, что общего между JS интерпретором и виртуальной машиной для выполнения кода на C/C++ с практически одинаковой (близкой и ещё ближе в следующих версиях) скоростью исполнения?
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

28. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Аноним (28), 28-Мрт-19, 13:45 
То и другое написано на C++.
Ответить | Правка | Наверх | Cообщить модератору

30. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +2 +/
Сообщение от Аноним84701 (ok), 28-Мрт-19, 13:52 
> Казалось бы, что общего между JS интерпретором и виртуальной машиной для выполнения
> кода на C/C++ с практически одинаковой (близкой и ещё ближе в следующих версиях) скоростью исполнения?

Клятвенные обещания и торжественные заверения (причем, еще со времен JIT для первых Жабо-Не-Скрипт-VM), что "еще немного, совсем чуть-чуть и оно совсем уже скоро почти догонит и  многократно перегонит нативный Васюк^W код по скорости исполнения!1!"?
https://arxiv.org/abs/1901.09056
> (Submitted on 25 Jan 2019)
> We then use BROWSIX-WASM to conduct the first large-scale evaluation of the performance of WebAssembly vs. native.
> Across the SPEC CPU suite of benchmarks, we find a substantial performance gap: applications compiled to
> WebAssembly run slower by an average of 50% (Firefox) to 89% (Chrome), with peak slowdowns of 2.6x (Firefox) and 3.14x (Chrome).

.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

33. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Иваныч (??), 28-Мрт-19, 13:58 
LLVM & QVM (Quake 3 VM, но только Pure C) давно умеют в 10% разницы от силы. У We Assembly есть все шансы стать стандартизипрванным LLVM который также умеет в браузере. С поддержкой нескольких крупных производителей. Что есть не плохо.
Ответить | Правка | Наверх | Cообщить модератору

37. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Аноним84701 (ok), 28-Мрт-19, 14:18 
> LLVM & QVM (Quake 3 VM, но только Pure C) давно умеют в 10% разницы от силы.

Только вот VM в LLVM эдакий "исторический прикол" и ни разу не VM в "привычно-традиционном" смысле.
Таким макаром можно и GCC в VM записать, c его GIMPLE/RTL и прочими промежуточными представлениями.

Ответить | Правка | Наверх | Cообщить модератору

38. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Иваныч (??), 28-Мрт-19, 14:34 
Я в курсе. Но я немного не об этом, не об использовании LLVM для генерации кода, а о возможности использования LLVM BitCode (Target) как библиотеки вне зависимости от операционной системы и ограничения такого модуля от доступа к системным вещам вне предоставленного API приложения которое такой модуль занрузило в качестве изолированной библиотеки.
Ответить | Правка | Наверх | Cообщить модератору

60. "Mozilla развивает WASI для использования WebAssembly вне бра..."  –1 +/
Сообщение от Аноним (54), 28-Мрт-19, 16:30 
Так, всё-таки, LLVM BitCode или WebAsm?
Ответить | Правка | Наверх | Cообщить модератору

97. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Ordu (ok), 28-Мрт-19, 21:48 
> о возможности использования LLVM BitCode

http://llvm.org/docs/BitCodeFormat.html :

> What is commonly known as the LLVM bitcode file format (also, sometimes anachronistically known as bytecode) is actually two things: a bitstream container format and an encoding of LLVM IR into the container format.
> The bitstream format is an abstract encoding of structured data, very similar to XML in some ways. Like XML, bitstream files contain tags, and nested structures, and you can parse the file without having to understand the tags. Unlike XML, the bitstream format is a binary encoding, and unlike XML it provides a mechanism for the file to self-describe “abbreviations”, which are effectively size optimizations for the content.

Отсюда видно, что это эффективно _промежуточное_ представление, которое создано не с целью его интерпретации, а с целью передачи бэкенду-llvm для дальнейшей компиляции. То есть это сложно-структурированный формат, с кучей информации не относящейся непосредственно к выполнению программы. Использовать его вместо байткода для виртуальной машины -- это идея, которая может и заслуживает рассмотрения, но в процессе этого рассмотрения надо не забыть, что итерпретация/компиляция этого дела в native-код может быть медленной и жрущей кучу ресурсов. Это IR представление само по себе может быть слишком жирным, в том смысле что код скомпилированный в wasm окажется меньше. Упоминание "abbreviations" ясно говорит о том, что без динамического выделения памяти под нужды интерпретатора ничего не выйдет.

А теперь давай глянем на wasm design goals: https://webassembly.github.io/spec/core/intro/introduction.h...

> Fast: executes with near native code performance, taking advantage of capabilities common to all contemporary hardware.

Как с этим у llvm ir?

> Safe: code is validated and executes in a memory-safe [2], sandboxed environment preventing data corruption or security breaches.

Я не знаю, насколько это отличает wasm от llvm-ir, поэтому опустим.

> Well-defined: fully and precisely defines valid programs and their behavior in a way that is easy to reason about informally and formally.

Как часто LLVM IR меняется между версиями llvm?

> Hardware-independent: can be compiled on all modern architectures, desktop or mobile devices and embedded systems alike.

wasm проще, значит написать виртуальную машину тоже проще, так ведь? Плюс если он проще, то и виртуальная машина проще и меньше, а значит на более слабых процессорах пойдёт. Как там насчёт запуска llvm на avr?

> Language-independent: does not privilege any particular language, programming model, or object model.

Паритет с llvm-ir?

> Platform-independent: can be embedded in browsers, run as a stand-alone VM, or integrated in other environments.

Тоже наверное паритет?

> Open: programs can interoperate with their environment in a simple and universal manner.

В llvm-ir есть что-нибудь об этом? Мне кажется, что нет, это для него отдельным стандартом придётся определять.

> Compact: has a binary format that is fast to transmit by being smaller than typical text or native code formats.

Это явно не в пользу llvm-ir, для целей которого, как я понимаю, размер .text не играет особой роли.

> Modular: programs can be split up in smaller parts that can be transmitted, cached, and consumed separately.

Сложно сказать, что именно имеется в виду. Давай считать, что паритет.

> Efficient: can be decoded, validated, and compiled in a fast single pass, equally with either just-in-time (JIT) or ahead-of-time (AOT) compilation.

Как у llvm с этим, ты не знаешь?

> Streamable: allows decoding, validation, and compilation to begin as soon as possible, before all data has been seen.

А с этим?

> Parallelizable: allows decoding, validation, and compilation to be split into many independent parallel tasks.

?

> Portable: makes no architectural assumptions that are not broadly supported across modern hardware.

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

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

89. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Crazy Alex (ok), 28-Мрт-19, 20:44 
WASM и так почти нативен по скорости, вот прямо сейчас. За исключением случаев, когда в нативе используются какие-нибудь специфические инстукции типа AES-NI. Но, в отличие от джаваскриптов/джав, который можно на лету оптимизировать, не "перегонит" никогда.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

77. "Mozilla развивает WASI для использования WebAssembly вне бра..."  +/
Сообщение от Аноним (82), 28-Мрт-19, 19:01 
> Казалось бы, что общего между JS интерпретором и виртуальной машиной для выполнения кода на C/C++ с практически одинаковой (близкой и ещё ближе в следующих версиях) скоростью исполнения?

Например то, что их вытащили из браузера и используют не по назначению.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру