Garbage Collection and Eciency in Dynamic Metacircular Runtimes

نویسندگان

  • Javier Pimás
  • Javier Burroni
  • Jean Baptiste Arnaud
  • Stefan Marr
چکیده

In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object allocation, garbage collection (GC) and method dispatch are o‰en handled by virtual machines (VMs). VMs are typically implemented using static languages, allowing only few changes at run time. In such systems, the VM is not part of the language and interfaces to memory management or method dispatch are €xed, not allowing for arbitrary adaptation. Furthermore, the implementation can typically not be inspected or debugged with standard tools used to work on application code. Œis paper reports on our experience building Bee, a dynamic Smalltalk runtime, wriŠen in Smalltalk. Bee is a Dynamic Metacircular Runtime (DMR) and seamlessly integrates the VM into the application and thereby overcomes many restrictions of classic VMs, for instance by allowing arbitrary code modi€cations of the VM at run time. Furthermore, the approach enables developers to use their standard tools for application code also for the VM, allowing them to inspect, debug, understand, and modify a DMR seamlessly. We detail our experience of implementing GC, compilation, and optimizations in a DMR. We discuss examples where we found that DMRs can improve understanding of the system, provide tighter control of the so‰ware stack, and facilitate research. We also show that in high-level benchmarks the Bee DMR performance is close to that of a widely used Smalltalk VM. CCSConcepts •So…ware and its engineering→Object oriented languages; Runtime environments; Garbage collection; Dynamic compilers; DLS’17, Vancouver, Canada © 2017 Copyright held by the owner/author(s). Publication rights licensed to ACM. Œis is the author’s version of the work. It is posted here for your personal use. Not for redistribution. Œe de€nitive Version of Record was published in Proceedings of 13th ACM SIGPLAN International Symposium on Dynamic Languages, October 25–27, 2017 , h‚p://dx.doi.org/10.1145/3133841. 3133845.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

4.2 Improvement of Eciency 5 Problems and Its Solution 5.1 Specifying Groups 5.2 Unpredictable Cycles

Reference counting schemes are suitable for garbage collection on distributed systems because they do not require global information to nd garbage. However, reference counting schemes have a serious drawback: they cannot reclaim garbage which form cyclic structures. In this paper, we propose an extension of the traditional reference counting scheme, group reference counting, which alleviates th...

متن کامل

Application-assisted physical memory management for general-purpose operating systems

Many software applications can, in principle, trade main memory consumption for other resources. For instance, garbage collected language runtimes can trade collection overhead for heap size, and many programs can improve their performance by caching data that was precomputed, read from disk or received from the network. Unfortunately, OSs provide little useful information about physical memory...

متن کامل

Locality-Aware GC Optimisations for Big Data Workloads

Many Big Data analytics and IoT scenarios rely on fast and non-relational storage (NoSQL) to help processing massive amounts of data. In addition, managed runtimes (e.g. JVM) are now widely used to support the execution of these NoSQL storage solutions, particularly when dealing with Big Data key-value store-driven applications. The benefits of such runtimes can however be limited by automatic ...

متن کامل

The Measured Cost of Conservative Garbage Collection

Because dynamic memory management is an important part of a large class of computer programs, high-performance algorithms for dynamic memory management have been, and will continue to be, of considerable interest. Experience indicates that for many programs, dynamic storage allocation is so important that programmers feel compelled to write and use their own domainspecific allocators to avoid t...

متن کامل

CellCilk: Extending Cilk for Heterogeneous Multicore Platforms

The potential of heterogeneous multicores, like the Cell BE, can only be exploited if the host and the accelerator cores are used in parallel and if the specific features of the cores are considered. Parallel programming, especially when applied to irregular task-parallel problems, is challenging itself. However, heterogeneous multicores add to that complexity due to their memory hierarchy and ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017