xeno_by (xeno_by) wrote,
xeno_by
xeno_by

Наглядность

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

Вот несколько примеров качественных тулов, которые благодаря наглядности на несколько порядков ускоряют соответствующие задачи. Я просто тащусь!

1. Профайлинг. Сама идея о том, что можно получать и исследовать моментальные или кумулятивные срезы работы программы крайне прекрасна. Ее можно подъюзать как в определении узких мест приложения, так и для того, чтобы разобраться с чужим кодом (за последнее спасибо Диме!). Мой любимый тул на эту тему - dotTrace, который быстро и непринужденно показывает дерево вызовов, показывает узкие места прогресс-барами, позволяет фильтровать деревья по маскам и выделять подветки в отдельные деревья.

2. Всемогущий дебаггинг (omniscient debugging). Перекрывает и обобщает идею профайлинга, но, к сожалению, мне неизвестны омни-дебаггеры продакшен-качества для платформы дотнет. Идея такого дебаггера состоит в том, чтобы запоминать абсолютно все действия приложения за некоторый период времени и позволять программисту выполнять оффлайновую отладку (например, бродить туда-сюда по стеку). Похожую вещь попробовали замутить в 2010й студии (называется интеллитрейс), но полноценной реализации, похоже, не будет еще лет пять - слишком уж велики в текущей версии ограничения на собираемые данные. До сих пор не могу понять, почему не сделали сбор данных о локальных переменных - ведь имплементация интеллитрейса основана на profiler api, а он такую функциональность поддерживает.

3. Качественный трейсинг. Пример - профайлер конкарренси в новой студии. Интересно, как много можно узнать о своей прилаге, когда тебе вручают тулзы, которые могут собрать соответствующие данные. Вот несколько интересных статей на эту тему: VS 2010 Beta 2 Concurrency Visualizer Profiling In Depth First Look, VS 2010 Beta 2 Concurrency Resource Profiling In Depth First Look, а вот бложек команды, которая делает визуализацию данных о параллелизме - A View into the Behavior of Your Parallel Application. Связанная штука - параллельные стеки в дебаггере.
Tags: wetware
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 1 comment