OneScript icon indicating copy to clipboard operation
OneScript copied to clipboard

Замер производительсности в разрезе строк

Open nixel2007 opened this issue 7 years ago • 13 comments

Сабж.

Сейчас есть режим measure, который меряет выполнение модуля целиком. А хочется получить отчет как в конфигураторе.

nixel2007 avatar Dec 06 '17 14:12 nixel2007

😢

/me давно пробовал к этому подступиться и сдался на подступах.

EvilBeaver avatar Dec 06 '17 17:12 EvilBeaver

ну, теперь есть codestat. с моей стороны непрофиссионального сишарписта - это почти тоже самое :)

nixel2007 avatar Dec 06 '17 17:12 nixel2007

@nixel2007 ненене. одно дело счётчик крутить, другое - с таймерами муд...чаться

dmpas avatar Dec 06 '17 17:12 dmpas

@dmpas а в codestat же тоже зачем-то есть StopWatch всякие. Это не оно?

EvilBeaver avatar Dec 06 '17 17:12 EvilBeaver

@EvilBeaver рудименты остались. Я пробовал время прикрутить, но ничего толкового там не вышло, насколько я помню.

dmpas avatar Dec 06 '17 17:12 dmpas

можно взять парсер кода и после каждого оператора вставить: сообщить("строка такая-то, время выполнения столько-то");

vasvl123 avatar Dec 07 '17 16:12 vasvl123

@vasvl123 трололо засчитан :+1:

dmpas avatar Dec 07 '17 16:12 dmpas

я не специально) можно результаты замеров выводить в файл, а потом парсить его утилиткой.

vasvl123 avatar Dec 07 '17 16:12 vasvl123

https://github.com/vasvl123/OneScriptDB/blob/master/measure.os

vasvl123 avatar Dec 29 '17 09:12 vasvl123

Насколько падает производительность при таком инструментировании кода не замеряли? Через общий -measure у движка

nixel2007 avatar Dec 29 '17 16:12 nixel2007

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

vasvl123 avatar Dec 30 '17 20:12 vasvl123

Полноценный парсер есть в самом движке) хоть и без AST

nixel2007 avatar Dec 31 '17 03:12 nixel2007

Поправил замер строк и запись лога происходит в конце. Есть задумка прикрутить еще и отладчик. https://github.com/vasvl123/OneScriptDB/blob/master/measure.os

vasvl123 avatar Jan 10 '18 06:01 vasvl123