Плагин SonarQube 5.1.2 SVN очень медленный

Недавно я обновил наш экземпляр SonarQube до версии 5.1.2. Мы используем плагин SVN (v1.1) для анализа SCM. После обновления производительность этого плагина была очень низкой.

Чтобы воспроизвести проблему, я проанализировал проект на своем ПК с двумя установками SonarQube (также установленными на моем ПК — 4.4.1 и 5.1.2).

Анализ SCM для версии 4.4.1 занял 45 секунд, а для версии 5.1.2 — почти 1,5 часа.

Ниже приведены примеры фрагментов из файлов журнала. В версии 4.4.1 не указано количество проанализированных файлов, но оно было таким же, как и в версии 5.1.2 (это тот же проект).

Версия 4.4.1:

[INFO] [17:53:21.914] Sensor ScmActivitySensor...
[INFO] [17:53:21.914] Trying to guess scm provider from project layout...
[INFO] [17:53:21.915] Found SCM type: svn
[INFO] [17:53:21.915] Retrieve SCM blame information with encoding windows-1252...
...
[INFO] [17:54:06.488] Retrieve SCM blame information with encoding windows-1252 done: 44573 ms
[INFO] [17:54:06.488] Sensor ScmActivitySensor done: 44574 ms

Версия 5.1.2:

[INFO] [18:00:54.971] Sensor SCM Sensor
[INFO] [18:00:54.987] SCM provider for this project is: svn
[INFO] [18:00:54.991] 1645 files to be analyzed
...
[INFO] [19:27:16.017] 1645/1645 files analyzed
[INFO] [19:27:16.017] Sensor SCM Sensor (done) | time=5181046ms

Кажется, это исключает наш сервер SVN или машину, выполняющую анализ, как проблему. Я не уверен, где искать дальше? Кто-нибудь может помочь?

Я могу предоставить полные журналы, если это необходимо (хотя вывод отладки в 5.1.2, похоже, не показал ничего полезного).


person Tim Webster    schedule 26.08.2015    source источник
comment
Я могу ответить на это сам. Это связано с тем, что вызов SVNLogClient.doAnnotate() устанавливает для флага includeMergedRevisions значение true. Должен ли он быть установлен для нас или он должен быть настраиваемым, это другая история, поскольку он включает в себя полезные функции. В любом случае, установка его в false значительно ускоряет его, как и следовало ожидать.   -  person Tim Webster    schedule 26.08.2015


Ответы (1)


Как я уже упоминал в комментарии, причина этого в том, что история слияния включена в вину SVN.

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

person Tim Webster    schedule 01.09.2015