Package fr.imag.adele.apam.mainApam

Source Code of fr.imag.adele.apam.mainApam.perfWire

package fr.imag.adele.apam.mainApam;

import fr.imag.adele.apam.Apam;
import fr.imag.adele.apam.ApamComponent;
import fr.imag.adele.apam.CST;
import fr.imag.adele.apam.Implementation;
import fr.imag.adele.apam.Instance;
import fr.imag.adele.apam.Link;
import fr.imag.adele.apam.test.PerfWireSpec;
import fr.imag.adele.apam.test.s1.S1;

public class perfWire implements Runnable, ApamComponent, PerfWireSpec {
  // injected
  Apam apam;
  S1 simpleDep ;
  S1 constraintDep ;
  S1 preferenceDep ;
    //S1 testSimple ;
  Instance thisInstance ;
  S1 testReaction ;

    //Getter to automate the test using pax
    public S1 getFieldSimpleDep() {
        return simpleDep;
    }

    //Setter to automate the test using pax
    public void resetFieldSimpleDep() {
        simpleDep = null;
    }



    //Getter to automate the test using pax
    public S1 getFieldConstraintDep() {
        return constraintDep;
    }

    //Setter to automate the test using pax
    public void resetFieldConstraintDep() {
        constraintDep = null;
    }


    //Getter to automate the test using pax
    public S1 getFieldPreferenceDep() {
        return preferenceDep;
    }
    //Setter to automate the test using pax
    public void resetFieldPreferenceDep() {
        preferenceDep = null;
    }


    //Getter to automate the test using pax
    public S1 getFieldTestReaction() {
        return testReaction;
    }

    //Getter to automate the test using pax
    public Instance getFieldThisInstance() {
        return thisInstance;
    }


    @Override
    public void testReactionSimple() {

    }

    @Override
  public void testReaction () {
    System.out.println("=========== start testReaction test");

    System.out.println("creating 2 instances");
    Implementation implS1 = CST.apamResolver.findImplByName(null,"S1ImplEmpty");
    Instance s1 = implS1.createInstance(null, null);
    Instance s2 = implS1.createInstance(null, null);

    Instance test = CST.componentBroker.getInstService(testReaction) ;
    System.out.println("connected to " + test.getName());
    if (test == s1)
      s2.setProperty("debit", 100) ;
    else
      s1.setProperty("debit", 100) ;

    thisInstance.setProperty("need", 20) ;
    test = CST.componentBroker.getInstService(testReaction) ;
    System.out.println("connected to " + test.getName());

    //      =========== start testReaction test
    //          creating 2 instances
    //          connected to S1ImplEmpty-0
    //          connected to S1ImplEmpty-1
  }

