The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект 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) - необходимость интерпретации байткода никуда не девается.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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