[ https://issues.apache.org/jira/browse/KARAF-5314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16134003#comment-16134003 ]
Christian Schneider edited comment on KARAF-5314 at 8/19/17 7:41 AM: --------------------------------------------------------------------- I am not sure if the streams API is the root of the problem. Instead I think the problem is that we repeatedly go through the features to find a match for a given feature/version. So a cache is a good idea to speed this up. Currently there are two cases for a version. The version can be open if only the name is given or the version is 0.0.0. In this case all versions would match. The other case is that a version is given. Then only this version would match. The current code filters using a range which adds all matching features. The code in the PR uses a cache that holds only one feature. So I am not sure this will always do the same thing. was (Author: ch...@die-schneider.net): I am not sure if the streams API is the root of the problem. Instead I think the problem is that we repeatedly go through the features to find a match for a given feature/version. So a cache is a good idea to speed this up. Currently there are two cases for a version. The version can be open if only the name is given or the version is 0.0.0. In this case all versions would match. The other case is that a version is given. Then only this version would match. The current code filters using a range which would return add all matching features. The code in the PR uses a cache that holds only one feature. So I am not sure this will always do the same thing. > The performance of profile builder used by karaf maven plugin has reduced > significantly in 4.1 compared to 4.0 > -------------------------------------------------------------------------------------------------------------- > > Key: KARAF-5314 > URL: https://issues.apache.org/jira/browse/KARAF-5314 > Project: Karaf > Issue Type: Bug > Reporter: Vinay Shankar > Fix For: 4.1.3 > > > The performance of profile builder used by karaf maven plugin has reduced > significantly in 4.1 compared to 4.0. > The java streams API is being used in 4.1 to filter our the required features > from the set of all features present in the repositories that are part of the > profile. This is done in the "addFeatures" method in the "Builder.java" class > in the "org.apache.karaf.profile.core" bundle. This change (from 4.0) has > drastically reduced the performance. For a profile with ~900 features in all > the repositories in the profile and ~300 required features from a highly > complex feature dependency tree, this function is taking around 13min to > complete. The same execution took around 3-5min in 4.0 (where simple for > loops were being used). -- This message was sent by Atlassian JIRA (v6.4.14#64029)