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"