OneScript
OneScript copied to clipboard
Замер производительсности в разрезе строк
Сабж.
Сейчас есть режим measure, который меряет выполнение модуля целиком. А хочется получить отчет как в конфигураторе.
😢
/me давно пробовал к этому подступиться и сдался на подступах.
ну, теперь есть codestat. с моей стороны непрофиссионального сишарписта - это почти тоже самое :)
@nixel2007 ненене. одно дело счётчик крутить, другое - с таймерами муд...чаться
@dmpas а в codestat же тоже зачем-то есть StopWatch всякие. Это не оно?
@EvilBeaver рудименты остались. Я пробовал время прикрутить, но ничего толкового там не вышло, насколько я помню.
можно взять парсер кода и после каждого оператора вставить: сообщить("строка такая-то, время выполнения столько-то");
@vasvl123 трололо засчитан :+1:
я не специально) можно результаты замеров выводить в файл, а потом парсить его утилиткой.
https://github.com/vasvl123/OneScriptDB/blob/master/measure.os
Насколько падает производительность при таком инструментировании кода не замеряли? Через общий -measure у движка
C:\os\bin\oscript.exe -measure C:\os\srv\oneshell.os Process started >>> Script started: 30.12.2017 21:43:16
2.170003
Script completed: 30.12.2017 21:43:18
Duration: 00:00:02.3913802 <<< Process finished. (Exit code 0) ================ READY ================
C:\os\bin\oscript.exe -measure C:\os\srv\measure.os Process started >>> Script started: 30.12.2017 21:43:49
11.3000158
Script completed: 30.12.2017 21:44:01
Duration: 00:00:11.6030205 <<< Process finished. (Exit code 0) ================ READY ================
В пять раз дольше(. Плюс неправильно время выполнения строки считает: фактически он показывает время, прошедшее с предыдущего измерения. По нормальному если делать, то нужно брать полноценный парсер. Например, вот этот: https://github.com/vasvl123/OneShell/blob/master/src/oneshell.os
Полноценный парсер есть в самом движке) хоть и без AST
Поправил замер строк и запись лога происходит в конце. Есть задумка прикрутить еще и отладчик. https://github.com/vasvl123/OneScriptDB/blob/master/measure.os