metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

>
>
Сравнение анализаторов кода: CppCat, Cp…

Сравнение анализаторов кода: CppCat, Cppcheck, PVS-Studio, Visual Studio

Мы провели подробное сравнение четырёх анализаторов Си/Си++ кода: CppCat, Cppcheck, PVS-Studio и статический анализатор, встроенный в Visual Studio 2013. Это серьезное исследование, на которое нами было потрачено около 170 человеко-часов и которое, на наш взгляд, хорошо отражает картину, существующую на данный момент.

К сожалению, мы больше не развиваем и не поддерживаем проект CppCat. Вы можете почитать здесь о причинах.

0241_Short_Comparison_CppCat_Cppcheck_PVS-Studio_Visual_Studio_ru/image1.png

О сравнении

Для исследования было проверено более десяти open-source проектов.

Был выставлен рекомендуемый уровень подробности диагностических сообщений:

  • CppCat: все диагностики (нет уровней);
  • Cppcheck: Errors и Warnings;
  • PVS-Studio: 1 и 2 уровень диагностик общего назначения;
  • Visual Studio: Microsoft Native Recommended Rules.

В результате, были получены отчёты, которые мы внимательно проанализировали. Были выбраны те сообщения, которые, по нашему мнению, указывают на ошибки в коде или в любом случае заслуживают пристального внимания. Результаты были обобщены и представлены в этой статье.

Подробно методология сравнения описана в статье: "Как мы сравнивали анализаторы кода CppCat, Cppcheck, PVS-Studio, Visual Studio". В ней же можно будет найти названия проверенных проектов, какие именно диагностические сообщения были выбраны, примеры найденных ошибок и так далее. Там же описана причина, почему не удалось указать информацию о количестве ложных срабатываний.

Результаты сравнения

Результаты сравнения анализаторов CppCat, Cppcheck, PVS-Studio и Visual Studio представлены в следующих трех таблицах:

0241_Short_Comparison_CppCat_Cppcheck_PVS-Studio_Visual_Studio_ru/image2.png

Таблица 1 – Количество обнаруженных реальных проблем, в штуках

0241_Short_Comparison_CppCat_Cppcheck_PVS-Studio_Visual_Studio_ru/image3.png

Таблица 2 – Количество обнаруженных реальных проблем, в процентах

0241_Short_Comparison_CppCat_Cppcheck_PVS-Studio_Visual_Studio_ru/image4.png

Таблица 3 – Время работы анализаторов, в минутах

Время

Мы не считаем время анализа существенным параметром сравнения. Но про скорость работы регулярно задают вопросы, поэтому мы включили замеры времени в эту статью.

Как видно, наиболее быстрым является Cppcheck. Но следует учитывать, что это суммарное время. На отдельных проектах, другие анализаторы работают быстрее, чем Cppcheck. Всё зависит от проекта.

CppCat работает на самом деле чуть-чуть быстрее, чем PVS-Studio, так как осуществляет меньше проверок. Но разница столь незначительна (десятки секунд), что отмечать это в таблице нет смысла.

Диагностики

Всего наша команда выделила в проектах 965 уникальных фрагментов кода, заслуживающих пристального внимания.

В таблице показано, что CppCat и PVS-Studio показали идентичные результаты. Дело в том, что при рекомендованных настройках анализатор PVS-Studio, выдаёт те же сообщения, что и CppCat.

Итого анализатор CppCat, как и PVS-Studio обнаруживает 742 опасных места в коде проектов. Cppcheck - 193, Visual Studio - 116.

Можно сказать, что анализаторы CppCat и PVS-Studio обнаруживают в 4 раза больше ошибок, чем Cppcheck и в 6 раз больше, чем анализатор из Visual Studio.

Заключение

Анализаторы CppCat и PVS-Studio показали себя явными лидерами в количестве найденных дефектов и потенциальных дефектов.

Дополнительно

Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form