Skip to main content

Efficient and Thread-Safe Objects for Dynamically-Typed Languages

Daloze, Benoit, Marr, Stefan, Bonetta, Daniele, Mössenböck, Hanspeter (2016) Efficient and Thread-Safe Objects for Dynamically-Typed Languages. In: ACM SIGPLAN Notices. OOPSLA 2016 Proceedings of the 2016 ACM International Conference on Object Oriented Programming Systems Languages & Applications. 51. pp. 642-659. ACM, New York, USA ISBN 978-1-4503-4444-9. (doi:10.1145/2983990.2984001) (KAR id:63818)

PDF Author's Accepted Manuscript
Language: English
Download (427kB) Preview
[thumbnail of oopsla16-daloze-et-al-efficient-and-thread-safe-objects-for-dynamically-typed-languages.pdf]
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:


We are in the multi-core era. Dynamically-typed languages are in widespread use, but their support for multithreading still lags behind. One of the reasons is that the sophisticated techniques they use to efficiently represent their dynamic object models are often unsafe in multithreaded environments. This paper defines safety requirements for dynamic object models in multithreaded environments. Based on these requirements, a language-agnostic and thread-safe object model is designed that maintains the efficiency of sequential approaches. This is achieved by ensuring that field reads do not require synchronization and field updates only need to synchronize on objects shared between threads. Basing our work on JRuby+Truffle, we show that our safe object model has zero overhead on peak performance for thread-local objects and only 3% average overhead on parallel benchmarks where field updates require synchronization. Thus, it can be a foundation for safe and efficient multithreaded VMs for a wide range of dynamic languages.

Item Type: Conference or workshop item (Proceeding)
DOI/Identification number: 10.1145/2983990.2984001
Uncontrolled keywords: Dynamically-sized objects, Dynamic languages, Concurrency, Virtual Machine, Java, Truffle, Graal, Ruby
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Stefan Marr
Date Deposited: 06 Oct 2017 12:48 UTC
Last Modified: 10 Mar 2021 17:39 UTC
Resource URI: (The current URI for this page, for reference purposes)
Marr, Stefan:
  • Depositors only (login required):


Downloads per month over past year