The OpenNET Project / Index page

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



"Проект elk развивает компактный JavaScript-движок для микроконтроллеров"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Второй уровень иерархии тем в форуме реализован через вкладку "Показ ключевых тем".
. "Проект elk развивает компактный JavaScript-движок для микрок..." +/
Сообщение от ммнюмнюмус (?), 26-Сен-21, 20:33 
> Грелка по определению априори горячая. Вопрос в температуре носителя. А ещё бывают
> электрические грелки. :)))

Вода в грелке могла остыть, да и забытым на столе бумагам Тузик тоже обрадуется.
Ыххх.... (Двай Нальвай Давадавай)))))))).

>> 1. Вы меряете время на выполнение всей проги, а не конкретного участка
>> кода, который может составлять проценты от всего результата.
> Да, поскольку (допустим) я хочу использовать JS вместо калькулятора. Написал в скрипте,
> что мне требуется посчитать. Нода считает медленнее, чем интерпретатор из новости
> (но его надо доработать, что бы скрипт можно было размещать в
> файле).

Ну вот - думаю, мало кто сразу понял, что интересует время не куска js-кода, а время одиночного запуска движка с этим куском. Другой причины, почему включение JIT увеличило время в 10 раз не вижу. Сомневаюсь, что это имеет интерес кроме академического.

>> Бенчмарки используют функции
>> для получения времени в наносекундах вокруг измеряемого кода.
> Верно. Вместо этого мне было предложено https://www.opennet.ru/openforum/vsluhforumID3/125354.html#82
> отнять от моего первого результата время исполнения пустого скрипта.
> Результат всякого измерения включат в себя истинное значение и погрешность измерения. Погрешность
> измерения не определена, потому при вычитании результатов двух измерений погрешности суммируются.

Эта методика была бы полезна для вашего оригинального кода - меряете время для данного куска, затем для пустого кода. И смотрите разницу.
На счёт мусора - код явно не расчитан на копи-паст - адаптация ложится на вас. Так что если он почему-то не годится - то только потому что не понял цель измерений. Не похоже, что ваши объяснения после старта не достаточно точны. Можно было и по-точнее (я выше попытался).

>> Кстати: Нельзя ли выполнить прогу по частям - в несколько js_eval() ?
> Можно. Ещё можно вызывать из JS функции Си.

Я это спрашивал для одной вещи: пока я, как и другие, думал, что цель измерений - время для самой функции фибоначи, прогу можно было бы разбить на 3 части - до измеряемого цикла, цикл, после цикла. И измерять только сам цикл. Это слегка повысило бы точность. Но раз цель другая, то и смысла в этом теперь нет.
Вызов С-функций из JS к этому перпендикулярен.

>>> 2. Ты понятия не имеешь, как оценить время выполнения предложенного цикла без выполнения.
>> O_o Измерение миллиона прогонов чтоли? Стандартный подход всех бенчмарков. Если у вас
>> особый подход, значит надо было его расписать. Не будут же вам
>> на слово верить, должна быть 100% воспроизводимость. (--)
> Без выполнения. Во его оценка: "вычисление числа фибоначчи ближе ... к 0".
> Я бы написал "в первом приближении 400 тактов".

Сразу отвечаю на этот и похожий пост
400 тактов было бы для компилированной версии на С (и то, смотря чем компилировать). Это машинная команда берёт и выполняется. А в интерпретаторе VM - по порядку:
- разбор команды (strlen, strcmp, strtok,...) = выбор операции с установкой её параметров,
- переход по адресу операции (допускаю, что использутся switch).
- операция
- на следующую строку

Конечно, возможна оптимизация, если тела цикла разбирается только один раз, исключающая первый шаг для следующих итераций (почти JIT) - необходимость интерпретации байткода никуда не девается.

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

Оглавление
Проект elk развивает компактный JavaScript-движок для микроконтроллеров, opennews, 25-Сен-21, 10:37  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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