Профилирование Haskell в течение фиксированного количества времени
В настоящее время я пытаюсь профилировать сервер Haskell. Сервер работает вечно, поэтому я просто хочу получить отчет о профилировании в течение определенного периода времени. Я пробовал только запустить программу в течение 3 минут, а затем вежливо попросил ее закончить, но каким-то образом профилировщик haskell не подчиняется терминальному сигналу и генерирует неполные данные.
Моя первая попытка:
timeout --signal SIGTERM 3m ./actionsDemo +RTC -hc -RTS -p -K100M
Кто-нибудь знает, как аккуратно профилировать этот сервер?
Ответы
Ответ 1
Методы получения профиля кучи работающей программы хорошо документированы здесь, раздел 5.5.3. Короче говоря, вам просто нужно удалить последний "неполный" образец, а затем продолжить, как обычно.
Также существует соответствующий trac ticket, чтобы hp2ps справился с этим самостоятельно, но он пока не готов.
Для профилирования времени/распределения у меня нет ответа.