05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8. Evaluation: Performance<br />

1.4<br />

1.3<br />

1.2<br />

1.1<br />

1.0<br />

Binary Trees<br />

Chameneos<br />

Fannkuch<br />

Fasta<br />

NBody<br />

Compiler<br />

Slopstone<br />

Smopstone<br />

Runtime Ratio, normalized to RoarVM (opt)<br />

lower is better<br />

RoarVM+OMOP (opt)<br />

RoarVM (opt)<br />

Figure 8.7.: In<strong>here</strong>nt Overhead: Comparing RoarVM (opt) with RoarVM+OMOP<br />

(opt) to assess the in<strong>here</strong>nt overhead of OMOP support on the execution performance.<br />

The benchmarks do not utilize the OMOP, and thus, they expose that<br />

changes to the interpreter cause an average overhead of 17% on interpretation.<br />

formance impact of the memory overhead has not been measured, but it is<br />

likely that the overhead significantly <strong>de</strong>pends on average object size, and has<br />

an impact on GC times.<br />

RoarVM+OMOP For the RoarVM implementation of the OMOP, the situation<br />

is different. While it also suffers from memory overhead per object for<br />

the additional object hea<strong>de</strong>r that represents the owner (cf. Sec. 7.2.1), it also introduces<br />

changes that have a direct effect on the execution performance. The<br />

co<strong>de</strong> path for unenforced execution through the interpreter now contains additional<br />

checks, which have an in<strong>here</strong>nt impact on overall performance, also<br />

for unenforced execution.<br />

Fig. 8.7 23 shows that the overhead ranges from minimal 7% up to 31%. The<br />

average runtime overhead of the OMOP support is about 17%. The overhead<br />

is explained by the additional co<strong>de</strong> on the fast path of the co<strong>de</strong>. All byteco<strong>de</strong>s<br />

that perform operations relevant for the OMOP apply an additional test to the<br />

interpreter object which checks whether execution is performed with enforce-<br />

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

222

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

Saved successfully!

Ooh no, something went wrong!