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.

8.5. Assessment of Performance Characteristics<br />

ment of the OMOP enabled. Only if that is the case, are additional checks and<br />

a potential invocation of the corresponding intercession handler performed.<br />

Thus, for the given benchmarks, the overhead consists of the additional check<br />

and the consequence of the additional co<strong>de</strong>, which may cause cache misses.<br />

8.5.3. Customization Constant Assessment<br />

Context and Rationale As discussed in Sec. 7.2.1, the RoarVM+OMOP uses<br />

an optimization to avoid invoking a domain’s intercession handler when it<br />

has not been customized. Originally, the optimization was ad<strong>de</strong>d to ease<br />

<strong>de</strong>bugging and reduce noise introduced by executing standard intercession<br />

handlers, which only implement standard language semantics. However, this<br />

optimization is not without drawbacks because it introduces a number of<br />

memory accesses and tests for all byteco<strong>de</strong>s that require modifications for<br />

the OMOP. The co<strong>de</strong> that runs unenforced most likely incurs only a minor<br />

performance penalty. However, the effect on enforced execution is likely to<br />

be more pronounced. Specifically, co<strong>de</strong> that runs in the context of domains<br />

that customize a majority of the intercession handlers is likely to experience<br />

overhead caused by additional checks. On the other hand, this optimization<br />

should yield performance benefits for co<strong>de</strong> that runs in the context of domains<br />

that customize only a limited subset of the intercession handlers.<br />

In or<strong>de</strong>r to assess the performance impact, a variant of RoarVM+OMOP<br />

(opt) is used that performs no additional tests but invokes the intercession<br />

handlers unconditionally. This variant with full intercession activation is referred<br />

to as RoarVM+OMOP (full).<br />

Overhead during Unenforced Execution Fig. 8.8 24 <strong>de</strong>picts the results measured<br />

for the kernel benchmarks for unenforced execution. Results vary from<br />

small performance benefits of ca. 3% to slowdowns of up to 4%. The average<br />

slowdown is 1%. Changes in performance are solely caused by the existence<br />

of additional co<strong>de</strong> in the byteco<strong>de</strong>’s implementation. Since the experiment<br />

used unenforced execution, this additional co<strong>de</strong> was not executed. In conclusion,<br />

all measured effects are either caused by increased co<strong>de</strong> size, triggering<br />

certain compiler heuristics, or other similar effects. Since the results are mixed<br />

and on average only show a difference of 1%, the overall effect on unenforced<br />

execution is negligible.<br />

24 The beanplot library of R forced a linear scale for this graph.<br />

223

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

Saved successfully!

Ooh no, something went wrong!