Package fr.imag.adele.apam.pax.test.performance

Source Code of fr.imag.adele.apam.pax.test.performance.Main

package fr.imag.adele.apam.pax.test.performance;

import java.util.Locale;
import java.util.concurrent.atomic.AtomicBoolean;

import org.osgi.framework.BundleContext;

import fr.imag.adele.apam.pax.test.performance.util.Checkpoint;
import fr.imag.adele.apam.pax.test.performance.util.Measure;
import fr.imag.adele.apam.pax.test.performance.util.MeasureHolder;

//@Scope("STATELESS")
//@EagerInit
public class Main {
  BundleContext context;
  static AtomicBoolean busy = new AtomicBoolean(false);
  public Main() {}
 
  public Main(BundleContext context) { this.context = context; }

//  @Reference
  Fibonacci fibonacci;

//  @Init
  public void start() {

    if (busy.compareAndSet(false, true)) {

      Locale.setDefault(new Locale("en", "US"));

      System.err.println("#FIB\tVALUE\tMEMORY(bytes)\tTIME(ms)\tcalls");

      // if(fibonacci==null){
      // reference =
      // this.context.getServiceReference(Fibonacci.class.getName());
      // fibonacci = (Fibonacci) context.getService(reference); }

      // if(fibonacci==null){
      // SCADomain dom=SCADomain.newInstance("fibonacci.composite");
      // fibonacci = dom.getService(FibonacciRecursive.class,
      // "FibonacciComponent");
      // }
     
      final int SIZE=30;
     
      //fibonacci.compute(SIZE);
     
      fibonacci.callsInit(0);
     
      for (int i = 0; i <= SIZE; i++) {
       
        Checkpoint p1 = new Checkpoint();

        int value = fibonacci.compute(i);

        Checkpoint p2 = new Checkpoint();

        MeasureHolder holder = Measure.time(p1, p2);

        System.err.println(String.format("%d\t%d\t%s\t%s\t%d", i,
            value, holder.usedMemory(), holder.asMili(),
            fibonacci.getCalls()));

      }

      busy.set(false);

    } else { // this is done two avoid the aries issue of calling initmethod
          // twice
      try {
        Thread.currentThread().wait();
      } catch (InterruptedException e) {
      }
    }

  }

  public static void main(String[] args) {
    Main m = new Main();
    FibonacciRecursive recursive = new FibonacciRecursive();
    recursive.moins1 = recursive;
    recursive.moins2 = recursive;

    m.fibonacci = recursive;
    m.start();

  }

  public void stop() {
    //DO SOMETHING!
  }

  //Scaffolds are here for a matter of compatilbilty (i.e tuscany need them)
 
  public Fibonacci getFibonacci() {
    return fibonacci;
  }

  public void setFibonacci(Fibonacci fibonacci) {
    this.fibonacci = fibonacci;
  }

}
TOP

Related Classes of fr.imag.adele.apam.pax.test.performance.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.