Transactional Pointers: Experiences with HTM-Based Reference Counting in C++

  • Maria Carpen-Amarie
  • Dave Dice
  • Gaël Thomas
  • Pascal Felber
Conference paper

DOI: 10.1007/978-3-319-46140-3_8

Volume 9944 of the book series Lecture Notes in Computer Science (LNCS)
Cite this paper as:
Carpen-Amarie M., Dice D., Thomas G., Felber P. (2016) Transactional Pointers: Experiences with HTM-Based Reference Counting in C++. In: Abdulla P., Delporte-Gallet C. (eds) Networked Systems. NETYS 2016. Lecture Notes in Computer Science, vol 9944. Springer, Cham

Abstract

The most popular programming languages, such as C++ or Java, have libraries and data structures designed to automatically address concurrency hazards in order to run on multiple threads. In particular, this trend has also been adopted in the memory management domain. However, automatic concurrent memory management also comes at a price, leading sometimes to noticeable overhead. In this paper, we experiment with C++ smart pointers and their automatic memory-management technique based on reference counting. More precisely, we study how we can use hardware transactional memory (HTM) to avoid costly and sometimes unnecessary atomic operations. Our results suggest that replacing the systematic counting strategy with HTM could improve application performance in certain scenarios, such as concurrent linked-list traversal.

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Maria Carpen-Amarie
    • 1
  • Dave Dice
    • 2
  • Gaël Thomas
    • 3
  • Pascal Felber
    • 1
  1. 1.Université de NeuchâtelNeuchâtelSwitzerland
  2. 2.Oracle LabsBurlingtonUSA
  3. 3.Telecom SudParisÉvryFrance