Hello,
I recently discovered ScalaMeter and I have to say that I am impressed by it! Thank you all that contributed to it, you did amazing work!
I need some help with configuring the code correctly for the DsvReporter. I spend hours fiddling with the reporters and the only one I had any luck with was the LoggingReporter. Both DsvReporter and HtmlReporter throw the same exception regardless of the configuration options I tried. Below is my configuration and the exception that is raised:
override lazy val executor = SeparateJvmsExecutor
new Executor.Warmer.Default,
Aggregator.complete(Aggregator.average),
new Measurer.Default
)
val persistor = new SerializationPersistor
// I also tried: override lazy val reporter = DsvReporter(',') with exactly the same result
def reporter: Reporter = Reporter.Composite(
new RegressionReporter(
RegressionReporter.Tester.Accepter(),
RegressionReporter.Historian.Complete() ),
DsvReporter(','))
Output from the console:
=====================
Sampling 1 measurements in separate JVM invocation 0 - MediaAPIWrite.create_video, Test-0.
Starting warmup.
[GC 19329K->5062K(76416K), 0.0206830 secs]
0. warmup run running time: 38936.049416 (covNoGC: NaN, covGC: NaN)
Ending warmup.
measurements: 4300.285917
measurements: 10264.786127
measurements: 4597.121416
measurements: 34880.456616
measurements: 13195.795346
measurements: 57764.358827
Obtained measurements:
filename -> /media/DATA/media/360-24p-wide.mp4: 4300.286
filename -> /media/DATA/media/480-25p.mp4: 10264.786
filename -> /media/DATA/media/960-30p.mp4: 4597.121
filename -> /media/DATA/media/1024-30p.mp4: 34880.457
filename -> /media/DATA/media/720-30p.mp4: 13195.795
filename -> /media/DATA/media/1080-24p.mp4: 57764.359
[32m- MediaAPIWrite.create_video.Test-0 measurements: [0m
[32m:::Summary of regression test results - Accepter()::: [0m
[32mTest group: MediaAPIWrite.create_video [0m
[32m- MediaAPIWrite.create_video.Test-0 measurements: [0m
[32m Summary: 1 tests passed, 0 tests failed.
Exception in thread "main" org.apache.commons.math3.exception.NotStrictlyPositiveException: degrees of freedom (0)
at org.apache.commons.math3.distribution.TDistribution.<init>(TDistribution.java:59)
at org.apache.commons.math3.distribution.TDistribution.<init>(TDistribution.java:74)
at org.scalameter.utils.Statistics$.org$scalameter$utils$Statistics$$qt(Statistics.scala:188)
at org.scalameter.utils.Statistics$.confidenceInterval(Statistics.scala:41)
at org.scalameter.reporting.DsvReporter$$anonfun$org$scalameter$reporting$DsvReporter$$output$1$1.apply(DsvReporter.scala:67)
at org.scalameter.reporting.DsvReporter$$anonfun$org$scalameter$reporting$DsvReporter$$output$1$1.apply(DsvReporter.scala:56)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at
org.scalameter.reporting.DsvReporter.org$scalameter$reporting$DsvReporter$$output$1(DsvReporter.scala:56)
at org.scalameter.reporting.DsvReporter$$anonfun$org$scalameter$reporting$DsvReporter$$reportCurve$1$1.apply(DsvReporter.scala:81)
at org.scalameter.reporting.DsvReporter$$anonfun$org$scalameter$reporting$DsvReporter$$reportCurve$1$1.apply(DsvReporter.scala:81)
at scala.collection.immutable.List.foreach(List.scala:318)
at
org.scalameter.reporting.DsvReporter.org$scalameter$reporting$DsvReporter$$reportCurve$1(DsvReporter.scala:81)
at org.scalameter.reporting.DsvReporter$$anonfun$report$1.apply(DsvReporter.scala:87)
at org.scalameter.reporting.DsvReporter$$anonfun$report$1.apply(DsvReporter.scala:87)
at org.scalameter.utils.Tree$$anonfun$foreach$2$$anonfun$apply$1.apply(Tree.scala:13)
at org.scalameter.utils.Tree$$anonfun$foreach$2$$anonfun$apply$1.apply(Tree.scala:13)
at org.scalameter.utils.Tree$$anonfun$foreach$1.apply(Tree.scala:12)
at scala.collection.immutable.List.foreach(List.scala:318)
at org.scalameter.utils.Tree.foreach(Tree.scala:12)
at org.scalameter.utils.Tree$$anonfun$foreach$2.apply(Tree.scala:13)
at org.scalameter.utils.Tree$$anonfun$foreach$2.apply(Tree.scala:13)
at scala.collection.immutable.List.foreach(List.scala:318)
at org.scalameter.utils.Tree.foreach(Tree.scala:13)
at org.scalameter.utils.Tree$$anonfun$foreach$2.apply(Tree.scala:13)
at org.scalameter.utils.Tree$$anonfun$foreach$2.apply(Tree.scala:13)
at scala.collection.immutable.List.foreach(List.scala:318)
at org.scalameter.utils.Tree.foreach(Tree.scala:13)
at org.scalameter.reporting.DsvReporter.report(DsvReporter.scala:87)
at org.scalameter.Reporter$Composite$$anonfun$1.apply(Reporter.scala:25)
at org.scalameter.Reporter$Composite$$anonfun$1.apply(Reporter.scala:25)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at org.scalameter.Reporter$Composite.report(Reporter.scala:25)
at org.scalameter.PerformanceTest$Initialization$class.executeTests(PerformanceTest.scala:47)
at org.scalameter.PerformanceTest.executeTests(PerformanceTest.scala:10)
at org.scalameter.PerformanceTest$$anonfun$1.apply$mcZ$sp(PerformanceTest.scala:15)
at org.scalameter.PerformanceTest$$anonfun$1.apply(PerformanceTest.scala:15)
at org.scalameter.PerformanceTest$$anonfun$1.apply(PerformanceTest.scala:15)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.scalameter.PerformanceTest.main(PerformanceTest.scala:14)
Thank you in advance for your help!
Florin