-
Improvement
-
Resolution: Fixed
-
Major
I encountered severe performance problems when using the customized warnings parser plugin with regex. It takes about a minute to parse the 250kb file in the attachment for warnings. Even a simple regex like just "INFO" takes 40 sec for the attached file.
A 6 MB log file took about 18 minutes with a slightly more difficult script. When I tested a log on java with about the same size and similar amount of categories, it terminated after 2 seconds.
Skript:
import hudson.plugins.warnings.parser.Warning return new Warning("fileName", 1, "Dynamic Parser", "category" , "normal")
Regex:
^([A-Z]+):(\s)*\[(.*)\].*at:\s(\w+\.java)\((\d+)\)(\s)*$
Code changed in jenkins
User: Ulli Hafner
Path:
src/main/java/hudson/plugins/warnings/parser/DynamicParser.java
src/main/java/hudson/plugins/warnings/parser/GroovyExpressionMatcher.java
src/test/java/hudson/plugins/warnings/parser/DynamicParserTest.java
src/test/java/hudson/plugins/warnings/parser/ParserSpeed.java
src/test/resources/hudson/plugins/warnings/parser/issue14383.txt
http://jenkins-ci.org/commit/warnings-plugin/976c8cd3e383bdfb2eab378035d37cff5091e8ef
Log:
[FIXED JENKINS-14383] Parse the groovy script only once.
Compare: https://github.com/jenkinsci/warnings-plugin/compare/21a0cedfe5bd...976c8cd3e383