00001
00002
00003
00004
00005
00007
00008 package de.pik.lagom.generic;
00009
00010 import java.lang.reflect.Field;
00011
00012 import de.pik.lagom.annotations.WriteToFile;
00013 import de.pik.lagom.toolbox.ProbeBase;
00014 import de.pik.lagom.toolbox.StepManager;
00015
00016
00017
00018
00019
00020 public class StepManagerWithProfiler extends StepManager {
00021 public class Probe extends ProbeBase {
00022 @Override
00023 public String toString() {
00024 return "Profiler";
00025 }
00026
00027 @WriteToFile
00028 public double getPreparatoryStepTimeTotal() {
00029 return preparatoryStepTimeTotal;
00030 }
00031
00032 @WriteToFile
00033 public double getExchangeStepTimeTotal() {
00034 return exchangeStepTimeTotal;
00035 }
00036
00037 @WriteToFile
00038 public double gethouseholdsAdjustEmploymentTimeTotal() {
00039 return householdsAdjustEmploymentTimeTotal;
00040 }
00041
00042 @WriteToFile
00043 public double getFirmsAdjustWorkforceTimeTotal() {
00044 return firmsAdjustWorkforceTimeTotal;
00045 }
00046
00047 @WriteToFile
00048 public double getProductionTimeTotal() {
00049 return productionTimeTotal;
00050 }
00051
00052 @WriteToFile
00053 public double getConsumptionTimeTotal() {
00054 return consumptionTimeTotal;
00055 }
00056
00057 @WriteToFile
00058 public double getFirmAccountingTimeTotal() {
00059 return firmAccountingTimeTotal;
00060 }
00061
00062 @WriteToFile
00063 public double gethouseholdsAccountingTimeTotal() {
00064 return householdsAccountingTimeTotal;
00065 }
00066
00067 @WriteToFile
00068 public double getImportExportAccountingTimeTotal() {
00069 return importExportAccountingTimeTotal;
00070 }
00071
00072 @WriteToFile
00073 public double getFirmsBeliefUpdatingTimeTotal() {
00074 return firmsBeliefUpdatingTimeTotal;
00075 }
00076
00077 @WriteToFile
00078 public double getUpdateLaborProductivityTimeTotal() {
00079 return updateLaborProductivityTimeTotal;
00080 }
00081
00082 @WriteToFile
00083 public double getSettingInterestRateTimeTotal() {
00084 return settingInterestRateTimeTotal;
00085 }
00086
00087 @WriteToFile
00088 public double getFirmsCopyBehaviorTimeTotal() {
00089 return firmsCopyBehaviorTimeTotal;
00090 }
00091
00092 @WriteToFile
00093 public double getFirmsEntryAndExitTimeTotal() {
00094 return firmsEntryAndExitTimeTotal;
00095 }
00096
00097 @WriteToFile
00098 public double getFirmsMutationTimeTotal() {
00099 return firmsMutationTimeTotal;
00100 }
00101
00102 @WriteToFile
00103 public double getPreparatoryStepTimePrePost() {
00104 return preparatoryStepTimePrePost;
00105 }
00106
00107 @WriteToFile
00108 public double getExchangeStepTimePrePost() {
00109 return exchangeStepTimePrePost;
00110 }
00111
00112 @WriteToFile
00113 public double gethouseholdsAdjustEmploymentTimePrePost() {
00114 return householdsAdjustEmploymentTimePrePost;
00115 }
00116
00117 @WriteToFile
00118 public double getFirmsAdjustWorkforceTimePrePost() {
00119 return firmsAdjustWorkforceTimePrePost;
00120 }
00121
00122 @WriteToFile
00123 public double getProductionTimePrePost() {
00124 return productionTimePrePost;
00125 }
00126
00127 @WriteToFile
00128 public double getConsumptionTimePrePost() {
00129 return consumptionTimePrePost;
00130 }
00131
00132 @WriteToFile
00133 public double getFirmAccountingTimePrePost() {
00134 return firmAccountingTimePrePost;
00135 }
00136
00137 @WriteToFile
00138 public double gethouseholdsAccountingTimePrePost() {
00139 return householdsAccountingTimePrePost;
00140 }
00141
00142 @WriteToFile
00143 public double getImportExportAccountingTimePrePost() {
00144 return importExportAccountingTimePrePost;
00145 }
00146
00147 @WriteToFile
00148 public double getFirmsBeliefUpdatingTimePrePost() {
00149 return firmsBeliefUpdatingTimePrePost;
00150 }
00151
00152 @WriteToFile
00153 public double getUpdateLaborProductivityTimePrePost() {
00154 return updateLaborProductivityTimePrePost;
00155 }
00156
00157 @WriteToFile
00158 public double getSettingInterestRateTimePrePost() {
00159 return settingInterestRateTimePrePost;
00160 }
00161
00162 @WriteToFile
00163 public double getFirmsCopyBehaviorTimePrePost() {
00164 return firmsCopyBehaviorTimePrePost;
00165 }
00166
00167 @WriteToFile
00168 public double getFirmsEntryAndExitTimePrePost() {
00169 return firmsEntryAndExitTimePrePost;
00170 }
00171
00172 @WriteToFile
00173 public double getFirmsMutationTimePrePost() {
00174 return firmsMutationTimePrePost;
00175 }
00176
00177 @WriteToFile
00178 public double beginOfPeriodTime() {
00179 return beginOfPeriodTime;
00180 }
00181
00182 @WriteToFile
00183 public double getEndOfPeriodTime() {
00184 return endOfPeriodTime;
00185 }
00186
00187 @WriteToFile
00188 public double getSumTimeTotal() {
00189 return sumTimeTotal;
00190 }
00191
00192 @WriteToFile
00193 public double getSumTimeThisPeriod() {
00194 return sumTimeThisPeriod;
00195 }
00196
00197 @WriteToFile
00198 public double getGeneticEvolutionOfTechnologiesTimeTotal() {
00199 return geneticEvolutionOfTechnologiesTimeTotal;
00200 }
00201
00202 @WriteToFile
00203 public double getGeneticEvolutionOfPricesTimeTotal() {
00204 return geneticEvolutionOfPricesTimeTotal;
00205 }
00206
00207 @WriteToFile
00208 public double getGeneticEvolutionOfTechnologiesTimePrePost() {
00209 return geneticEvolutionOfTechnologiesTimePrePost;
00210 }
00211
00212 @WriteToFile
00213 public double getGeneticEvolutionOfPricesTimePrePost() {
00214 return geneticEvolutionOfPricesTimePrePost;
00215 }
00216 }
00217
00218 public StepManagerWithProfiler(String pPacketName) {
00219 super(pPacketName);
00220 profilerActive = true;
00221 }
00222
00223 Probe probe = new StepManagerWithProfiler.Probe();
00224
00225
00226
00227 public double preparatoryStepTimeTotal;
00228 public double exchangeStepTimeTotal;
00229 public double householdsAdjustEmploymentTimeTotal;
00230 public double firmsAdjustWorkforceTimeTotal;
00231 public double productionTimeTotal;
00232 public double consumptionTimeTotal;
00233 public double firmAccountingTimeTotal;
00234 public double householdsAccountingTimeTotal;
00235 public double importExportAccountingTimeTotal;
00236 public double firmsBeliefUpdatingTimeTotal;
00237 public double updateLaborProductivityTimeTotal;
00238 public double settingInterestRateTimeTotal;
00239 public double firmsCopyBehaviorTimeTotal;
00240 public double firmsEntryAndExitTimeTotal;
00241 public double firmsMutationTimeTotal;
00242 public double geneticEvolutionOfTechnologiesTimeTotal;
00243 public double geneticEvolutionOfPricesTimeTotal;
00244
00245 public double preparatoryStepTimePrePost;
00246 public double exchangeStepTimePrePost;
00247 public double householdsAdjustEmploymentTimePrePost;
00248 public double firmsAdjustWorkforceTimePrePost;
00249 public double productionTimePrePost;
00250 public double consumptionTimePrePost;
00251 public double firmAccountingTimePrePost;
00252 public double householdsAccountingTimePrePost;
00253 public double importExportAccountingTimePrePost;
00254 public double firmsBeliefUpdatingTimePrePost;
00255 public double updateLaborProductivityTimePrePost;
00256 public double settingInterestRateTimePrePost;
00257 public double firmsCopyBehaviorTimePrePost;
00258 public double firmsEntryAndExitTimePrePost;
00259 public double firmsMutationTimePrePost;
00260 public double geneticEvolutionOfTechnologiesTimePrePost;
00261 public double geneticEvolutionOfPricesTimePrePost;
00262
00263 public double beginOfPeriodTime;
00264 public double endOfPeriodTime;
00265
00266 public double sumTimeTotal = 0d;
00267 public double sumTimeThisPeriod = 0d;
00268
00269 public StepManagerWithProfiler.Probe getProbe() {
00270 return probe;
00271 }
00272
00273 public void addToSum(double pTime) {
00274 sumTimeTotal += pTime;
00275 sumTimeThisPeriod += pTime;
00276 }
00277
00278 @Override
00279 public void reset() {
00280 super.reset();
00281 sumTimeTotal = 0d;
00282
00283 final Field[] lFields = this.getClass().getFields();
00284 for (final Field field : lFields) {
00285 try {
00286 field.set(this, 0);
00287 } catch (final IllegalArgumentException e) {
00288
00289 e.printStackTrace();
00290 } catch (final IllegalAccessException e) {
00291
00292 e.printStackTrace();
00293 }
00294 }
00295 }
00296
00297 @Override
00298 public void periodStart() {
00299 super.periodStart();
00300 sumTimeThisPeriod = 0d;
00301 }
00302 }
00303
00305
00307