You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2015/07/04 15:46:33 UTC

svn commit: r1689157 - in /jmeter/trunk: src/components/org/apache/jmeter/timers/GaussianRandomTimer.java src/components/org/apache/jmeter/timers/RandomTimer.java src/components/org/apache/jmeter/timers/UniformRandomTimer.java xdocs/changes.xml

Author: pmouawad
Date: Sat Jul  4 13:46:25 2015
New Revision: 1689157

URL: http://svn.apache.org/r1689157
Log:
Bug 58100 - Performance enhancements : Replace Random by ThreadLocalRandom

Bugzilla Id: 58100

Modified:
    jmeter/trunk/src/components/org/apache/jmeter/timers/GaussianRandomTimer.java
    jmeter/trunk/src/components/org/apache/jmeter/timers/RandomTimer.java
    jmeter/trunk/src/components/org/apache/jmeter/timers/UniformRandomTimer.java
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/components/org/apache/jmeter/timers/GaussianRandomTimer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/timers/GaussianRandomTimer.java?rev=1689157&r1=1689156&r2=1689157&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/timers/GaussianRandomTimer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/timers/GaussianRandomTimer.java Sat Jul  4 13:46:25 2015
@@ -29,11 +29,11 @@ import org.apache.jmeter.util.JMeterUtil
  *
  */
 public class GaussianRandomTimer extends RandomTimer implements Serializable {
-    private static final long serialVersionUID = 240L;
+    private static final long serialVersionUID = 241L;
 
     @Override
     public long delay() {
-        return (long) Math.abs((this.random.nextGaussian() * getRange()) + super.delay());
+        return (long) Math.abs((getRandom().nextGaussian() * getRange()) + super.delay());
     }
 
     @Override

Modified: jmeter/trunk/src/components/org/apache/jmeter/timers/RandomTimer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/timers/RandomTimer.java?rev=1689157&r1=1689156&r2=1689157&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/timers/RandomTimer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/timers/RandomTimer.java Sat Jul  4 13:46:25 2015
@@ -20,6 +20,7 @@ package org.apache.jmeter.timers;
 
 import java.io.Serializable;
 import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
 
 import org.apache.jmeter.testelement.property.DoubleProperty;
 import org.apache.jmeter.testelement.property.StringProperty;
@@ -31,17 +32,14 @@ import org.apache.jmeter.testelement.pro
  *
  */
 public abstract class RandomTimer extends ConstantTimer implements Timer, Serializable {
-    private static final long serialVersionUID = 240L;
+    private static final long serialVersionUID = 241L;
 
     public static final String RANGE = "RandomTimer.range";
 
-    protected final Random random;
-
     /**
      * No-arg constructor.
      */
     public RandomTimer() {
-        this.random = new Random();
     }
 
     /**
@@ -65,5 +63,11 @@ public abstract class RandomTimer extend
     public double getRange() {
         return this.getPropertyAsDouble(RANGE);
     }
-
+    
+    /**
+     * @return {@link Random} Thread local Random
+     */
+    protected Random getRandom() {
+        return ThreadLocalRandom.current();
+    }
 }

Modified: jmeter/trunk/src/components/org/apache/jmeter/timers/UniformRandomTimer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/timers/UniformRandomTimer.java?rev=1689157&r1=1689156&r2=1689157&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/timers/UniformRandomTimer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/timers/UniformRandomTimer.java Sat Jul  4 13:46:25 2015
@@ -29,11 +29,11 @@ import org.apache.jmeter.util.JMeterUtil
  *
  */
 public class UniformRandomTimer extends RandomTimer implements Serializable {
-    private static final long serialVersionUID = 240L;
+    private static final long serialVersionUID = 241L;
 
     @Override
     public long delay() {
-        return (long) Math.abs((this.random.nextDouble() * getRange()) + super.delay());
+        return (long) Math.abs((getRandom().nextDouble() * getRange()) + super.delay());
     }
 
     @Override

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1689157&r1=1689156&r2=1689157&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Sat Jul  4 13:46:25 2015
@@ -69,6 +69,7 @@ Summary
 <ch_section>Incompatible changes</ch_section>
 
 <ul>
+    <li>In RandomTimer class, protected instance timer has been replaced by getTimer() protected method, this is related to <bugzilla>58100</bugzilla>. This may impact 3rd party plugins.</li>
 </ul>
 
 <!-- =================== Improvements =================== -->