Дебаг - QualitySolution/QSProjects GitHub Wiki

В пространстве имен QS.Utilities.Debug находятся помощники, способные немного упростить дебаг программы.

Замеры скорости работы приложения с PerformanceHelper

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


PerformanceHelper.StartMeasurement("Диалог"); // Запускаем новый замер.
/// какой то код старта
PerformanceHelper.AddTimePoint("Операция старта");
/// код загрузки 1
PerformanceHelper.AddTimePoint("Операция загрузки 1");
/// код загрузки 2
PerformanceHelper.AddTimePoint("Операция загрузки 2");
PerformanceHelper.StartPointsGroup("Блок операция")
// код шага
PerformanceHelper.AddTimePoint("Шаг в блоке");
// код
PerformanceHelper.StartPointsGroup("Под блок в блоке")
// код шага 1
PerformanceHelper.AddTimePoint("Шаг 1 в подблоке");
// код шага 2
PerformanceHelper.AddTimePoint("Шаг 2 в подблоке");
PerformanceHelper.EndPointsGroup() ; //Закрываем подблок;
// код шага 3
PerformanceHelper.AddTimePoint("Шаг 3 в блоке");
// код шага 4
PerformanceHelper.AddTimePoint("Шаг 4 в блоке");
PerformanceHelper.EndPointsGroup() ; //Закрываем блок;
// код звершения
PerformanceHelper.AddTimePoint("Конец");
PerformanceHelper.Main.PrintAllPoints(logger); // Выводим результаты.

Обратите внимание что для упрощения внутреннего устройства класса. Подписи действий пишутся после завершения этого действия. То есть в логе будет написано, сколько прошло с предыдущей до этой точки. Поэтому логичнее писать на что было потрачено время. А не на то что будет после добавления точки.