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.

Appendix B. Appendix: Performance Evaluation<br />

additional overhead and the penalty for the subtraction in the Int Loop<br />

loop.<br />

Local vs. Remote Sends for AmbientTalkST The benchmarks for local and<br />

remote sends between actors are meant to measure cost of asynchronous<br />

message sends for the two AmbientTalkST implementations. The three<br />

benchmarks do local sends to a counter, remote sends to a counter in<br />

another actor, and remote sends with ten arguments. They each execute<br />

a tight loop which sends a message to increase the counter that is kept<br />

in a separate object. In the local version, the send i<strong>de</strong>ally results only<br />

in the creation of a context object in which the counter’s object field is<br />

read and modified, while in the remote version a message object has<br />

to be created that is enqueued in the actor’s message inbox and then<br />

processed as soon as the receiving actor is scheduled.<br />

B.1.2. Kernel Benchmarks<br />

The used kernel benchmarks are collection from different sources, most notably<br />

the Computer Language Benchmark Game. We adapted them for our<br />

experiments with LRSTM and AmbientTalkST, but did not change the un<strong>de</strong>rlying<br />

algorithms or functionality.<br />

Compiler We chose the compiler benchmark as a sufficiently complex processes,<br />

exercising a wi<strong>de</strong> range of aspects of the system. The benchmark<br />

compiles a Smalltalk method of 11 lines of co<strong>de</strong>, which inclu<strong>de</strong> tests,<br />

loops, and a variety of message sends. The compiler will first construct<br />

an AST from the source co<strong>de</strong> and then produce a CompiledMethod from<br />

this AST, which contains the final byteco<strong>de</strong> sequence. In the process, it<br />

creates and traverses the AST, uses a variety of collections, does string<br />

processing, and uses the stream facilities.<br />

Slopstone and Smopstone These benchmarks 1 are collections of Smalltalk<br />

microbenchmarks and kernel benchmarks. The Slopstone microbenchmark<br />

collection tests integer addition, float addition, character access<br />

on strings, object creation, object cloning, reflective method invocation<br />

with #perform:, and block evaluation. We inclu<strong>de</strong> this benchmark since<br />

the structure is different from our benchmarks. It does not use a tight<br />

loop but performs a larger number of operations directly in sequence.<br />

1 According to the source comment, they have been authored by Bruce Samuelson in 1993.<br />

264

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

Saved successfully!

Ooh no, something went wrong!