функциональность нитей - PullRequest
5 голосов
/ 07 февраля 2012

Можно ли наблюдать за программами во время их работы (возможно, отправляя журнал событий)?Или это возможно только для просмотра журналов событий после выполнения.Если дело обстоит именно так, существует ли более глубокая причина в отношении того, как работает среда выполнения Haskell?

Редактировать: я не знаю много о среде выполнения tbh, но, учитывая ответ dflemstr, мне было любопытно, каки способы снижения производительности за счет добавления параметра времени выполнения мониторинга событий.Я вспоминаю в RWH, что они упоминали, что RTS должен добавить центры затрат, но я не был полностью уверен в том, насколько дорогой был такой тип.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Прямой ответ таков: нет, это невозможно.И нет, для этого нет никаких оснований, за исключением того, что никто до сих пор не выполнил требуемую работу ног.

Я думаю, что в основном это будет вопрос

  1. Модификация ghc-events, поэтому он поддерживает чтение журналов событий по частям и обеспечивает частичные результаты.Может быть, это поможет перенести его на attoparsec?

  2. Threadscope должен будет обновить свои внутренние структуры данных в виде новых потоков данных.

Ничего особо сложного, но кому-то нужно будет это сделать.Я думаю, что уже слышал обсуждение о добавлении этой функции ... Так что это может произойти в конце концов.

Редактировать: И чтобы было ясно, нет никакой реальной причины, по которой это могло бы ухудшить производительность за пределамичто вы получаете с помощью профилирования журнала событий или МВЗ.

1 голос
/ 07 февраля 2012

Если вы хотите отслеживать производительность приложения во время его работы, вы можете, например, использовать ekg пакет , как описано в в этом сообщении .Он не такой подробный, как ThreadScope, но он выполняет работу для веб-сервисов, например.

Чтобы получить оперативную информацию о том, что делает среда выполнения, вы можете использовать программу dtrace для захватадинамические события, публикуемые некоторыми датчиками времени выполнения GHC.Как это делается, описано в этой вики-странице .Затем вы можете использовать эту информацию для составления более связного журнала событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...