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 />

The goal of the applied optimizations is to ensure that the performance overhead<br />

introduced by the OMOP is not hid<strong>de</strong>n by the interpretation overhead<br />

and other performance reducing factors. The main assumption <strong>here</strong> is that<br />

the OMOP introduces a constant amount of time as overhead for each of the<br />

adapted operations. T<strong>here</strong>fore, a reduction of the overall execution time more<br />

clearly exposes the introduced constant overhead per operation.<br />

The RoarVM (opt) configuration does not support parallel execution, drops<br />

the use of the object table, comes without garbage collection, and uses direct<br />

access to important globals such as the interpreter object, and the memory<br />

system object. While these settings might sound like a strong restriction and<br />

an artificial setup, they are close to the settings for a experimental version of<br />

the RoarVM that supports parallel execution. One insight during the work<br />

on the RoarVM was that access to thread-local variables carries a significant<br />

performance penalty compared to direct access to global variables in a sequential<br />

version. Hence, we implemented a variant of the RoarVM that uses<br />

processes instead of threads to enable the utilization of multiple cores. This<br />

variant does not pay the penalty of thread-local variables and can benefit from<br />

compiler optimizations for statically known global variables. Thus, using direct<br />

access to global variables is one optimization applied to the RoarVM (opt).<br />

By avoiding the overhead of the object table, it gains additional performance.<br />

While the current GC implementation is not adapted to work without an object<br />

table, supporting this setting is relatively straightforward and common<br />

in other VMs. T<strong>here</strong>fore, the configuration of RoarVM (opt) is not an artificial<br />

one, but is based on reasonable assumptions and can be ma<strong>de</strong> to support<br />

parallel execution. Furthermore, by improving overall performance any additional<br />

constant overhead introduced by the OMOP can be <strong>de</strong>termined more<br />

clearly.<br />

8.1.4. Generalizability and Restrictions of Results<br />

Generalizability to Application Performance Benchmarks mo<strong>de</strong>l only certain<br />

sets of behaviors and do not necessarily correspond to actual applications.<br />

Thus, their generalizability is typically restricted. For these reasons Blackburn<br />

et al. [2006] propose a suite of actual applications as benchmarks for JVMs.<br />

Since no such benchmark suite exists for Smalltalk, the evaluation relies on<br />

microbenchmarks and kernel benchmarks. T<strong>here</strong>fore, benchmarks can only<br />

give an indication of the or<strong>de</strong>r of magnitu<strong>de</strong> of performance of applications,<br />

precluding predictions about the performance of concrete applications.<br />

206

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

Saved successfully!

Ooh no, something went wrong!