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

ceptable in situations w<strong>here</strong> the OMOP significantly simplifies the implementation<br />

of concurrent programming concepts or a VM-based solution is not yet<br />

available.<br />

8.5. Assessment of Performance Characteristics<br />

In or<strong>de</strong>r to un<strong>de</strong>rstand the performance characteristics of the OMOP implementations,<br />

different aspects of the changed execution mo<strong>de</strong>l need to be evaluated.<br />

Thus, the overhead of executing a program in the context of the OMOP<br />

is evaluated by measuring the cost of reifying operations, i. e., executing them<br />

reflectively. Furthermore, the experiments measure the in<strong>here</strong>nt overhead that<br />

is introduced by the chosen implementation approach for the OMOP. Finally,<br />

the performance impact of the customization constant (cf. Sec. 8.5.3) for the<br />

RoarVM+OMOP is measured to <strong>de</strong>termine the cost and benefit of this optimization.<br />

8.5.1. OMOP Enforcement Overhead<br />

Context and Rationale In the worst case customizing language behavior by<br />

using a MOP has the overhead of performing operations reflectively instead<br />

of directly. The OMOP in combination with Smalltalk represents this worst<br />

case, because the available metaprogramming facilities require that intercession<br />

handlers use reflective operations, which have an in<strong>here</strong>nt overhead.<br />

The evaluation needs to <strong>de</strong>termine in which or<strong>de</strong>r of magnitu<strong>de</strong> the overhead<br />

for these reflective operation lies to assess the practicality. Knowledge<br />

of this overhead can gui<strong>de</strong> the implementation of concurrent programming<br />

concepts on top of the OMOP and helps explaining their performance.<br />

Setup To measure the enforcement overhead, the kernel benchmarks are<br />

executed unchanged with enforcement enabled. The co<strong>de</strong> executes within<br />

the standard Domain (cf. Fig. 5.1). Thus, the intercession handler only implements<br />

standard semantics of the operation they represent. For example,<br />

#requestExecOf:on:with:lkup: merely invokes the requested method reflectively,<br />

and #readField:of: as well as #write:toField:of: perform the corresponding<br />

read or write on the object field.<br />

The overhead that is measured by this benchmark is the minimal overhead<br />

for a fully customized domain. Domains that customize only subsets of the<br />

intercession handler might have lower overhead, especially if the OMOP implementation<br />

checks the customization constant (cf. Sec. 7.2.1).<br />

219

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

Saved successfully!

Ooh no, something went wrong!