Производительность любого приложения является главным приоритетом с точки зрения клиента. Для разработчика выявление проблем эффективности до релиза действительно является сложной задачей, которую помогают решать плагины или расширения среды разработки. К сожалению, в Qt Creator нет таких же удобных диагностических инструментов, как Visual Studio Diagnostic Tools. Вместо этого есть профилирование, более функциональные и сложные инструменты диагностики: QMLProfiler, Valgrind с набором инструментов и визуализацией Kcachegrind. Поэтому, для удобства, многим удобнее было бы пользоваться разработанным плагином DiagnosticTools для Qt Creator (Qt5, Qt6), в котором вы можете получить подробную информацию о разрабатываемых приложениях во время отладки кода.

Как включить инструмент диагностики DiagnosticTools для Qt Creator
По умолчанию окно диагностических инструментов не открывается автоматически во время отладки. Вы можете включить его вручную, выбрав из меню «Разделить» DiagnosticTools на левой боковой панели, как показано на рисунке 1

Существует аналогичный проект с меньшой функциональностью, разработанный более 8 лет назад для Qt4. На мой взгляд, он уже не актуален, поэтому я создал свой проект как отдельный, основываясь на данном решении. Мой Плагин был протестирован в Linux. Мой проект не проходил тестирование на MacOS и Windows, но код содержит все необходимое для сборки под эти операционные системы.
Для добавления собранного плагина в IDE Qt Creator требуется релизную версию плагина /build/Qt_6_4_2_Qt_6_4_2-Release/lib/qtcreator/plugins/libDiagnostictools.so добавить в директорию к другим плагинам, директория /usr/lib/x86_64-linux-gnu/qtcreator/plugins/ или ваша по похожему адресу там где установлен IDE Qt Creator.
пример команды:
sudo cp '/home/vladimirpve/Doc/plagin/Diagnostictools Qt_6_4_2/build/Qt_6_4_2_Qt_6_4_2-Release/lib/qtcreator/plugins/libDiagnostictools.so' /usr/lib/x86_64-linux-gnu/qtcreator/plugins/
Стоит отметить что тема сборки проектов plagin для Qt Creator слабо описана в источниках для версий Qt5 и Qt6. По этой причине на примере сборки этого плагина я написал небольшую статью с основными моментами. Вкратце для сборки плагина следует добавить дополнительные параметры запуска -pluginpath %{buildDir} и для версии Qt5 установить патч с изменениями библиотек. Поэтому я не буду тут останавливаться на общей информации и перейду сразу к описанию плагина.
Описание плагина Qt Creator
Плагин представляет собой аналог команды
ps -p <PID> -o pid,vsz,rss
которая выводит показания загрузки памяти vsz и rss по PID процесса. Плагин строит диаграмму нагрузки на процессор и расход памяти как это показано на рисунке 2.

В плагине есть расширенный функционал, который позволяет работать одновременно с несколькими запущенными процессами (программы запущенные в IDE Qt Creator). Этот функционал осуществляется благодаря отслеживанию состояния
class PROJECTEXPLORER_EXPORT RunControl : public QObject
этот класс имеет метод allRunControls() который может возвращать полный список PID от всех программ запущенных в IDE Qt Creator. Соответственно далее полученный массив
QList<ProjectExplorer::RunControl *> runControls = ProjectExplorer::ProjectExplorerPlugin::instance()→allRunControls();
обрабатывается с помощью программного кода и результат записывается в диаграмму. Переключение между контролируемыми процессами, по его идентификатору (PID), осуществляется из окна UI разработанного плагина, через ввод числа (порядочного номера запущенного процесса) в QspinBox или переключением его стрелочных кнопок как на рисунке 3.

Также переключение между контролированными процессами, по его идентификатору (PID), возможно в автоматическом режиме путем активации QcheckBox "AutoMax", как на рисунке 4. Данный чекбокс будет всегда переключать номер контролируемого (PID) на последний максимальный доступный процесс запущенной программы в IDE Qt Creator. Это является очень удобной и полезной функцией, если вы будите запускать сразу несколько экземпляров одного и того же кода. Вывод информации о последнем запущенном процессе является более актуальным, особенно если учесть тот факт, что программа является завершенной, в том случае, если в IDE Qt Creator закрыта соответствующая процессу вкладка «Вывод приложения».

В плагине есть поддержка двух языков русского и английского. По умолчанию в плагине установлен английский язык, переключение языка осуществляется путем активации QcheckBox "ru", как на рисунке 5. Язык по умолчанию можно поменять изменив исходный код при сборке плагина. Также в плагине есть функционал, который сохраняет выставленные настройки после закрытия окна плагина только в текущей запущенной сессии IDE Qt Creator.

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

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

Отображение подсказок плагина настроена на поле QLedit при наведении на которое отображается всплывающие окно с подсказками о контролируемом параметре, как на рисунке 8. Текст подсказок контролируемых параметров, есть на двух языках и записан: RSS: Размер резидентной памяти в килобайтах (Resident Set Size)— это количество физической памяти, используемой процессом в данный момент. Это память, которая фактически загружена в оперативную память. VSZ: Размер виртуальной памяти процесса в килобайтах (Virtual Size)— это общее количество виртуальной памяти, используемой процессом, включая все его модули и библиотеки.

Плагин можно масштабировать до минимального размера просто уменьшив диалоговое окно, как на рисунке 9, веденные настройки можно изменить развернув плагин обратно. История имения размера плагина работает так же как и для других диалоговых окон Qt Creator.

Заключение
В заключение, разработанный плагин для Qt Creator представляет собой мощный инструмент для мониторинга и анализа загрузки памяти и процессора тестируемых программ. Его функционал, позволяет пользователям получать актуальные данные о состоянии процессов, что особенно полезно при отладке и оптимизации программного обеспечения.