Обновление Svace 3.4.240516

Выходит очередное обновление релиза Svace 3.4. Как правило, в обновления мы добавляем только незначительные исправления известных проблем. В этот раз помимо небольших исправлений мы реализовали два важных и ожидаемых изменения. Во-первых, это улучшение производительности анализатора, связанное с системой лицензирования Sentinel. А во-вторых, сборка и анализ Svace для языка Go теперь работает и на ОС Windows.

Ускорение анализа

Для проверки наличия лицензии Svace мы используем систему Sentinel. К сожалению, текущий способ защиты может существенно замедлять анализ программы на серверах с большим количеством ядер. В ряде случаев анализ движка SvEng замедлялся в 10 раз. Мы долго работали над улучшением используемой системы и завершили её к данному обновлению. По нашим замерам замедление из-за системы проверки лицензии теперь практически отсутствует.

Мы сравнили скорость анализа со старой защитой и новой для следующих проектов: tesseract-3.02.01, qtiplot-0.9.8.8, perl5, 7z, kubernetes, svace-20240403, android-14, tizen-7. Тестирование производилось на сервере с процессором Intel(R) Xeon(R) CPU E5-2650 с 32 ядрами и 256 Гб ОП. Результаты сравнения показаны на диаграмах ниже:

Как видно из результатов нашего сравнения – на небольших проектах ускорение составляет около 20%, а на проектах побольше время анализа может увеличиваться в несколько раз (в 3.2 раза для Tizen 7).

Для использования новой системы необходимо будет обновить ключи Sentinel. Для пользователей, которые по каким-то причинам не захотят переходить на новые ключи, мы продолжим делать обновления со старой системой лицензирования.

Go на Windows

Анализ для языка Go был разработан ещё в 2020 году. С тех пор анализ активно развивается. В России много Go разработчиков использует Svace. При этом у нас не было стабильной версии, которая умеет перехватывать и анализировать проекты под операционной системой Windows. В этом обновлении мы существенно улучшили возможности перехвата сборки под Windows, который теперь доступен нашим пользователям.

Другие изменения

Полный список изменений, как обычно, можно посмотреть на нашей странице в gitlab.

Система именований версий Svace

Как вы могли заметить, мы изменили способ именования релизов и обновлений Svace. Главной целью была простота идентификации времени выхода релиза и обновления, а также чтобы каждое обновление имело уникальный номер версии. До этого у нас обновления не имели свои собственные версии, что усложняло их использование.

Теперь каждое обновление в качестве минорной версии имеет дату внутреннего релиза. Например, в предыдущем обновлении Svace 3.4.240516 имеет минорную версию, означающую дату 16 мая 2024 года.

Нумерация мажорных версий также будет изменена с этого года. Следующий релиз будет иметь версию 4. Ещё через год версия будет 5 и так далее. Таким образом мажорный номер будет означать последнюю цифру года.

Алексей Бородин