Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Переписанный профилировщик измеряет оверхед рантайма (#57)
Профилировщик практически полностью переписан в виде машины состояний (хотя многие переходы бессмысленны и бросают исключения). Добавились новые метрики, которые будет использовать Модульный Рефал, последний необходимо будет актуализировать. Да, профилировщик измеряет оверхед, и результат его плачевный. 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