Flip Performance Guide

Results

This chapter shows the optimisation results with bar charts for various operations.

Set up

The code for each iteration of the model is implemented in different files named with by the iteration number of the model, starting from 1.

Then, PerfGuide will execute every of them and collect statistics, and produce the svg bar charts for this documentation.

flip/
   test/
      perf/
         PerfGuide.cpp
         PerfGuide.h
         PerfGuideModel1.cpp
         PerfGuideModel1.h
         PerfGuideModel2.cpp
         PerfGuideModel2.h
         PerfGuideModel3.cpp
         PerfGuideModel3.h
         PerfGuideModel4.cpp
         PerfGuideModel4.h
         PerfGuideModel5.cpp
         PerfGuideModel5.h

The machine on which those tests are run is quite irrelevant, as we want to have a global idea of the performance increase when using one model over an other.

The following section describes the result for each functions operating on the model, with a short introduction to explain what the function does.

The scope defines the number of factories, jobs and number of commands.

For example :

f16/j1000/c1/Model4

Means 16, factories, 1000 jobs per factory and 1 command per jobs, evaluating Model4.

create

This function fills a document and then commit.

delete_factory

This function deletes one factory and then commit.

undo_factory

This function undoes the "delete one factory" action and then commit.

delete_jobs

This function deletes at most 70 jobs and then commit.

undo_jobs

This function undoes the "deletes at most 70 jobs" action and then commit.

move_jobs

This function moves every job by one unit of time and then commit.

split_jobs

This function splits every job in two and then commit.

undo_split

This function undoes the "splits every job in two" action and then commit.

add_command

This function add one command to every job, and cut through overlapping commands.

write_doc

This function serializes the full document in memory.

delete_doc

This function deletes the document.

read_doc

This function deserializes the full document from memory.