Table of Contents
Eclipse плагин для OProfile
Идея
Есть мощьный и быстрый профилировщик под Linux - OProfile. Хочется иметь простой доступ к его функциональности из Eclipse-CDT.
Диплом
Задача
Написать плагин для среды разработки Eclipse, поддерживающий профилировку приложений на C/C++ с помощью профилировщика OProfile.
Практическое применение
Плагин позволит осуществлять профилировку разрабатываемых в IDE приложений и наглядно отображать результаты разработчику. Это избавит разработчика от изучения сложной документации по OProfile и необходимости интерпретации малонаглядной информации предоставляемой с текстовом режиме профилировщиком, что упростит процесс профилировки и повысит его скорость.
Аналоги
- На данные момент в Eclipse нет средств профилировки программ на С/С++.
- Для профилировщика Wallgrind есть графический интерфейс KCachegrind, однако сам профилировщик обладает рядом недостатков.
- Есть ряд интегрированных с графическим оболочками профилировщиков, но они дороги(например Intel VTune).
Теория
Основные задачи
Предполагаемая функциональность
- Запуск проекта для профилировки.
- Отображение профилировочной информации внутри IDE.
- Возможность получения профилировочной информации с удалённой машины.
- Поддержка SLIND( какая?).
Ожидаемые формы отображения результатов
- Построчное отображение времени, затраченного процессором.
- Диаграмма распределения процессорного времени по функциям.
- Диаграмма распределения процессорного времени по потокам.
- Отчёт по выделению памяти( в какой форме?).
Комментарии
Уже есть такой плагин, но он написан для старых версий OProfile/Eclipse/CDT и около 2х лет не развивается.
Есть Eclipse-проект инструментов профилировки и тестирования. Он предоставляет ряд стандартных элементов интерфейса и некоторый фреймворк для сбора и обработки информации от профилировщика.
План действий
Сейчас ищутся ответы на следующие вопросы:
- Какой формат профилировочной информации использует CDT?
- Что умеет существующий плагин?
- Насколько он совместим с актуальными версиями OProfile/Eclipse/CDT?
- Какую функциональность может предоставить TPTP в плане (удалённого?) взаимодействия с профилировщиком?
- Какую функциональность может предоставить TPTP в плане логики обработки профилировочной информации?
- Какую функциональность может предоставить TPTP в плане пользовательского интерфейса?