1.Tracer

Необходимо реализовать измеритель времени выполнения методов. Класс должен реализовывать следующий интерфейс:

public interface ITracer

Структура TraceResult на усмотрение автора. Tracer должен собирать следующую информацию об измеряемом методе:

  • имя метода;
  • имя класса с измеряемым методом;
  • время выполнения метода.

Также должно подсчитываться общее время выполнения анализируемых методов в одном потоке. Результаты трассировки вложенных методов должны быть представлены в соответствующем месте в дереве результатов. Результат измерений должен быть представлен в двух форматах: JSON и XML (для классов, реализующих сериализацию в данные форматы, необходимо разработать общий интерфейс).

Готовый результат (полученный JSON и XML) должен выводиться в консоль и записываться в файл. Для данных классов необходимо разработать общий интерфейс, допустимо создать один переиспользуемый класс, не зависящий от того, куда должен выводиться результат (см. Общие ошибки). Код лабораторной работы должен состоять из трех проектов:

  • Основная часть библиотеки, реализующая измерение и форматирование результатов.
  • Модульные тесты для основной части библиотеки.
  • Консольное приложение, содержащее классы для вывода результатов в консоль и файл, демонстрирующее общий случай работы библиотеки (в многопоточном режиме при трассировке вложенных методов).