Massif-Visualizer - Memory Profiling UI...increase for long running pro ling...
Transcript of Massif-Visualizer - Memory Profiling UI...increase for long running pro ling...
Agenda
1 Valgrind
2 Massif
3 Massif-Visualizer
Milian — Massif-Visualizer — Desktop Summit — Berlin 2/32
1 Valgrind
2 Massif
3 Massif-Visualizer
Milian — Massif-Visualizer — Desktop Summit — Berlin 3/32
1 ValgrindIntroductionTool SuiteUsageCaveats
Milian — Massif-Visualizer — Desktop Summit — Berlin 4/32
Valgrind Introduction
Versatile: currently nine debugging and profiling utilities
Open: licensed under the GPL
Proven: under active development since 2000
Cross Platform: Linux and MacOS X
Cross Platform: x86, AMD64, ARM, . . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 5/32
Valgrind Introduction
Versatile: currently nine debugging and profiling utilities
Open: licensed under the GPL
Proven: under active development since 2000
Cross Platform: Linux and MacOS X
Cross Platform: x86, AMD64, ARM, . . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 5/32
Valgrind Introduction
Versatile: currently nine debugging and profiling utilities
Open: licensed under the GPL
Proven: under active development since 2000
Cross Platform: Linux and MacOS X
Cross Platform: x86, AMD64, ARM, . . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 5/32
Valgrind Introduction
Versatile: currently nine debugging and profiling utilities
Open: licensed under the GPL
Proven: under active development since 2000
Cross Platform: Linux and MacOS X
Cross Platform: x86, AMD64, ARM, . . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 5/32
Valgrind Introduction
Versatile: currently nine debugging and profiling utilities
Open: licensed under the GPL
Proven: under active development since 2000
Cross Platform: Linux and MacOS X
Cross Platform: x86, AMD64, ARM, . . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 5/32
1 ValgrindIntroductionTool SuiteUsageCaveats
Milian — Massif-Visualizer — Desktop Summit — Berlin 6/32
Tool Suite
Memcheck: detect errors in memory managementleaks, invalid read/writes, . . .
Helgrind / DRD: detect errors in multithreadingrace conditions, lock contention, . . .
Callgrind: CPU cache profilinghotspots, bottlenecks, cache issues, . . .
Massif: memory profilingtotal consumption, leaks, peaks, . . .
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 7/32
Tool Suite
Memcheck: detect errors in memory managementleaks, invalid read/writes, . . .
Helgrind / DRD: detect errors in multithreadingrace conditions, lock contention, . . .
Callgrind: CPU cache profilinghotspots, bottlenecks, cache issues, . . .
Massif: memory profilingtotal consumption, leaks, peaks, . . .
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 7/32
Tool Suite
Memcheck: detect errors in memory managementleaks, invalid read/writes, . . .
Helgrind / DRD: detect errors in multithreadingrace conditions, lock contention, . . .
Callgrind: CPU cache profilinghotspots, bottlenecks, cache issues, . . .
Massif: memory profilingtotal consumption, leaks, peaks, . . .
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 7/32
Tool Suite
Memcheck: detect errors in memory managementleaks, invalid read/writes, . . .
Helgrind / DRD: detect errors in multithreadingrace conditions, lock contention, . . .
Callgrind: CPU cache profilinghotspots, bottlenecks, cache issues, . . .
Massif: memory profilingtotal consumption, leaks, peaks, . . .
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 7/32
Tool Suite
Memcheck: detect errors in memory managementleaks, invalid read/writes, . . .
Helgrind / DRD: detect errors in multithreadingrace conditions, lock contention, . . .
Callgrind: CPU cache profilinghotspots, bottlenecks, cache issues, . . .
Massif: memory profilingtotal consumption, leaks, peaks, . . .
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 7/32
1 ValgrindIntroductionTool SuiteUsageCaveats
Milian — Massif-Visualizer — Desktop Summit — Berlin 8/32
Usage
no special compilation flags required
but: debug symbols very useful
running valgrind:valgrind --tool=... [tool options]
myApp [your options]
errors are outputted to CLI→ human readable
profiling data written to file→ visualization UI required
Milian — Massif-Visualizer — Desktop Summit — Berlin 9/32
Usage
no special compilation flags required
but: debug symbols very useful
running valgrind:valgrind --tool=... [tool options]
myApp [your options]
errors are outputted to CLI→ human readable
profiling data written to file→ visualization UI required
Milian — Massif-Visualizer — Desktop Summit — Berlin 9/32
Usage
no special compilation flags required
but: debug symbols very useful
running valgrind:valgrind --tool=... [tool options]
myApp [your options]
errors are outputted to CLI→ human readable
profiling data written to file→ visualization UI required
Milian — Massif-Visualizer — Desktop Summit — Berlin 9/32
Usage
no special compilation flags required
but: debug symbols very useful
running valgrind:valgrind --tool=... [tool options]
myApp [your options]
errors are outputted to CLI→ human readable
profiling data written to file→ visualization UI required
Milian — Massif-Visualizer — Desktop Summit — Berlin 9/32
Usage
no special compilation flags required
but: debug symbols very useful
running valgrind:valgrind --tool=... [tool options]
myApp [your options]
errors are outputted to CLI→ human readable
profiling data written to file→ visualization UI required
Milian — Massif-Visualizer — Desktop Summit — Berlin 9/32
1 ValgrindIntroductionTool SuiteUsageCaveats
Milian — Massif-Visualizer — Desktop Summit — Berlin 10/32
Caveats
slowdown by factor 5 to 100
increased memory consumption
interpretation of results requires knowledge and experience
Milian — Massif-Visualizer — Desktop Summit — Berlin 11/32
Caveats
slowdown by factor 5 to 100
increased memory consumption
interpretation of results requires knowledge and experience
Milian — Massif-Visualizer — Desktop Summit — Berlin 11/32
Caveats
slowdown by factor 5 to 100
increased memory consumption
interpretation of results requires knowledge and experience
Milian — Massif-Visualizer — Desktop Summit — Berlin 11/32
1 Valgrind
2 Massif
3 Massif-Visualizer
Milian — Massif-Visualizer — Desktop Summit — Berlin 12/32
2 MassifIntroductionOutputUseful Optionsms print
Milian — Massif-Visualizer — Desktop Summit — Berlin 13/32
Massif Introduction
mainly aimed at heap profiling
optionally also stack profiling possible
tracks memory allocations and deallocations
caveats: slowdown by 20x, high memory overhead
Milian — Massif-Visualizer — Desktop Summit — Berlin 14/32
Massif Introduction
mainly aimed at heap profiling
optionally also stack profiling possible
tracks memory allocations and deallocations
caveats: slowdown by 20x, high memory overhead
Milian — Massif-Visualizer — Desktop Summit — Berlin 14/32
Massif Introduction
mainly aimed at heap profiling
optionally also stack profiling possible
tracks memory allocations and deallocations
caveats: slowdown by 20x, high memory overhead
Milian — Massif-Visualizer — Desktop Summit — Berlin 14/32
Massif Introduction
mainly aimed at heap profiling
optionally also stack profiling possible
tracks memory allocations and deallocations
caveats: slowdown by 20x, high memory overhead
Milian — Massif-Visualizer — Desktop Summit — Berlin 14/32
2 MassifIntroductionOutputUseful Optionsms print
Milian — Massif-Visualizer — Desktop Summit — Berlin 15/32
Output
snapshots of memory consumption over time
simple snapshots: total memory consumption
detailed snapshots: backtraces to significant memoryallocations
Milian — Massif-Visualizer — Desktop Summit — Berlin 16/32
Output
snapshots of memory consumption over time
simple snapshots: total memory consumption
detailed snapshots: backtraces to significant memoryallocations
Milian — Massif-Visualizer — Desktop Summit — Berlin 16/32
Output
snapshots of memory consumption over time
simple snapshots: total memory consumption
detailed snapshots: backtraces to significant memoryallocations
Milian — Massif-Visualizer — Desktop Summit — Berlin 16/32
2 MassifIntroductionOutputUseful Optionsms print
Milian — Massif-Visualizer — Desktop Summit — Berlin 17/32
Useful Options
--max-snapshots=N [Default: 100]
increase for long running profiling sessions
--detailed-freq=N [Default: 10]
decrease for short running, increase for long running profiling sessions
--threshold=<m.n> [Default: 1.0]
increase in case your app mainly consists of allocations below the default
threshold
Output: --massif-out-file=...
[Default: massif.out.%p]
Milian — Massif-Visualizer — Desktop Summit — Berlin 18/32
Useful Options
--max-snapshots=N [Default: 100]
increase for long running profiling sessions
--detailed-freq=N [Default: 10]
decrease for short running, increase for long running profiling sessions
--threshold=<m.n> [Default: 1.0]
increase in case your app mainly consists of allocations below the default
threshold
Output: --massif-out-file=...
[Default: massif.out.%p]
Milian — Massif-Visualizer — Desktop Summit — Berlin 18/32
Useful Options
--max-snapshots=N [Default: 100]
increase for long running profiling sessions
--detailed-freq=N [Default: 10]
decrease for short running, increase for long running profiling sessions
--threshold=<m.n> [Default: 1.0]
increase in case your app mainly consists of allocations below the default
threshold
Output: --massif-out-file=...
[Default: massif.out.%p]
Milian — Massif-Visualizer — Desktop Summit — Berlin 18/32
Useful Options
--max-snapshots=N [Default: 100]
increase for long running profiling sessions
--detailed-freq=N [Default: 10]
decrease for short running, increase for long running profiling sessions
--threshold=<m.n> [Default: 1.0]
increase in case your app mainly consists of allocations below the default
threshold
Output: --massif-out-file=...
[Default: massif.out.%p]
Milian — Massif-Visualizer — Desktop Summit — Berlin 18/32
2 MassifIntroductionOutputUseful Optionsms print
Milian — Massif-Visualizer — Desktop Summit — Berlin 19/32
ms print Visualization
ms print massif.out.PID | less
Milian — Massif-Visualizer — Desktop Summit — Berlin 20/32
ms print Visualization
ms print massif.out.PID | less
Milian — Massif-Visualizer — Desktop Summit — Berlin 20/32
1 Valgrind
2 Massif
3 Massif-Visualizer
Milian — Massif-Visualizer — Desktop Summit — Berlin 21/32
3 Massif-VisualizerMassif-VisualizerFeaturesFuture IdeasPackagesResources
Milian — Massif-Visualizer — Desktop Summit — Berlin 22/32
Massif-Visualizer
massif-visualizer massif.out.PID
Milian — Massif-Visualizer — Desktop Summit — Berlin 23/32
Massif-Visualizer
interactive!
Milian — Massif-Visualizer — Desktop Summit — Berlin 23/32
3 Massif-VisualizerMassif-VisualizerFeaturesFuture IdeasPackagesResources
Milian — Massif-Visualizer — Desktop Summit — Berlin 24/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
Features
vis. evolution of mem consumption
vis. backtrace/callgraph
custom allocators
hiding functions
shorten templates
. . .
Milian — Massif-Visualizer — Desktop Summit — Berlin 25/32
3 Massif-VisualizerMassif-VisualizerFeaturesFuture IdeasPackagesResources
Milian — Massif-Visualizer — Desktop Summit — Berlin 26/32
Future Ideas & Todo’s
Comparison/Diff of Massif data files
Top-Down view of backtraces (subtree matching)
Export Graphs
Milian — Massif-Visualizer — Desktop Summit — Berlin 27/32
Future Ideas & Todo’s
Comparison/Diff of Massif data files
Top-Down view of backtraces (subtree matching)
Export Graphs
Milian — Massif-Visualizer — Desktop Summit — Berlin 27/32
Future Ideas & Todo’s
Comparison/Diff of Massif data files
Top-Down view of backtraces (subtree matching)
Export Graphs
Milian — Massif-Visualizer — Desktop Summit — Berlin 27/32
3 Massif-VisualizerMassif-VisualizerFeaturesFuture IdeasPackagesResources
Milian — Massif-Visualizer — Desktop Summit — Berlin 28/32
Packages
Arch, Slackware, . . . have packages
OpenSuse BuildService:http://kde-apps.org/content/show.php?content=122409
MacOS X:https://trac.macports.org/ticket/27168
Generally: Please help with packaging!
Milian — Massif-Visualizer — Desktop Summit — Berlin 29/32
Packages
Arch, Slackware, . . . have packages
OpenSuse BuildService:http://kde-apps.org/content/show.php?content=122409
MacOS X:https://trac.macports.org/ticket/27168
Generally: Please help with packaging!
Milian — Massif-Visualizer — Desktop Summit — Berlin 29/32
Packages
Arch, Slackware, . . . have packages
OpenSuse BuildService:http://kde-apps.org/content/show.php?content=122409
MacOS X:https://trac.macports.org/ticket/27168
Generally: Please help with packaging!
Milian — Massif-Visualizer — Desktop Summit — Berlin 29/32
Packages
Arch, Slackware, . . . have packages
OpenSuse BuildService:http://kde-apps.org/content/show.php?content=122409
MacOS X:https://trac.macports.org/ticket/27168
Generally: Please help with packaging!
Milian — Massif-Visualizer — Desktop Summit — Berlin 29/32
3 Massif-VisualizerMassif-VisualizerFeaturesFuture IdeasPackagesResources
Milian — Massif-Visualizer — Desktop Summit — Berlin 30/32
Resources
Project Page:http://projects.kde.org/massif-visualizer
Bugs and Wish Requests:http://bugs.kde.org
Mailing List:[email protected]
https://mail.kde.org/mailman/listinfo/massif-visualizer
KDE-Apps Page:http://kde-apps.org/content/show.php?content=122409
Milian — Massif-Visualizer — Desktop Summit — Berlin 31/32