You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2023/05/10 17:30:33 UTC

[jmeter] branch master updated: Speed up CPU-bound tests by skipping recoverRunningVersion for elements that are shared between threads (the ones that implement NoThreadClone (#5899)

This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new bfd83d52a6 Speed up CPU-bound tests by skipping recoverRunningVersion for elements that are shared between threads (the ones that implement NoThreadClone (#5899)
bfd83d52a6 is described below

commit bfd83d52a67dd00ab5355171bdf0261e619169f1
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Wed May 10 20:30:27 2023 +0300

    Speed up CPU-bound tests by skipping recoverRunningVersion for elements that are shared between threads (the ones that implement NoThreadClone (#5899)
    
    See https://github.com/apache/jmeter/issues/5875
---
 .../java/org/apache/jmeter/testelement/AbstractTestElement.java     | 6 ++++++
 xdocs/changes.xml                                                   | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
index 59049988c0..697d5e8670 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.jmeter.engine.util.NoThreadClone;
 import org.apache.jmeter.gui.Searchable;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.CollectionProperty;
@@ -502,6 +503,11 @@ public abstract class AbstractTestElement implements TestElement, Serializable,
      */
     @Override
     public void recoverRunningVersion() {
+        if (this instanceof NoThreadClone) {
+            // The element is shared between threads, so there's nothing to recover
+            // See https://github.com/apache/jmeter/issues/5875
+            return;
+        }
         Iterator<Map.Entry<String, JMeterProperty>>  iter = propMap.entrySet().iterator();
         while (iter.hasNext()) {
             Map.Entry<String, JMeterProperty> entry = iter.next();
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 936694aa6b..2c6ace3f66 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -99,6 +99,7 @@ Summary
 <h3>General</h3>
 <ul>
   <li><pr>5792</pr>Add KeyStroke for start_no_timers (Start no pauses: CRTL+SHIFT+n)</li>
+  <li><pr>5899</pr>Speed up CPU-bound tests by skipping <code>recoverRunningVersion</code> for elements that are shared between threads (the ones that implement <code>NoThreadClone</code>)</li>
 </ul>
 
 <ch_section>Non-functional changes</ch_section>