You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2014/10/16 00:06:11 UTC

svn commit: r1632189 - in /felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark: ./ src/org/apache/felix/dm/benchmark/controller/impl/ src/org/apache/felix/dm/benchmark/dependencymanager/ src/org/apache/felix/dm...

Author: pderop
Date: Wed Oct 15 22:06:11 2014
New Revision: 1632189

URL: http://svn.apache.org/r1632189
Log:
cleanup

Modified:
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/bnd.bnd
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/controller/impl/ScenarioControllerImpl.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/dependencymanager/Activator.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scenario/Artist.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scr/scr.xml

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/bnd.bnd
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/bnd.bnd?rev=1632189&r1=1632188&r2=1632189&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/bnd.bnd (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/bnd.bnd Wed Oct 15 22:06:11 2014
@@ -23,4 +23,6 @@ Export-Package:  \
 	ds.loglevel=warn,\
 	org.osgi.framework.bootdelegation='sun.*,com.sun.*,org.netbeans.*'
 -runvm: -server -Xmx1024m -Xms1024m
--runee: JavaSE-1.8
\ No newline at end of file
+-runee: JavaSE-1.8
+javac.source:          1.8
+javac.target:          1.8

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/controller/impl/ScenarioControllerImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/controller/impl/ScenarioControllerImpl.java?rev=1632189&r1=1632188&r2=1632189&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/controller/impl/ScenarioControllerImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/controller/impl/ScenarioControllerImpl.java Wed Oct 15 22:06:11 2014
@@ -33,15 +33,12 @@ public class ScenarioControllerImpl impl
     /**
      * List of bundles to be executed by the benchmark.
      */
-    final static List<String> BUNDLES = 
-        Arrays.asList(
-            /* Scenario based on dependency manager */
-            "org.apache.felix.dependencymanager.benchmark.scr",
-            /* Scenario using parallel dependency manager */
-            "org.apache.felix.dependencymanager.benchmark.dependencymanager",
-            /* Scenario using declarative service */
-            "org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel");
-
+    final List<String> TESTS = Arrays.asList(
+        "org.apache.felix.dependencymanager.benchmark.scr",
+        "org.apache.felix.dependencymanager.benchmark.dependencymanager",
+        "org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel"
+    );
+    
     /**
      * Our injected bundle context, used to lookup the bundles to benchmark.
      */
@@ -74,22 +71,22 @@ public class ScenarioControllerImpl impl
     public void run() {
         // wait a bit in order to let the gogo banner be displayed before we start the bench.
         Unchecked.run(() -> Thread.sleep(500)); 
-        
-        // at this point, we have to stop all the tested bundle.
-        forEachScenarioBundle(Unchecked.consumer((bundle) -> {
+       
+        // Stop all tested bundles.
+        forEachScenarioBundle(TESTS, Unchecked.consumer((bundle) -> {
             debug(() -> "Stopping bundle " + bundle.getSymbolicName());
             bundle.stop();
         }));
-        
+
         // Start/stop several times the tested bundles. (no processing done in components start/stop methods).
         m_doProcessingInStartStop = false;
         out.println("\n\t+++++ Starting benchmarks without processing done in components start/stop methods.");
-        startStopScenarioBundles(100);
+        startStopScenarioBundles(TESTS, 10);
        
         // Start/stop several times the tested bundles (processing is done in components start/stop methods).
         m_doProcessingInStartStop = true;
         out.println("\n\t+++++ Starting benchmarks with processing done in components start/stop methods.");
-        startStopScenarioBundles(5);
+        startStopScenarioBundles(TESTS, 5);
     }
 
     @Override
@@ -109,11 +106,11 @@ public class ScenarioControllerImpl impl
     
     @Override
     public void albumAdded(Album album) {
-        componentAdded();
         int size = album.getMusicTracks().size();
         if (size != Artist.TRACKS) {
             throw new IllegalStateException("Album does not contain expected number of music tracks:" + size);
         }
+        componentAdded();
     }
     
     @Override
@@ -133,9 +130,9 @@ public class ScenarioControllerImpl impl
             
     // ------------------- Private methods -----------------------------------------------------
         
-    private void startStopScenarioBundles(int iterations) {
-        forEachScenarioBundle(bundle -> {
-            out.print("\nBenchmarking bundle: " + bundle.getSymbolicName() + "\n");
+    private void startStopScenarioBundles(List<String> tests, int iterations) {
+        forEachScenarioBundle(tests, bundle -> {
+            out.print("\nBenchmarking bundle: " + bundle.getSymbolicName() + "\n");            
             List<Long> sortedResults = LongStream.range(0, iterations)
                 .peek(i -> out.print("."))
                 .map(n -> durationOf(() -> startAndStop(bundle)))
@@ -168,7 +165,7 @@ public class ScenarioControllerImpl impl
 
     private void doProcessing() {
         if (m_doProcessingInStartStop) {
-            long duration = TimeUnit.MILLISECONDS.toNanos(5);
+            long duration = 500000; // 5/100 of one millis
             long t1 = System.nanoTime();
             while (System.nanoTime() - t1 < duration)
                 ;
@@ -176,12 +173,12 @@ public class ScenarioControllerImpl impl
     }
     
     /**
-     * Maps a consumer to all bundles participating in the benchmark.
+     * Maps a function to all bundles participating in the benchmark.
      */
-    private void forEachScenarioBundle(Consumer<Bundle> consumer) {
-        BUNDLES.stream().forEach(bsn -> {
-            Optional<Bundle> scenarioBundle = Stream.of(m_bctx.getBundles()).filter(b -> b.getSymbolicName().equals(bsn)).findFirst();
-            scenarioBundle.ifPresent(b -> {
+    private void forEachScenarioBundle(List<String> tests, Consumer<Bundle> consumer) {
+        tests.stream().forEach(test -> {
+            Optional<Bundle> bundle = Stream.of(m_bctx.getBundles()).filter(b -> b.getSymbolicName().equals(test)).findFirst();
+            bundle.ifPresent(b -> {
                 consumer.accept(b);
             });
         });   

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/dependencymanager/Activator.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/dependencymanager/Activator.java?rev=1632189&r1=1632188&r2=1632189&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/dependencymanager/Activator.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/dependencymanager/Activator.java Wed Oct 15 22:06:11 2014
@@ -6,7 +6,7 @@ import static org.apache.felix.dm.benchm
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Properties;
+import java.util.Hashtable;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
@@ -48,6 +48,7 @@ public class Activator extends Dependenc
     /**
      * Initialize our Artists, Albums/Tracks, possibly using a parallel dependency manager.
      */
+    @SuppressWarnings("unused")
     private void start(Component c) {
         Helper.debug(() -> "DependencyManager.Activator: start");
         DependencyManager dm = c.getDependencyManager();
@@ -77,7 +78,7 @@ public class Activator extends Dependenc
             artist.add(dm.createServiceDependency().setService(Album.class, filter).setRequired(true)
                          .setCallbacks("addAlbum", null));            
             
-            Properties props = new Properties();
+            Hashtable<String, Object> props = new Hashtable<>();
             props.put("id", String.valueOf(id));
             Component c = dm.createComponent()
                 .setInterface(Album.class.getName(), props)
@@ -95,7 +96,7 @@ public class Activator extends Dependenc
             album.add(dm.createServiceDependency()
                 .setService(Track.class, f).setRequired(true).setCallbacks("addTrack", null));
 
-            Properties p = new Properties();
+            Hashtable<String, Object> p = new Hashtable<>();
             p.put("id", String.valueOf(id));
             Component c = dm.createComponent()
                 .setInterface(Track.class.getName(), p)

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scenario/Artist.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scenario/Artist.java?rev=1632189&r1=1632188&r2=1632189&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scenario/Artist.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scenario/Artist.java Wed Oct 15 22:06:11 2014
@@ -10,19 +10,19 @@ public interface Artist {
      * When a scenario bundles starts, it creates the following number of Artists (service)
      * (you have to regenerate the SCR xml descriptor if you modify this, see README)
      */
-    public final int ARTISTS = 5;
+    public final int ARTISTS = 2;
     
     /**
      * Each Artist creates the following number of musical Albums.
      * (you have to regenerate the SCR xml descriptor if you modify this, see README)
      */
-    public final int ALBUMS = 10;
+    public final int ALBUMS = 20;
     
     /**
      * Each Album contains the following number of musical Tracks.
      * (you have to regenerate the SCR xml descriptor if you modify this, see README)
      */
-    public final int TRACKS = 5;
+    public final int TRACKS = 30;
     
     /**
      * Returns the Albums that this Artist has created

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scr/scr.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.benchmark/src/org/apache/felix/dm/benchmark/scr/scr.xml?rev=1632189&r1=1632188&r2=1632189&view=diff
==============================================================================
Binary files - no diff available.