OberonCore https://forum.oberoncore.ru/ |
|
Скрытые классы для быстрого исполнения JavaScript https://forum.oberoncore.ru/viewtopic.php?f=26&t=6399 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Вторник, 21 Май, 2019 18:40 ] |
Заголовок сообщения: | Скрытые классы для быстрого исполнения JavaScript |
Интересная статья, о некоторых извращениях, которыми занимаются быстрые движки скриптовых языков, в случае с V8 для JavaScript, чтобы добиться хорошей производительности. Статической типизации нет, так рантайм должен угадать регулярность структуру, а программист - постараться не нарушить понятность для этого интеллектуального рантайма, чтобы не просесть в десятки раз по произвдительности. https://habr.com/ru/post/283090/ |
Автор: | Ярослав Романченко [ Вторник, 21 Май, 2019 20:08 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Ох, там по ссылке ещё дичь ужасная... Оказывается, если после return всунуть eval, оптимизатор V8 не будет оптимизировать код функции И эти люди запрещают нам ковыряться в носу, нет слов... ![]() Цитата: function toFastProperties(obj) {
/*jshint -W027,-W055,-W031*/ function FakeConstructor() {} FakeConstructor.prototype = obj; var l = 8; while (l--) new FakeConstructor(); ASSERT("%HasFastProperties", true, obj); return obj; // Prevent the function from being optimized through dead code elimination // or further optimizations. This code is never reached but even using eval // in unreachable code causes v8 to not optimize functions. eval(obj); } |
Автор: | Ярослав Романченко [ Вторник, 21 Май, 2019 20:20 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Я уже молчу, что страшно подумать, что делает какой-то фейковый конструктор в этом коде 8 раз ![]() |
Автор: | Пётр Кушнир [ Вторник, 21 Май, 2019 22:37 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Победа или смерть, девиз капиталистического рантайма. |
Автор: | Artyemov [ Среда, 22 Май, 2019 01:32 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Дождёмся ли, что подвезут "некапиталистический" runtime? ![]() ![]() |
Автор: | Ярослав Романченко [ Среда, 22 Май, 2019 07:03 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Artyemov писал(а): Дождёмся ли, что подвезут "некапиталистический" runtime? As simple as possible but not simpler ![]() ![]() ![]() |
Автор: | Пётр Кушнир [ Среда, 22 Май, 2019 07:55 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Artyemov писал(а): Дождёмся ли, что подвезут "некапиталистический" runtime? ![]() ![]() Ни бог, ни царь и не герой, так-то. |
Автор: | Валерий Лаптев [ Среда, 22 Май, 2019 10:41 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Пётр Кушнир писал(а): Победа или смерть, девиз капиталистического рантайма. Не... Бабки - любой ценой. ИМХО, так правильнее будет. |
Автор: | Artyemov [ Среда, 22 Май, 2019 23:56 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Скааааазочники... особенно про "...своею собственной рукой..." в хорошем смысле, не побоюсь, этого слова ![]() "Последний и решительный..." какой уже по счёту? |
Автор: | Wlad [ Четверг, 23 Май, 2019 00:52 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Илья Ермаков писал(а): о некоторых извращениях, которыми занимаются быстрые движки скриптовых языков Я, даже из чисто академического интересу, не хочу это читать. Люди имеют системную, от рождения, фичу, присущую целому типу языков, которую НИКАК нельзя преодолеть, но - кипят, побулькивают мозгом и пишут статьи. Сам подход "скриптования" подразумевал динамическое создание, из фиксированного набора "публикуемых" свойств неких элементов/библиотек, возможности управления этим фиксированным набором. Это позволяло гибко и с малыми затратами начинать использовать библиотеку (систему) некими, "заранее не предусмотренными", способами. Полноправными "языками программирования" стать ЭТО не планировалось. Но, нужно было только время, что бы нашлись некие гении, которые возомнили, что элементы формальной системы, с динамически определяемыми, во время работы программы, координаторами-идентификаторами ресурсов, можно попытаться приблизить к языкам, где такие координаторы ресурсов вычисляются во время компиляции. (Реализации поддержки виртуальных методов - из той же оперы (фиксированы адреса методов и места расположения "переадресации" к этим методам), хотя это и называют "динамическим связыванием"). То есть, опять, вместо того, что бы учить людей ПРАВИЛЬНО проектировать, начали учить извращениям и скверне, соблазняя "непереносимой лёгкостию бытия" (чаще всего - веб-) программирования... Да - горят они огнём. Они - Сатане отдались! ![]() |
Автор: | Ярослав Романченко [ Четверг, 23 Май, 2019 07:50 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Нужно Оберону ломануться в нишу WebAssembly! Кто-то слышал о создании подобного компилятора Оберона? |
Автор: | Trurl [ Четверг, 23 Май, 2019 09:36 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Я начинал делать, но решл, что пока смысла нет. |
Автор: | Ярослав Романченко [ Четверг, 23 Май, 2019 10:30 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Trurl писал(а): Я начинал делать, но решл, что пока смысла нет. Код на Обероне в S-выражение?
|
Автор: | Пётр Кушнир [ Четверг, 23 Май, 2019 12:19 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Trurl писал(а): Я начинал делать, но решл, что пока смысла нет. Но почему? Artyemov писал(а): Скааааазочники... особенно про "...своею собственной рукой..." в хорошем смысле, не побоюсь, этого слова Адам Смит творил живя в королевстве (!) через 200 лет после революции в Голландии, ещё кто тут сказочник... Хотя зачем вам это объяснять, всё равно вы не поймёте, даже приблизительно.
![]() "Последний и решительный..." какой уже по счёту? |
Автор: | Trurl [ Пятница, 24 Май, 2019 08:15 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Пётр Кушнир писал(а): Но почему? Нужно придумывать механизмы управления памятью, передачи непримитивных параметров и т.д. А они сейчас как раз над этим работают. Пока я сделаю, появится новый стандарт. |
Автор: | Trurl [ Пятница, 24 Май, 2019 08:18 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Ярослав Романченко писал(а): Код на Обероне в S-выражение? Я использовал binaryen, она бинарный wasm генерит. |
Автор: | arlean1 [ Суббота, 25 Май, 2019 10:02 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Trurl писал(а): Ярослав Романченко писал(а): Код на Обероне в S-выражение? Я использовал binaryen, она бинарный wasm генерит. что-то пока вот это нашёл https://kripken.github.io/talks/binaryen.html#/ А ещё какие-то ссылки есть? |
Автор: | Ярослав Романченко [ Суббота, 25 Май, 2019 11:41 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Зачем сразу бинарный формат? Не проще-ли разобраться в текстовом, а бинарный просто из него получается нехитрым преобразованием https://developer.mozilla.org/ru/docs/W ... ext_format |
Автор: | Trurl [ Суббота, 25 Май, 2019 19:41 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
Кажется, не проще. К тому же s-выражения уже устарели. Текущий текстовый формат больше похож на традиционный ассемблер. |
Автор: | Trurl [ Суббота, 25 Май, 2019 19:43 ] |
Заголовок сообщения: | Re: Скрытые классы для быстрого исполнения JavaScript |
arlean1 писал(а): А ещё какие-то ссылки есть? https://github.com/WebAssembly/binaryen Только это |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |