-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Проблемы, замеченные на случайных тестах #305
Comments
Уточнение. Первый тест прошёл с лимитом на память 100 000 000 узлов (по факту потребовалось 60 338 000) и ему потребовалось 1132.57800 секунд, т.е. примерно 20 минут. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Скорость работы и объём памяти можно считать приемлемыми, автотесты проходят. Дальнейшее их снижение возможно только при полном переписывании алгоритма, что в эту задачу не входит. Задачу закрываю. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Коммит 9acbd38 внёс ошибку, поэтому предыдущему комментарию верить нельзя. |
После исправления на этот тест требуется 7 552 118 шагов, тест выполнился за 11 секунд. Погрешность измерений здесь около секунды, так что сравнивать с ошибочным комментарием не стоит. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Фунция OptTree-AutoMarkup-ExtractBasisVertexes выполняет обход графа с поиском обратных рёбер. Алгоритм работает вроде правильно, проблема не в обходе. Проблема была в том, что корневое множество определялось как множество функций, которые никто не вызывает. Если в графе таких функций нет (т.е. корнями графа конденсации является система взаимно-рекурсивных функций), то множество базисных вершин получается пустым и все функции помечаются пригодными для прогонки. Исправление заключалось в том, что теперь корневое множество подаётся извне как множество entry-функций, функций инициализации и финализации и функций, вызываемых по ссылке. Автотест opt-tree-markup4-cycle.ref не был придуман, он был получен в результате упрощения случайного теста test-7_14.07.2020_20-08-24,19.ref. Случайный тест теперь тоже проходит.
Проблема в комментарии #305 (comment) уже не воспроизводится — из-за отсутствия внешнего цикла (#320) этот случайный тест стал компилироваться быстро. Но тормоза в функции |
Ошибки на случайных тестах больше не выявляются. |
При запуске компилятора на случайных тестах (
autotests/positive-random-test
) обнаружились две проблемы.Во-первых, нашёлся тест, на котором компилятор падает с нехваткой памяти:
Во-вторых, нашёлся тест, на котором компилятор работает неадекватно долго:
Почему неадекватно? Потому что размер файла 8385 байт, а работает он 98 секунд.
Уточнение. Запуск обоих тестов имеет вид:
The text was updated successfully, but these errors were encountered: