📄 experiment.java
字号:
package sim;import java.util.*;import sim.Simulation.MeasureStartEvent;import sim.Simulation.MeasureStopEvent;import sim.Simulation.StopEvent;public class Experiment extends Simulation { String top1; String top2; public Experiment(Properties properties){ super(properties); top1=properties.getProperty("top1"); top2=properties.getProperty("top2"); } public void setup() { measureInterval = 1000; // create the overlay and broker network // net = Network.createOverlay(this); try{ net = Network.loadOverlay(this); }catch(Exception e){ System.out.println(e); e.printStackTrace(); System.exit(-1); } net.scaleCommunicationCosts(); net.assignProcessingCosts(); //net.assignParetoLoad(); net.assignLoad(); net.scaleLoad(); //net.scaleLoad(0,10); //net.scaleProcessingCosts(0,10); //net.scaleCommunicationCosts(0,10); net.createRandomTree(); scheduleEventAt(1000, new Event() { public void handle() { net.startHeuristic(); } }); // create the applications application = Application.createApplication(this); application.assignTo(net); for (int i=0; i<measureStarts.length; i++) { if(measureStarts[i]>=0.0d) { this.scheduleEventAt(measureStarts[i], new MeasureStartEvent()); } } for (int i=0; i<measureStops.length; i++) { if(measureStops[i]>=0.0d) { this.scheduleEventAt(measureStops[i], new MeasureStopEvent()); } } scheduleEventAt(76001, new StopEvent()); //scheduleEventAt(26000, new ChangeTopologyEvent("toptest_b")); //scheduleEventAt(7000, new ChangeInterestEvent()); scheduleEventAt(26000, new MyChangeEvent(top1)); scheduleEventAt(51000, new MyChangeEvent(top2)); //scheduleEventAt(62000, new MyChangeEvent("top/top_100_d")); } protected class ChangeTopologyEvent extends Event { String file; public ChangeTopologyEvent(String file){ this.file = file; } public void handle() { Network n; n = null; try{ Network.netFile = file; n = Network.loadOverlay(Experiment.this); }catch(Exception e){ e.printStackTrace(); } n.scaleCommunicationCosts(); n.assignProcessingCosts(); n.scaleProcessingCosts(); //n.assignLoad(); //n.scaleLoad(); net.change(n); } } protected class ChangeInterestEvent extends Event { public void handle(){ net.assignLoad(); net.scaleLoad(); System.out.println("Load Assigned"); } } protected class MyChangeEvent extends Event { String file; public MyChangeEvent(String file){ this.file = file; } public void handle() { Network n; n = null; try{ Network.netFile = file; n = Network.loadOverlay(Experiment.this); }catch(Exception e){ e.printStackTrace(); } n.scaleCommunicationCosts(); n.assignProcessingCosts(); n.scaleProcessingCosts(); n.assignLoad(); n.scaleLoad(); net.change(n); } } public void measure(){ out.println((time-1000)+"\t"+costs); super.measure(); } // protected double[] measureStarts = {0.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d};// protected double[] measureStops = {Double.MAX_VALUE, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d, -1.0d};// // // // protected double measureInterval = 10;// // Event measureEvent = null;// // public Experiment(Properties properties){// super(properties);// System.out.println("yeahhhhhhhhhhhhhhhhhhhhhhh.");// }// // public void setup() {// super.setup();// // for (int i=0; i<measureStarts.length; i++) {// if(measureStarts[i]>=0.0d) {// this.scheduleEventAt(measureStarts[i], new MeasureStartEvent());// }// }// // for (int i=0; i<measureStops.length; i++) {// if(measureStops[i]>=0.0d) {// this.scheduleEventAt(measureStops[i], new MeasureStopEvent());// }// }// }// // protected class MeasureStartEvent extends Event{// public void handle() {// if(measureEvent == null) {// costs = 0;// processingCosts = 0;// communicationCosts = 0;// scheduleEventIn(measureInterval, new MeasureEvent());// }// }// }// // protected class MeasureStopEvent extends Event{// public void handle() {// if (measureEvent != null) {// removeEvent(measureEvent);// measureEvent = null;// }// }// }// // protected class MeasureEvent extends Event{// public void handle() {// measure();// }// }// // public void measure() {// out.println("costs: "+costs+" (processing: "+processingCosts+" communication: "+communicationCosts);// costs = 0;// processingCosts = 0;// communicationCosts = 0;// scheduleEventIn(measureInterval,new MeasureEvent());// } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -