Released ScalaMeter 0.7 for Scala 2.10 and 2.11

  26.08.2015., poster: Alex

ScalaMeter 0.7 for Scala 2.10 and Scala 2.11 has just been released!

This ScalaMeter release is due to a hugely successful Google Summer of Code 2015 project – the star of the release is Krzysztof Janosz, whose valiant efforts brought ScalaMeter to a new level.

Also, thanks to all the committers and people who contributed in any way, including submitting valuable feedback. We were able to follow up on some of the suggestions in the 0.7 release, and we plan to continue to do so in the future. Still, we invite you to help by contributing patches, bugfixes, new features, and extensions!

New Features

Changes

  • Make GZIPJSONSerializationPersistor default for regression testing.
  • Rename PerformanceTest to Bench.
  • The Bench class (formerly PerformanceTest) now takes a type parameter that describes the type of the results it produces. For most benchmark types, this is just Double, but some benchmark types measure running time profiles or method invocation counts and have different results. The Reporter and Measurer must have the same type as the benchmark itself.
  • Change default directory for the benchmark results to target/benchmarks.

Deprecated

  • Move and mark as deprecated JavaPerformanceTest and its components to org.scalameter.deprecatedjapi.
  • Add compatibility type alias PerformanceTest for org.scalameter.Bench in api package.
  • Deprecate include[BenchClass] statement in favor of include(new BenchTrait {}) (the BenchTrait is a normal benchmark, but must be implemented in a Scala trait).

Fixed

  • Fix lack of default reportDir when running benchmarks using main method.
  • Improve release process.

You can add ScalaMeter as an SBT dependency at Sonatype OSS for Scala 2.10 projects:

<dependency>
  <groupId>com.storm-enroute</groupId>
  <artifactId>scalameter_2.10</artifactId>
  <version>0.7</version>
</dependency>

Or, for Scala 2.11 projects:

<dependency>
  <groupId>com.storm-enroute</groupId>
  <artifactId>scalameter_2.11</artifactId>
  <version>0.7</version>
</dependency>

Or, in SBT, just:

resolvers += "Sonatype OSS Snapshots" at
  "https://oss.sonatype.org/content/repositories/releases"

libraryDependencies += "com.storm-enroute" %% "scalameter" % "0.7"

To only use the inline benchmarking features, use the scalameter-core module:

libraryDependencies += "com.storm-enroute" %% "scalameter-core" % "0.7"


Released ScalaMeter 0.6 for Scala 2.10 and 2.11

  16.07.2014., poster: Alex

ScalaMeter 0.6 for Scala 2.10 and Scala 2.11 has just been released!

New features and fixes:

  • the core module introduces inline benchmarking to test performance or memory footprint in a running app – more information

      import org.scalameter._
      val time = measure {
        for (i <- 0 until 100000) yield i
      }
      println(s"Total time: $time")
    
  • you can now use the Context constructor to factor out any configurations that you use repeatedly:

      val opts = Context(
        exec.benchRuns -> 40
      )
    
      measure method "map" config(opts) in {
        // ...
      }
    

You can reuse the same opts in different configuration groups or using blocks.

  • typed keys for the config block - now you can’t specify an incorrect configuration value for a specific key – thanks, Alexey Romanov!
  • verbose mode is now on by default
  • new predefined test configurations
  • the Scala binding for the JFreeChart is now used – thanks, Christian Krause!
  • a lot of bug fixes and better error messages

Thanks to all the committers and people who contributed in any way.

Note: the organization name has changed, see below.

You can add it as an SBT dependency at Sonatype OSS for Scala 2.10 projects:

<dependency>
  <groupId>com.storm-enroute</groupId>
  <artifactId>scalameter_2.10</artifactId>
  <version>0.6</version>
</dependency>

Or, for Scala 2.11 projects:

<dependency>
  <groupId>com.storm-enroute</groupId>
  <artifactId>scalameter_2.11</artifactId>
  <version>0.6</version>
</dependency>

Or, in SBT, just:

resolvers += "Sonatype OSS Snapshots" at
  "https://oss.sonatype.org/content/repositories/releases"

libraryDependencies += "com.storm-enroute" %% "scalameter" % "0.6"

To only use the inline benchmarking features, use the scalameter-core module:

libraryDependencies += "com.storm-enroute" %% "scalameter-core" % "0.6"


Released ScalaMeter 0.5-M2 for Scala 2.10 and 2.11

  23.04.2014., poster: Alex

ScalaMeter 0.5-M2 for Scala 2.10 and Scala 2.11 has just been released!

New features and fixes:

  • you can now use the Context constructor to factor out any configurations that you use repeatedly:

      val opts = Context(
        exec.benchRuns -> 40
      )
    
      measure method "map" config(opts) in {
        // ...
      }
    

You can reuse the same opts in different configuration groups or using blocks.

  • typed keys for the config block - now you can’t specify an incorrect configuration value for a specific key – thanks, Alexey Romanov!
  • verbose mode is now on by default
  • new predefined test configurations
  • the Scala binding for the JFreeChart is now used – thanks, Christian Krause!
  • a lot of bug fixes and better error messages

Thanks to all the committers and people who contributed in any way.

You can add it as an SBT dependency at Sonatype OSS for Scala 2.10 projects:

<dependency>
  <groupId>com.github.axel22</groupId>
  <artifactId>scalameter_2.10</artifactId>
  <version>0.5-M2</version>
</dependency>

Or, for Scala 2.11 projects:

<dependency>
  <groupId>com.github.axel22</groupId>
  <artifactId>scalameter_2.11</artifactId>
  <version>0.5-M2</version>
</dependency>

Or, in SBT, just:

resolvers += "Sonatype OSS Snapshots" at
  "https://oss.sonatype.org/content/repositories/snapshots"

libraryDependencies += "com.github.axel22" %% "scalameter" % "0.5-M2"


Skills Matter Podcast

  05.12.2012., poster: Alex

ScalaMeter was presented on Scala eXchange 2012 – to learn more about why do we do performance testing, why is it hard and how ScalaMeter can help, you can see the podcast on the Skills Matter website.



Released ScalaMeter 0.2 for Scala 2.10.0-RC2

  28.11.2012., poster: Alex

ScalaMeter 0.2 for Scala 2.10.0-RC2 has just been released!

You can add it as an SBT dependency at Sonatype OSS.

<dependency>
  <groupId>com.github.axel22</groupId>
  <artifactId>scalameter_2.10</artifactId>
  <version>0.2</version>
</dependency>

Or, in SBT:

resolvers += "Sonatype OSS Snapshots" at
  "https://oss.sonatype.org/content/repositories/snapshots"

libraryDependencies += "com.github.axel22" %% "scalameter" % "0.2"