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.