Skip to content

Commit

Permalink
Переписанный профилировщик измеряет оверхед рантайма (#57)
Browse files Browse the repository at this point in the history
Профилировщик практически полностью переписан в виде машины состояний
(хотя многие переходы бессмысленны и бросают исключения).

Добавились новые метрики, которые будет использовать Модульный Рефал,
последний необходимо будет актуализировать.

Да, профилировщик измеряет оверхед, и результат его плачевный.
15 % программы на этот оверхед как раз и уходит. Данную проблему, возможно,
удастся решить в рамках задачи #62 (сделать цикл интерпретации основным).

Результат профилировки тестовой программы выглядит теперь так:

STEP LIMIT REACHED (100000000)

…

Total program time: 12.625 seconds (100.0 %).
(Total refal time): 8.471 seconds (67.1 %).
Linear pattern time: 4.719 seconds (37.4 %).
Runtime time overhead: 4.154 seconds (32.9 %).
Linear result time: 3.752 seconds (29.7 %).
Step count 100000000
Memory used 3 nodes, 3 * 16 = 48 bytes

Видно, что затраты времени увеличились, новый профилировщик вносит больший
оверхед на замеры времени.
  • Loading branch information
Mazdaywik committed Sep 11, 2016
1 parent fdd80d3 commit 7002c50
Show file tree
Hide file tree
Showing 2 changed files with 335 additions and 158 deletions.
Loading

0 comments on commit 7002c50

Please sign in to comment.