here - Stefan-Marr.de
here - Stefan-Marr.de
here - Stefan-Marr.de
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
8.1. Evaluation Strategy<br />
The RoarVM was chosen over the CogVM for its significantly lower implementation<br />
complexity, 1 enabling the evaluation of the benefits of VM support<br />
with a significantly lower implementation effort.<br />
Motivation for using LRSTM and AmbientTalkST The performance evaluation<br />
relies on the AmbientTalkST and LRSTM case studies to compare the<br />
performance of ad hoc implementations with OMOP-based implementations.<br />
The evaluation restricts itself to these two case studies, because the semantic<br />
differences between the ad hoc implementation of Clojure agents and the<br />
OMOP-based implementation are significant (cf. Sec. 6.2.1) ren<strong>de</strong>ring any performance<br />
result incomparable.<br />
However, AmbientTalkST and LRSTM yield two relevant data points that<br />
represent two major concurrent programming concepts. As argued in Sec. 2.5,<br />
event-loop actors are a natural fit for the implementation of event-driven userinterfaces.<br />
JCoBox [Schäfer and Poetzsch-Heffter, 2010] and AmbientTalk [Van<br />
Cutsem et al., 2007] show that these i<strong>de</strong>as are explored in research. Furthermore,<br />
WebWorker 5 and Dart 6 <strong>de</strong>monstrate the adoption in industry. Software<br />
transactional memory found adoption in languages such as Clojure 7<br />
or Haskell 8 and as a compiler extension for GNU GCC 4.7. 9<br />
Furthermore, these two case studies customize distinct intercession handlers<br />
of the OMOP, and thus are subject to different performance effects.<br />
AmbientTalkST primarily customizes method execution (cf. Sec. 6.2.3), while<br />
LRSTM customizes state access and primitives execution (cf. Sec. 6.2.2).<br />
In or<strong>de</strong>r to have comparable results, both AmbientTalkST implementations<br />
observe the same semantics, i. e., neither implementation enforces state encapsulation<br />
for global state. While Sec. 6.2.3 discussed a solution for state<br />
encapsulation based on the OMOP, providing the same <strong>de</strong>gree of encapsulation<br />
for the ad hoc implementation would have required significant addi-<br />
1 Our discussions with Eliot Miranda, author of the CogVM, at the Deep into Smalltalk school, 2<br />
the VMIL’11 workshop, 3 and as a co-mentor for the 2012 Google Summer of Co<strong>de</strong> project to<br />
port the CogVM to ARM, 4 ma<strong>de</strong> it clear that the CogVM would requires engineering and<br />
research effort that goes beyond the scope of this dissertation (cf. Sec. 9.5.2).<br />
2 http://www.inria.fr/en/centre/lille/calendar/smalltalk<br />
3 http://www.cs.iastate.edu/~<strong>de</strong>sign/vmil/2011/program.shtml<br />
4 http://gsoc2012.esug.org/projects/arm-jitter<br />
5 http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html<br />
6 http://api.dartlang.org/docs/continuous/dart_isolate.html<br />
7 http://clojure.org<br />
8 http://www.haskell.org<br />
9 http://gcc.gnu.org/wiki/TransactionalMemory<br />
203