[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-11-29 Thread scm_issue_l...@java.net (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 SCM/JIRA link daemon commented on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
 Code changed in jenkins User: Jesse Glick Path: core/src/main/java/jenkins/model/TransientActionFactory.java http://jenkins-ci.org/commit/jenkins/9ecc77b9badd65d9eabd34d2baad1742d5566894 Log: JENKINS-38867 Since tag for #2582.  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-11-27 Thread scm_issue_l...@java.net (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 SCM/JIRA link daemon commented on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
 Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/model/Actionable.java core/src/main/java/jenkins/model/TransientActionFactory.java test/src/test/java/jenkins/model/TransientActionFactoryTest.java http://jenkins-ci.org/commit/jenkins/6360b96464f6c2498fe91a089a21992411b2ec34 Log: JENKINS-38867 Optimize performance of Actionable.getAllActions (#2582) 
 
Optimize Actionable.getAllActions. 
 
 
Also need to invalidate the cache when new plugins are installed. 
 
 
Various improvements to TransientActionFactory caching. · Move the cache code to TransientActionFactory itself, for better encapsulation. · Optimize getAction(Class) to not need to call getAllActions; avoids copying lists, and can avoid calling TransientActionFactory at all. · Ensure that we maintain a separate cache per ExtensionList instance, so that static state is not leaked across Jenkins restarts. 
 
 
Updated TransientActionFactory to specify what kinds of actions it could produce. 
 
 
It turns out that changing type parameters for an extension, while generally binary-compatible, breaks reflective code in Jenkins and so this is not an option. … hudson.ExtensionFinder$GuiceFinder$SezpozModule configure WARNING: Failed to load com.cloudbees.hudson.plugins.folder.relocate.RelocationAction$TransientActionFactoryImpl java.lang.LinkageError: Failed to resolve class com.cloudbees.hudson.plugins.folder.relocate.RelocationAction$TransientActionFactoryImpl at hudson.ExtensionFinder$GuiceFinder$SezpozModule.resolve(ExtensionFinder.java:489) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.configure(ExtensionFinder.java:506) at … at hudson.ExtensionFinder$GuiceFinder.(ExtensionFinder.java:280) at … at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:472) at hudson.ExtensionList.load(ExtensionList.java:349) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:287) at hudson.ExtensionList.getComponents(ExtensionList.java:167) at jenkins.model.Jenkins$8.onInitMilestoneAttained(Jenkins.java:1082) at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:82) at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:104) at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:176) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.MalformedParameterizedTypeException at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:58) at 

[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-11-27 Thread o.v.nenas...@gmail.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Oleg Nenashev commented on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
 In addition to the original fix we have also integrated https://github.com/jenkinsci/jenkins/pull/2582 towards jenkins-2.34. Same issue ID   
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-11-27 Thread o.v.nenas...@gmail.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Oleg Nenashev updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Oleg Nenashev  
 
 
Component/s: 
 core  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-19 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort updated  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Released as workflow-api plugin v 2.5  
 

  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 
 
Status: 
 In Review Closed  
 
 
Resolution: 
 Done  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit 

[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-18 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 

  
 
 
 
 

 
 In most cases we only care about the directly attached actions on flownodes.  FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions. We should:1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively3. Benchmark to see what the performance difference isUPDATE: * 50% improvement in Doubles  stage view performance, which should carry through to a large extent anywhere we use flow analysis.*  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" 

[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-18 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 
 
Component/s: 
 pipeline-graph-analysis-plugin  
 
 
Component/s: 
 pipeline-stage-view-plugin  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-12 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort updated an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 

  
 
 
 
 

 
 In most cases we only care about the directly attached actions on flownodes.  FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions. We should:1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively3. Benchmark to see what the performance difference is UPDATE: *50% improvement in stage view performance, which should carry through to a large extent anywhere we use flow analysis.*
   
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To 

[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-12 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort updated  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 
 
Status: 
 In  Progress  Review  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-10 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort commented on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
 As noted in the PR, I think you have misunderstood the intended use case.   
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-10 Thread jgl...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Jesse Glick commented on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
  Re: Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
 As noted in the PR I think this cannot happen.  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-10 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort created an issue  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
 Jenkins /  JENKINS-38867  
 
 
  Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories   
 

  
 
 
 
 

 
Issue Type: 
  Improvement  
 
 
Assignee: 
 Sam Van Oort  
 
 
Components: 
 pipeline-graph-analysis-plugin, pipeline-stage-view-plugin, workflow-api-plugin  
 
 
Created: 
 2016/Oct/10 2:47 PM  
 
 
Priority: 
  Major  
 
 
Reporter: 
 Sam Van Oort  
 

  
 
 
 
 

 
 In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.  We should: 1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object) 2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively 3. Benchmark to see what the performance difference is  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  

[JIRA] (JENKINS-38867) Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

2016-10-10 Thread svano...@cloudbees.com (JIRA)
Title: Message Title


 
 
 
 

 
 
 

 
   
 Sam Van Oort started work on  JENKINS-38867  
 

  
 
 
 
 

 
 
  
 
 
 
 

 
Change By: 
 Sam Van Oort  
 
 
Status: 
 Open In Progress  
 

  
 
 
 
 

 
 
 

 
 
 Add Comment  
 

  
 

  
 
 
 
  
 

  
 
 
 
 

 
 This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)  
 
 

 
   
 

  
 

  
 

   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.