Version: 0.1  April 2001
Performance testing of XML based Markup Languages
Version: 0.4  June 2001
Authors: 
   Anders W. Tell   Financial Toolsmiths AB

Content

Generic model 
Performance testing of XML based markup languages is in this document defined  as a set of measurements taken from transformation processes which operates on  representations (instances) of an information model (see XML Information Set) and produces a  new representation.
 
[representation] -> [transformation process] -> [representation]


The representations and the transformation processes are characterized by a number of properties and each performance measurement is valid with respect to a specific set of properties.

A baseline measurement is a measurement taken with respect to a specific set properties which other measurement are related to.  Usually the baseline set of properties are selected in order to create, what is believed to be one of the fastest possible measurement.
Baselines are used to minimize the effect of machine configurations and create a relative measurement which easier could be used to compare measurement from different machines.
 
Representations 
NOTE:  Properties are name-value pairs. Property names are shown  in  BOLD and its possible values are enclosed on quotes.
Boolean properties are however shown with their name in quotes with implicit true/false as possible values.

Stream

This representation corresponds to a serialization of an instance.

Properties:

Tree

An instance is represented as in-memory tree which is traversable.

Properties:

Events

An instance is represented as sequence of events, usually defined by an API and a set of sequence rules.

Properties:

Transformation 

Properties:

Measurements 

Duration

Mesured as the time to complete a transformation.

CodeSize

Measured as the size of the "binary" codebase of the piece of software which performs the transformation.

size

Measured as the size of resulting representation. Symmetry
The symmetry measurement is the relation between a transformation measureement and the measurement from the reverse transformation.
An example:  time of and stream -> event transformation divided by the time of an event -> stream transformation.

Memory
The memory size measurement is measured as the difference between the size of runtime memory before and after the transformation.

General rules:

Basic Transformation processes 
The following list corresponds to 9 basic transformation processes. For each process a baseline is defined.

NOTE: Absence of a baseline property name means that the value is either empty or false

1. Stream -> Event

Baseline properties:

2. Stream -> Tree

Baseline properties:

3. Event -> Tree

Baseline properties:

4. Event -> Stream

Baseline properties:

5. Tree -> Event

Baseline properties:

6. Tree -> Stream

Baseline properties:

7. Stream -> Stream

Baseline properties:

8. Tree -> Tree

Baseline properties:

9. Event -> Event

Baseline properties:


 
Testing 
A proof of concept implementation have been create, see the files section for bml-x.x.tar.gx file.
The JUnit testcases are found in the 'test' directory.

TODO: create testcode/ testcases based on unit testing and the code package JUnit.
.