Универсальная система для сбора статистики о производительности приложения в риалтайме?
Задача такая: есть приложение, которое что-то считает и рендерит, алгоритмы в нем весьма шаманские, некоторые действитя можно делать разными способами и есть некая эвристика, которая выбирает способ, в общем надо отлаживать и оптимизировать все это дело. Для оптимизации надо смотреть на кучу параметров по типу время расчета этого, время расчета того, количество сего итд итп.
Хочется: иметь возможность выводить всякие числа вроде времени расчета, каких-то параметров, событий итд итп и видеть их отдельно в виде красивых графиков. Т.е. что-то вроде продвинутой дебаг консоли, которая может выводить информацию в удобочитаемом виде.
Главное чтобы все было достаточно быстро, так как все это риалтайм. Т.е. оно должно висеть где-то отдельным процессом, а может даже на соседнем компьютере.
И желательно, чтобы оно было простым, т.е. в коде я просто пишу одну строку, где кидаю в поток число, а дальше уже могу в отдельном приложении видеть графики с числами из разных потоков, комбинировать их, итд итп.
Целевая ось — винда, код — плюсы, цена — бесплатное или дешево и очень сердито.
Вопрос: есть ли что-то стандартное, что позволит мне одной строкой кода выводить данные из программы и красиво их отображать?
Еще один запрос из серий помечтать: хочется чтобы эта штука искала корелляции между различными параметрами и говорла мне о них.
А то я уже собираюсь это дело писать, но велосипед изобретать не хочется.
Я нашел какие-то упоминания о GNU Nana, но похоже, что это было давно и неправда, да и не совсем то.
Graphite для сбора данных и рендера графиков, точки грузить можно одной строкой, нужно просто по сетке отправить строку вида: <название метрики> <значение> <таймстемп>
Таким же образом можно грузить данные о системных ресурсах -- не помню, как это делается под виндой, но вроде там можно получить метрики в текстовом виде и потом их отправить в графит.
Не уверен, что вам удастся запустить графит под Windows, но вы же все равно ее хотели на соседний компьютер +) Хотя вот тут кто-то делал.
Корреляции -- можно из графита данные выгружать в какой-нибудь скрипт и там анализировать.