05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.4. Comparing Implementation Size<br />

cisely track all read and write operations of object fields and globals. Consequently,<br />

this implementation inclu<strong>de</strong>s the necessary AST transformations and<br />

compiler adaptations.<br />

OMOP-based Implementation The implementation of LRSTM based on the<br />

OMOP customizes the relevant intercession handlers on the domain object to<br />

track all state access. Lst. 6.5 in Sec. 6.2.2 shows the simplified STM domain<br />

<strong>de</strong>finition. Even though the implementation approaches are different, both<br />

implementations have the same features and guarantees. Thus, the ad hoc<br />

and the OMOP-based implementation are functionally equivalent.<br />

General Comparison Note that comparing the ad hoc LRSTM implementation<br />

and the one based on the OMOP is not necessarily fair, since this comparison<br />

does not consi<strong>de</strong>r the complexity of realizing the OMOP itself. Sec. 7.1<br />

discusses an AST-transformation-based implementation of the OMOP. Since<br />

both AST-transformation-based implementations are very similar, this evaluation<br />

also compares them to give a better impression of how the implementation<br />

sizes differ between the ad hoc and the OMOP-based implementation.<br />

Direct comparison of the ad hoc and OMOP-based LRSTM implementation<br />

<strong>de</strong>monstrates the expected benefit of relying on the un<strong>de</strong>rlying abstraction.<br />

The ad hoc implementation consists of 8 classes and 148 methods, which<br />

account for 990 LOC and 2688 byteco<strong>de</strong>s. The OMOP-based implementation<br />

consists of 7 classes and 71 methods, which accounts for 262 LOC and 619<br />

byteco<strong>de</strong>s. Thus, it is roughly a quarter the size of the ad hoc implementation.<br />

However, these results are to be expected because the ad hoc implementation<br />

needs to replicate the same functionality the OMOP offers for managed<br />

state and managed execution of primitives.<br />

Detailed Comparision Tab. 6.5 <strong>de</strong>tails the co<strong>de</strong> size of the different parts of<br />

the LRSTM implementation to paint a more <strong>de</strong>tailed picture of the size of the<br />

involved components. While these numbers indicate a significant benefit for<br />

the OMOP-based implementation, the <strong>de</strong>tailed numbers point out a number<br />

of differences.<br />

The STM core routines implement the basic STM functionality and data<br />

structures. For the OMOP-based implementation, this inclu<strong>de</strong>s the STM domain<br />

class, which implements state access tracking. The STM domain class<br />

accounts for a significant part of the additional methods. Besi<strong>de</strong>s minor adaptations,<br />

the remaining core routines remain unchanged.<br />

165

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!