We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Successful and not (yet?) successful optimisations in Valgrind

Formal Metadata

Title
Successful and not (yet?) successful optimisations in Valgrind
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
Making Valgrind faster is a never ending challenge. In this talk, we willdescribe 2 optimisations in Valgrind. A first optimisation is a speedup of Helgrind (a race detection tool). A verysimple observation has led to an optimisation in the way helgrind capturesstack traces for its 'full recording' of where a piece of memory was modified.This optimisation gives a typical speed up of 25%. We will describe the issuesencountered during the implementation and discuss the reasons why thisoptimisation is not (yet?) committed in the Valgrind sources. The second optimisation is the implementation of the execution tree concept :this generalises the way Massif (a heap profiler) records the memory usage ofa program. We will show how a (maybe counter-intuitive) representation of atree using a hash table of flat stack traces has doubled the speed of Massiffor some workloads. This talk is aimed at Valgrind developers and any application developerinterested in data structures and algorithm optimisations.