here - Stefan-Marr.de
here - Stefan-Marr.de
here - Stefan-Marr.de
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