    @Override
  public void testPerfLink () {
    System.out.println("=========== start testPerfLink test");
    Implementation impl= CST.apamResolver.findImplByName(null,"S2Impl");

    long overHead = 0 ;
    long fin ;
    long duree ;
    long deb ;
    int nb = 1000;
    int nbInst = 0 ;

    System.out.println("creating 2 instances");
    Implementation implS1 = CST.apamResolver.findImplByName(null,"S1ImplEmpty");
    implS1.createInstance(null, null);
    nbInst++ ;
    implS1.createInstance(null, null);
    nbInst++ ;

    Instance test = null ;

    String s ;
    Link l ;
    for (int k = 0; k < 10; k++) {
      System.out.println("creating 1000 instances");
      for (int i = 0; i < 100; i++) {
        test = implS1.createInstance(null, null);
        nbInst++ ;
      }
      test.setProperty("debit"2000) ;
      for (int j = 0; j < 10; j++) {

        deb = System.nanoTime();
        for (int i = 0; i < nb; i++) {
          simpleDep.getName();
          simpleDep = null ;
//          l = thisInstance.getLink("testSimple") ;
//          l.reevaluate(true, true) ;
        }
        fin = System.nanoTime();
        duree = (fin - deb) ;
        System.out.println("Nombre d'instances " + nbInst + " : duree de " + nb + " resolution sans contrainte : " + duree/1000000 + " milli secondes");   

        //Contrainte
        deb = System.nanoTime();
        for (int i = 0; i < nb; i++) {
          constraintDep.getName();
          constraintDep = null ;
//          l = thisInstance.getLink("testPerf") ;
//          l.reevaluate(true, true) ;
        }
        fin = System.nanoTime();
        duree = (fin - deb - overHead) ;
        System.out.println("Nombre d'instances " + nbInst + " : duree de " + nb + " resolution avec contrainte : " + duree/1000000 + " milli secondes");   

        //predference
        deb = System.nanoTime();
        for (int i = 0; i < nb; i++) {
          preferenceDep.getName() ; //resolve if pointer is null
          preferenceDep = null;    //remove the link
//          l = thisInstance.getLink("testPerfPrefere") ;
//          l.reevaluate(true, true) ;
        }
        fin = System.nanoTime();
        duree = (fin - deb - overHead) ;
        System.out.println("Nombre d'instances " + nbInst + " : duree de " + nb + " resolution avec preference : " + duree/1000000 + " milli secondes");   
     

        deb = System.nanoTime();
        //      System.out.println(testSimple.getName());
        for (int i = 0; i < nb; i++) {
          test = CST.componentBroker.getInstService(simpleDep) ;
          test.setProperty("debit", 10) ;
          test.setProperty("debit", 20) ;
          s = simpleDep.getName() ;
          //        System.out.println(s);
        }
        fin = System.nanoTime();
        overHead = (fin - deb) ;
        System.out.println("Nombre d'instances " + nbInst + " : duree de " + nb + " overhead : " + overHead/1000000 + " milli secondes");

        deb = System.nanoTime();
        //      System.out.println(testPerf.getName());

                // PAxizer ce test (le for) : Fait !
        for (int i = 0; i < nb; i++) {
          test = CST.componentBroker.getInstService(simpleDep) ;
          test.setProperty("debit", 2) ;
          s= simpleDep.getName() ;
          test.setProperty("debit", 10) ;
          //System.out.println(s);
        }
        fin = System.nanoTime();
        duree = (fin - deb- overHead) ;
        System.out.println("Nombre d'instances " + nbInst +  " : duree de " + nb + " appels avec contrainte et changement de dep : " + duree/1000000 + " milli secondes");


      }
    }

    //=========== start testPerfLink test
    //    Nombre d'instances 2 : duree de 1000 appels avec changement de dependance : 221 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 102 : duree de 1000 appels sans changement : 10 milli secondes
    //    Nombre d'instances 102 : duree de 1000 appels avec contrainte et changement de dep : 20 milli secondes
    //    Nombre d'instances 102 : duree de 1000 changement de dep et preference : 121 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 202 : duree de 1000 appels sans changement : 7 milli secondes
    //    Nombre d'instances 202 : duree de 1000 appels avec contrainte et changement de dep : 56 milli secondes
    //    Nombre d'instances 202 : duree de 1000 changement de dep et preference : 207 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 302 : duree de 1000 appels sans changement : 6 milli secondes
    //    Nombre d'instances 302 : duree de 1000 appels avec contrainte et changement de dep : 64 milli secondes
    //    Nombre d'instances 302 : duree de 1000 changement de dep et preference : 265 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 402 : duree de 1000 appels sans changement : 9 milli secondes
    //    Nombre d'instances 402 : duree de 1000 appels avec contrainte et changement de dep : 30 milli secondes
    //    Nombre d'instances 402 : duree de 1000 changement de dep et preference : 351 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 502 : duree de 1000 appels sans changement : 8 milli secondes
    //    Nombre d'instances 502 : duree de 1000 appels avec contrainte et changement de dep : 34 milli secondes
    //    Nombre d'instances 502 : duree de 1000 changement de dep et preference : 474 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 602 : duree de 1000 appels sans changement : 8 milli secondes
    //    Nombre d'instances 602 : duree de 1000 appels avec contrainte et changement de dep : 18 milli secondes
    //    Nombre d'instances 602 : duree de 1000 changement de dep et preference : 519 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 702 : duree de 1000 appels sans changement : 10 milli secondes
    //    Nombre d'instances 702 : duree de 1000 appels avec contrainte et changement de dep : 26 milli secondes
    //    Nombre d'instances 702 : duree de 1000 changement de dep et preference : 658 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 802 : duree de 1000 appels sans changement : 10 milli secondes
    //    Nombre d'instances 802 : duree de 1000 appels avec contrainte et changement de dep : 15 milli secondes
    //    Nombre d'instances 802 : duree de 1000 changement de dep et preference : 978 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 902 : duree de 1000 appels sans changement : 11 milli secondes
    //    Nombre d'instances 902 : duree de 1000 appels avec contrainte et changement de dep : 26 milli secondes
    //    Nombre d'instances 902 : duree de 1000 changement de dep et preference : 976 milli secondes
    //    creating 100 instances
    //    Nombre d'instances 1002 : duree de 1000 appels sans changement : 12 milli secondes
    //    Nombre d'instances 1002 : duree de 1000 appels avec contrainte et changement de dep : 16 milli secondes
    //    Nombre d'instances 1002 : duree de 1000 changement de dep et preference : 1189 milli secondes


  }

  public void resolWithInstantiation () {
    long fin ;
    long duree ;
    long deb ;
    int nb = 1000;
//    int nbInst = 0 ;
   
    Instance test ;
    String s ;
   
    deb = System.nanoTime();   
    test = CST.componentBroker.getInstService(constraintDep) ;
    fin = System.nanoTime();
    System.out.println(constraintDep.getName());
    duree = (fin - deb) ;
    System.out.println("Time for first resolution : deploying and instantiating. : " + duree/1000000 + " milli secondes");

    deb = System.nanoTime();
    for (int i = 0; i < nb; i++) {
      test = CST.componentBroker.getInstService(constraintDep) ;
      test.setProperty("debit", 2) ;
      s= constraintDep.getName() ;
//      System.out.println(s);
    }
    fin = System.nanoTime();
    duree = (fin - deb) ;
    System.out.println("Duree de " + nb + " appels avec instantiation, contrainte et changement de dep : " + duree/1000000 + " milli secondes");

//    S1ImplEmpty-0
//    Time for first resolution : deploying and instantiating. : 314 milli secondes
//    Duree de 1000 appels avec instantiation, contrainte et changement de dep : 9590 milli secondes
  }

 
  @Override
  public void run() {
    System.out.println("Starting test perf Link");
   
//    resolWithInstantiation () ;
//    testReactionSimple () ;
//    testReaction () ;
//    testPerfLink  () ;
  }


  @Override
  public void apamInit(Instance apamInstance) {
    thisInstance = apamInstance ;
    new Thread(this, "MainApam perftest").start();
  }

  @Override
  public void apamRemove() {
  }

}
TOP

Related Classes of fr.imag.adele.apam.mainApam.perfWire

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.