Commit 0d21d39
authored
[Profiler] Generate heap snapshot (#7681)
## Summary of changes
Allow the generation of heap snapshots that are sent to the backend
## Reason for change
For memory leak workflow, we would like to compare the surviving objects
count to identify the leaky ones. These heap snapshots will be
transformed into class histograms to look like what is generated by
Java.
## Implementation details
The .NET runtime allows the creation of "gcdump" thanks to dotnet-gcdump
tool. Behind the scene, an induced GC is triggered when an event pipe
session is created with the right keyword/verbosity. Undocumented events
are then emitted by the runtime at the end of the GC - read
https://chnasarre.medium.com/net-gcdump-internals-fcce5d327be7?source=friends_link&sk=3225ff119458adafc0e6935951fcc323
for more details.
## Test coverage
Test added as needed
## Other details
<!-- Fixes #{issue} -->
<!-- 1 parent 0a4d09b commit 0d21d39
File tree
40 files changed
+1373
-72
lines changed- profiler
- src
- Demos
- Samples.BuggyBits/Properties
- Samples.Computer01
- Properties
- ProfilerEngine
- Datadog.Profiler.Native.Windows
- Datadog.Profiler.Native
- test
- Datadog.Profiler.IntegrationTests
- HeapSnapshot
- Helpers
- Datadog.Profiler.Native.Tests
40 files changed
+1373
-72
lines changedLines changed: 3 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
62 | | - | |
| 63 | + | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
49 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
50 | 57 | | |
51 | 58 | | |
52 | 59 | | |
| |||
Lines changed: 12 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
22 | | - | |
23 | 21 | | |
24 | | - | |
25 | 22 | | |
26 | 23 | | |
27 | 24 | | |
| |||
30 | 27 | | |
31 | 28 | | |
32 | 29 | | |
33 | | - | |
34 | 30 | | |
35 | 31 | | |
36 | 32 | | |
37 | | - | |
38 | 33 | | |
39 | 34 | | |
40 | | - | |
41 | 35 | | |
42 | 36 | | |
43 | 37 | | |
44 | 38 | | |
45 | 39 | | |
46 | 40 | | |
47 | 41 | | |
48 | | - | |
| 42 | + | |
49 | 43 | | |
50 | 44 | | |
51 | 45 | | |
52 | | - | |
53 | 46 | | |
54 | 47 | | |
55 | | - | |
56 | 48 | | |
57 | | - | |
58 | | - | |
| 49 | + | |
59 | 50 | | |
60 | 51 | | |
| 52 | + | |
61 | 53 | | |
62 | 54 | | |
63 | 55 | | |
64 | | - | |
65 | | - | |
66 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
67 | 59 | | |
68 | 60 | | |
| 61 | + | |
| 62 | + | |
69 | 63 | | |
70 | 64 | | |
71 | | - | |
72 | 65 | | |
73 | | - | |
74 | 66 | | |
75 | | - | |
| 67 | + | |
76 | 68 | | |
| 69 | + | |
77 | 70 | | |
78 | 71 | | |
79 | 72 | | |
80 | 73 | | |
81 | 74 | | |
82 | | - | |
| 75 | + | |
Lines changed: 3 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
Lines changed: 63 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
| 45 | + | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
| 49 | + | |
| 50 | + | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
| |||
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
72 | | - | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
73 | 78 | | |
74 | 79 | | |
75 | 80 | | |
| |||
242 | 247 | | |
243 | 248 | | |
244 | 249 | | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
245 | 291 | | |
246 | 292 | | |
247 | 293 | | |
| |||
480 | 526 | | |
481 | 527 | | |
482 | 528 | | |
483 | | - | |
| 529 | + | |
| 530 | + | |
484 | 531 | | |
485 | 532 | | |
486 | 533 | | |
487 | | - | |
| 534 | + | |
488 | 535 | | |
489 | 536 | | |
490 | 537 | | |
| |||
497 | 544 | | |
498 | 545 | | |
499 | 546 | | |
500 | | - | |
| 547 | + | |
| 548 | + | |
501 | 549 | | |
502 | 550 | | |
503 | 551 | | |
| |||
525 | 573 | | |
526 | 574 | | |
527 | 575 | | |
| 576 | + | |
528 | 577 | | |
529 | 578 | | |
530 | 579 | | |
| |||
541 | 590 | | |
542 | 591 | | |
543 | 592 | | |
| 593 | + | |
544 | 594 | | |
545 | 595 | | |
546 | 596 | | |
| |||
623 | 673 | | |
624 | 674 | | |
625 | 675 | | |
626 | | - | |
| 676 | + | |
| 677 | + | |
627 | 678 | | |
628 | 679 | | |
629 | 680 | | |
| |||
641 | 692 | | |
642 | 693 | | |
643 | 694 | | |
644 | | - | |
645 | 695 | | |
646 | 696 | | |
647 | 697 | | |
| |||
658 | 708 | | |
659 | 709 | | |
660 | 710 | | |
661 | | - | |
| 711 | + | |
| 712 | + | |
662 | 713 | | |
663 | 714 | | |
664 | 715 | | |
| |||
673 | 724 | | |
674 | 725 | | |
675 | 726 | | |
| 727 | + | |
676 | 728 | | |
677 | 729 | | |
678 | 730 | | |
| |||
694 | 746 | | |
695 | 747 | | |
696 | 748 | | |
697 | | - | |
| 749 | + | |
| 750 | + | |
698 | 751 | | |
699 | 752 | | |
700 | 753 | | |
Lines changed: 16 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
| |||
233 | 237 | | |
234 | 238 | | |
235 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
236 | 243 | | |
237 | 244 | | |
238 | 245 | | |
| |||
246 | 253 | | |
247 | 254 | | |
248 | 255 | | |
| 256 | + | |
249 | 257 | | |
250 | 258 | | |
| 259 | + | |
251 | 260 | | |
252 | 261 | | |
253 | 262 | | |
| |||
264 | 273 | | |
265 | 274 | | |
266 | 275 | | |
| 276 | + | |
267 | 277 | | |
268 | 278 | | |
269 | 279 | | |
| |||
276 | 286 | | |
277 | 287 | | |
278 | 288 | | |
| 289 | + | |
279 | 290 | | |
280 | 291 | | |
281 | 292 | | |
282 | 293 | | |
283 | 294 | | |
284 | 295 | | |
285 | 296 | | |
286 | | - | |
| 297 | + | |
| 298 | + | |
287 | 299 | | |
288 | 300 | | |
289 | | - | |
290 | 301 | | |
291 | 302 | | |
292 | 303 | | |
| |||
335 | 346 | | |
336 | 347 | | |
337 | 348 | | |
338 | | - | |
| 349 | + | |
| 350 | + | |
339 | 351 | | |
340 | 352 | | |
341 | 353 | | |
| |||
346 | 358 | | |
347 | 359 | | |
348 | 360 | | |
| 361 | + | |
349 | 362 | | |
350 | 363 | | |
351 | 364 | | |
| |||
0 commit comments