diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..4900083f8d6c6508cec16d8ff70e0cf0749cab67 --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,3 @@ +output +tmp +crash.log diff --git a/site/content/doc/benchmarking/index.md b/site/content/doc/benchmarking/index.md deleted file mode 100644 index 1e8512262e03ee157968e958cd116c425cdebb87..0000000000000000000000000000000000000000 --- a/site/content/doc/benchmarking/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Benchmarking ---- - - -Running the evaluation -======= - -Coming soon. diff --git a/site/content/doc/evaluation/index.md b/site/content/doc/evaluation/index.md new file mode 100644 index 0000000000000000000000000000000000000000..756e6329f116f4b87624f9f771cfe301ca3b157c --- /dev/null +++ b/site/content/doc/evaluation/index.md @@ -0,0 +1,32 @@ +--- +title: Running the evaluation +--- + + +Running the evaluation +======= + +## Bash scripts + +We wrote bash scripts to simplify the run of the evaluation. They are available in the folder evaluation-scripts of the [tool suite](../tools/evaluation). + +* generate-all generates 10 OSGi bundles each with the java code for 10 generated metamodels +* run-all takes generated OSGi bundle as arguments, and run the evaluation for both 1 clone and 1000 clones +* plot-all takes generated CSV files as arguments, and created many plots to visualize the results + +They can be easily run in a linux environement, but also in a Windows environment using [win-bash](http://win-bash.sourceforge.net/). + +## Running + + cd /path/to/evaluation-scripts + ./generate-all + +A folder benchmarktool-workingdir is created, in which will be created 10 OSGi bundles named bundle1.jar, bundle2.jar, etc. + + ./run-all benchmarktool-workingdir/*.jar + +The evaluation starts, and eventually creates CSV files in benchmarktool-workingdir. + + ./plot-all benchmarktool-workingdir/*.csv + +[R](http://www.r-project.org/) is called to plot the data, and PDF files are created in benchmarktool-workingdir. diff --git a/site/content/doc/getting-started/index.md b/site/content/doc/getting-started/index.md index c7425bbb30ae6f2028c4c99272ac1c0eb4787c57..3846f178b92535016074b7cc71a7b2e63b9532b8 100644 --- a/site/content/doc/getting-started/index.md +++ b/site/content/doc/getting-started/index.md @@ -41,7 +41,7 @@ Using the cloning strategies ----- In this second part we use the provided API to clone models using the different strategies. Here is a sample of code that creates a model using the same metamodel as previsously, and then clones it using the four cloning strategies: -
+ #!java /* Creating a model */ @@ -83,4 +83,3 @@ In this second part we use the provided API to clone models using the different Cloner shareAllCloner = new ClonerImpl(MyMMShareAllCloningMaterial.getInstance()); ResourceSet clone4 = shareAllCloner.clone(mymodel, "shareAlldeepClones"); -
diff --git a/site/content/pygments.css b/site/content/pygments.css index 210d4d2ab1e62187558e744d7e2ed3d4fed711de..4c5dab072db12e41201480dafb4e182708449d9d 100644 --- a/site/content/pygments.css +++ b/site/content/pygments.css @@ -1,4 +1,6 @@ -/*code { background: #f8f8f8; }*/ +span { font-family: monospace; } +pre { display: block; background: #f8f8f8; } +code { background: #f8f8f8; font-family: monospace; } code .hll { background-color: #ffffcc } code .c { color: #8f5902; font-style: italic } /* Comment */ code .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ diff --git a/site/content/stylesheet.css b/site/content/stylesheet.css index 7d8c8ac97db8428ed613982170b95d21f4a33ce8..6b489312a808b901b91b4d531f95f66b48d5fb76 100644 --- a/site/content/stylesheet.css +++ b/site/content/stylesheet.css @@ -1,5 +1,4 @@ * { - margin: 0; padding: 0; font-family: Georgia, Palatino, serif; @@ -28,7 +27,8 @@ a:hover { top: 40px; left: 280px; - width: 500px; + width: 1000px; + padding-bottom: 90px; } #main h1 { diff --git a/site/content/tools/evaluation/index.md b/site/content/tools/evaluation/index.md index 7a9206fa5e1f872f033e583575a97999d437f189..73f1592595ff61877eb282d67c699c4802685a2a 100644 --- a/site/content/tools/evaluation/index.md +++ b/site/content/tools/evaluation/index.md @@ -6,6 +6,10 @@ title: Evaluation tool suite 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 + You can download the latest build of the evaluation tool suite at [this page](https://ci.inria.fr/moclodash/job/moclodash-evaluation/lastSuccessfulBuild/). Five versions are available: @@ -15,3 +19,68 @@ Five versions are available: * Macos x86_64 * Windows x86 * Windows x86_64 + +Note that this tool suite contains all the required dependencies, including the moclodash plugins themselves. Thus, you don't have to download them manually to run the evaluation. + +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 The maximum number of classes of a + metamodel. + * --maxMutProp The maximum number of mutable + properties of a metamodel. + * --maxProp The maximum number of properties of a + * --nbMetamodels The number of metamodels to generate. + * --outputFolder 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 A folder containing ecore files to + process. + * --outputFile The OSGI jar bundle to create. + --outputProjectFolder 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 created with the generator. + --cloningOperators Cloning operators to use. + --dumpsFolder A folder in which memory dumps will be + written. + --keepDumps To keep memory dumps. + --metamodels Specific metamodels to use. + * --nbClones Series of numbers of clones to create. + * --nbtries The number of tries, for better + time/performance results + * --outputFile The CSV file to write. diff --git a/site/content/tools/evaluation/metamodels.zip b/site/content/tools/evaluation/metamodels.zip new file mode 100644 index 0000000000000000000000000000000000000000..4ba6564f0c1ee6120fceaab9a5a4990a6ef353ec Binary files /dev/null and b/site/content/tools/evaluation/metamodels.zip differ diff --git a/site/layouts/default.html b/site/layouts/default.html index 19ffac5f4d778f7df40df4dc2901fb236c05ec96..a32267ead8675f6941dfe6f1e1e976c68599f071 100644 --- a/site/layouts/default.html +++ b/site/layouts/default.html @@ -32,8 +32,8 @@

Documentation