Evaluation tool suite

To measure the obtained memory gains when using Moclodash for cloning models, we made a complete evaluation tool suite.

Downloading the tool

Download links have been removed, now the evaluation tool must be compiled manually.

Java 1.7 required.

Using the tool

This CLI tool has three modes: mmgen, matgen and run.

Metamodel generation mode

The mode mmgen is used to randomly generate metamodels (ie ecore models).

$ ./cloning-benchmark mmgen
Listening for transport dt_socket at address: 35337
Invalid options: Missing required option(s) ['nbMetamodels', 'maxMutProp', 'outputFolder', 'maxProp', 'maxClasses']
Option (* = required)                Description                          
---------------------                -----------                          
* --maxClasses <Integer: natural>    The maximum number of classes of a   
                                       metamodel.                         
* --maxMutProp <Integer: natural>    The maximum number of mutable        
                                       properties of a metamodel.         
* --maxProp <Integer: natural>       The maximum number of properties of a
* --nbMetamodels <Integer: natural>  The number of metamodels to generate.
* --outputFolder <File: path>        The folder in which metamodels are   
                                       generated.    

Cloning material generation mode

The mode matgen is used to call Moclodash cloning material generator on a set of metamodels in order to generate an OSGi bundle ready for evaluation.

$ ./cloning-benchmark matgen
Listening for transport dt_socket at address: 60140
[INFO.] Starting cloning benchmark material generator.
[ERROR] Invalid options: Missing required option(s) ['metamodelsFolder', 'outputFile']
Option (* = required)               Description                        
---------------------               -----------                        
* --metamodelsFolder <File: path>   A folder containing ecore files to 
                                      process.                         
* --outputFile <File: path>         The OSGI jar bundle to create.     
--outputProjectFolder <File: path>  The folder in which all the code is
                                      generated, as a complete eclipse 
                                      project. NO SPACE CHARACTERS /!\.

Run mode

The mode run is used to run the actual evaluation process on an OSGi bundle previously generated (ie a set of metamodels).

$ ./cloning-benchmark run
Listening for transport dt_socket at address: 37191
[ERROR] Invalid options: Missing required option(s) ['nbtries', 'outputFile', 'benchmarkMetamodels', 'nbClones']
Option (* = required)                  Description                           
---------------------                  -----------                           
* --benchmarkMetamodels <File: path1,  OSGI bundles with all metamodels,     
  path2,...>                             created with the generator.         
--cloningOperators                     Cloning operators to use.             
--dumpsFolder <File: path>             A folder in which memory dumps will be
                                         written.                            
--keepDumps                            To keep memory dumps.                 
--metamodels                           Specific metamodels to use.           
* --nbClones <Integer: 1,10,100...>    Series of numbers of clones to create.
* --nbtries <Integer>                  The number of tries, for better       
                                         time/performance results            
* --outputFile <File: path>            The CSV file to write.