11.07.2015 Views

Memory Allocation and Access Patterns in Dynamic ... - STUPS Group

Memory Allocation and Access Patterns in Dynamic ... - STUPS Group

Memory Allocation and Access Patterns in Dynamic ... - STUPS Group

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.

1 INTRODUCTION 21 IntroductionOver the last years dynamic programm<strong>in</strong>g languages like Javascript, Python or Ruby havega<strong>in</strong>ed more <strong>and</strong> more attention. Reasons for the <strong>in</strong>creased popularity are for examplethe dynamic typ<strong>in</strong>g of objects <strong>and</strong> the automatic memory management which comes withmost languages. These can speed up the development of software considerably. However,these benefits don’t come for free as they <strong>in</strong>cur a certa<strong>in</strong> overhead <strong>and</strong> deny severalstatic optimizations that are possible <strong>in</strong> other languages like Java or C. Therefore otheroptimizations have been <strong>in</strong>troduced to m<strong>in</strong>imize this overhead.One of these optimizations which is used by some virtual mach<strong>in</strong>es (VMs) is <strong>in</strong>teger tagg<strong>in</strong>gthat tries to avoid box<strong>in</strong>g of <strong>in</strong>tegers. Box<strong>in</strong>g of primitive data-types is needed <strong>in</strong>dynamic languages, s<strong>in</strong>ce the type of an object must be determ<strong>in</strong>able dur<strong>in</strong>g runtime.Although used by several VMs, the <strong>in</strong>fluence of <strong>in</strong>teger tagg<strong>in</strong>g on performance has notbeen evaluated <strong>in</strong> detail so far.The aim of this thesis is to analyse the performance impacts ga<strong>in</strong>ed by <strong>in</strong>teger tagg<strong>in</strong>gfor <strong>in</strong>terpreters. Therefore an exist<strong>in</strong>g Smalltalk VM is extended by <strong>in</strong>teger tagg<strong>in</strong>g <strong>and</strong>the performance for different configurations of this VM is measured us<strong>in</strong>g benchmarks.The evaluation of the results is focused on <strong>in</strong>terpreters, as VMs us<strong>in</strong>g just-<strong>in</strong>-time (JIT)compilation have different trade-offs.The implementation of <strong>in</strong>teger tagg<strong>in</strong>g is described <strong>in</strong> Section 3. The idea of <strong>in</strong>tegercach<strong>in</strong>g, an alternative optimization to reduce the memory footpr<strong>in</strong>t, <strong>and</strong> its implementationis described <strong>in</strong> Section 4. Section 5 describes some important additional optimizations<strong>and</strong> modifications implemented for the SOM++ virtual mach<strong>in</strong>e. The performance of <strong>in</strong>tegertagg<strong>in</strong>g is then evaluated <strong>in</strong> Section 6. First the benchmarks <strong>and</strong> their characteristicsof <strong>in</strong>teger usage are described. Then the benchmark results are evaluated. This sectionends with an short evaluation of <strong>in</strong>teger cach<strong>in</strong>g <strong>and</strong> of <strong>in</strong>teger tagg<strong>in</strong>g on x86 64 <strong>and</strong>ARM based systems. Section 7 lists related research done on <strong>in</strong>teger tagg<strong>in</strong>g. F<strong>in</strong>allySection 8 concludes this thesis.

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

Saved successfully!

Ooh no, something went wrong!