Class Harness

java.lang.Object
com.thoughtworks.xstream.tools.benchmark.Harness

public class Harness extends Object
Deprecated.
As of 1.4.9 use JMH instead
A simple harness for running benchmarks over object serialization products.

There are three dimensions that can be added:

  • Product (e.g. DOM, SAX, XPP...)
  • Metric (e.g. time taken, memory usage, output size...)
  • Target (e.g. a small object, large object, list of objects...)

The Harness will then across every permutation of these (in order of product, metric, target), and write the results to a Reporter.

Example usage

Harness harness = new Harness();

// Compare speed of serialization/deserialization metrics...
harness.addMetric(new SerializationSpeedMetric());
harness.addMetric(new DeserializationSpeedMetric());

// Using a simple String and a JTree instance...
harness.addTarget(new StringTarget());
harness.addTarget(new JTreeTarget());

// Across XStream with different XML drivers.
harness.addProduct(new XStreamDom());
harness.addProduct(new XStreamXpp());
harness.addProduct(new XStreamSax());

// Now do it, and report the results as text to the console.
harness.run(new TextReporter());
  • Field Details

    • products

      private List products
      Deprecated.
    • targets

      private List targets
      Deprecated.
    • metrics

      private List metrics
      Deprecated.
  • Constructor Details

    • Harness

      public Harness()
      Deprecated.
  • Method Details

    • addProduct

      public void addProduct(Product product)
      Deprecated.
    • addTarget

      public void addTarget(Target target)
      Deprecated.
    • addMetric

      public void addMetric(Metric metric)
      Deprecated.
    • run

      public void run(Reporter reporter)
      Deprecated.
    • run

      private void run(Reporter reporter, Metric metric, Target target, Product product)
      Deprecated.