public PerformanceMeasurements(string version, string description, PerformanceMeasurementConfigurationParameters parameters) { ValidateArguments(version, description); FrameworkVersion = version; FrameworkDescription = description; SimulationDuration = parameters.SimulationDuration; FrameCount = parameters.LogCount; HistogramBins = parameters.HistogramBins; RealizationTimes = new DynamicHistogram(HistogramBins); SolverSteps = new DynamicHistogram[FrameCount]; StepTicks = new DynamicHistogram[FrameCount]; ReactionFirings = new DynamicHistogram[FrameCount]; for (int iFrame = 0; iFrame < FrameCount; iFrame++) { SolverSteps[iFrame] = new DynamicHistogram(HistogramBins); StepTicks[iFrame] = new DynamicHistogram(HistogramBins); ReactionFirings[iFrame] = new DynamicHistogram(HistogramBins); } MeasurementTimeTicks = 0; _stopwatch = new Stopwatch(); }
protected static void ValidateArguments(PerformanceMeasurements measurements, PerformanceMeasurementConfigurationParameters configuration) { if (measurements == null) { throw new ArgumentNullException("measurements"); } if (configuration == null) { throw new ArgumentNullException("configuration"); } }
protected static TextWriter GetTextWriterForDestination(PerformanceMeasurementConfigurationParameters configuration) { TextWriter textWriter; if (configuration.CompressOutput) { var fs = File.Open(configuration.WorkingFilename, FileMode.OpenOrCreate, FileAccess.Write); var gz = new GZipStream(fs, CompressionMode.Compress); textWriter = new StreamWriter(gz); } else { textWriter = new StreamWriter(configuration.WorkingFilename); } return(textWriter); }
public static IPerformanceDataWriter GetDataWriter(PerformanceMeasurementConfigurationParameters configuration) { IPerformanceDataWriter dataWriter; switch (configuration.LogFileFormat) { case PerformanceMeasurementConfigurationParameters.LoggingFileFormat.JSON: dataWriter = new PerformanceDataWriterJson(); break; case PerformanceMeasurementConfigurationParameters.LoggingFileFormat.CSV: dataWriter = new PerformanceDataWriterCsv(); break; default: throw new ArgumentException("Unknown log format in performance measurement configuration."); } return(dataWriter); }
public void WritePerformanceMeasurements(PerformanceMeasurements measurements, PerformanceMeasurementConfigurationParameters configuration) { ValidateArguments(measurements, configuration); using (TextWriter textWriter = GetTextWriterForDestination(configuration)) { SerializeMeasurementsToStream(measurements, textWriter); } }