memory-profiler 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/ext/memory/profiler/allocations.c +19 -69
- data/ext/memory/profiler/allocations.h +3 -7
- data/ext/memory/profiler/capture.c +281 -104
- data/ext/memory/profiler/events.c +5 -6
- data/ext/memory/profiler/events.h +4 -2
- data/lib/memory/profiler/allocations.rb +33 -0
- data/lib/memory/profiler/call_tree.rb +25 -2
- data/lib/memory/profiler/capture.rb +1 -1
- data/lib/memory/profiler/graph.rb +369 -0
- data/lib/memory/profiler/native.rb +9 -0
- data/lib/memory/profiler/sampler.rb +66 -47
- data/lib/memory/profiler/version.rb +1 -1
- data/lib/memory/profiler.rb +2 -0
- data/readme.md +17 -8
- data/releases.md +17 -0
- data.tar.gz.sig +0 -0
- metadata +4 -1
- metadata.gz.sig +0 -0
data/readme.md
CHANGED
|
@@ -22,6 +22,23 @@ Please see the [project documentation](https://socketry.github.io/memory-profile
|
|
|
22
22
|
|
|
23
23
|
Please see the [project releases](https://socketry.github.io/memory-profiler/releases/index) for all releases.
|
|
24
24
|
|
|
25
|
+
### v1.4.0
|
|
26
|
+
|
|
27
|
+
- Implement [Cooper-Harvey-Kennedy](https://www.cs.tufts.edu/~nr/cs257/archive/keith-cooper/dom14.pdf) algorithm for finding root objects in memory leaks.
|
|
28
|
+
- Rework capture to track objects by `object_id` exclusively.
|
|
29
|
+
|
|
30
|
+
### v1.3.0
|
|
31
|
+
|
|
32
|
+
- **Breaking**: Renamed `Capture#count_for` to `Capture#retained_count_of` for better clarity and consistency.
|
|
33
|
+
- **Breaking**: Changed `CallTree#top_paths(limit)` to `CallTree#top_paths(limit:)` - now uses keyword argument.
|
|
34
|
+
- **Breaking**: Changed `CallTree#hotspots(limit)` to `CallTree#hotspots(limit:)` - now uses keyword argument.
|
|
35
|
+
- Simplified `Sampler#analyze` return structure to `{allocations: {...}, call_tree: {...}}` format.
|
|
36
|
+
- Added `Allocations#as_json` and `Allocations#to_json` methods for JSON serialization.
|
|
37
|
+
- Added `CallTree#as_json` and `CallTree#to_json` methods for JSON serialization with configurable options.
|
|
38
|
+
- `Memory::Profiler::Allocations.new` can now be instantiated directly (primarily for testing).
|
|
39
|
+
- `Sampler#statistics` is now a deprecated alias for `Sampler#analyze`.
|
|
40
|
+
- **Breaking**: Removed `Sampler#all_statistics` method.
|
|
41
|
+
|
|
25
42
|
### v1.2.0
|
|
26
43
|
|
|
27
44
|
- Enable custom `depth:` and `filter:` options to `Sampler#track`.
|
|
@@ -63,14 +80,6 @@ Please see the [project releases](https://socketry.github.io/memory-profiler/rel
|
|
|
63
80
|
|
|
64
81
|
- More write barriers...
|
|
65
82
|
|
|
66
|
-
### v1.1.8
|
|
67
|
-
|
|
68
|
-
- Use single global queue for event handling to avoid incorrect ordering.
|
|
69
|
-
|
|
70
|
-
### v1.1.7
|
|
71
|
-
|
|
72
|
-
- Expose `Capture#statistics` for debugging internal memory tracking state.
|
|
73
|
-
|
|
74
83
|
## Contributing
|
|
75
84
|
|
|
76
85
|
We welcome contributions to this project.
|
data/releases.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Releases
|
|
2
2
|
|
|
3
|
+
## v1.4.0
|
|
4
|
+
|
|
5
|
+
- Implement [Cooper-Harvey-Kennedy](https://www.cs.tufts.edu/~nr/cs257/archive/keith-cooper/dom14.pdf) algorithm for finding root objects in memory leaks.
|
|
6
|
+
- Rework capture to track objects by `object_id` exclusively.
|
|
7
|
+
|
|
8
|
+
## v1.3.0
|
|
9
|
+
|
|
10
|
+
- **Breaking**: Renamed `Capture#count_for` to `Capture#retained_count_of` for better clarity and consistency.
|
|
11
|
+
- **Breaking**: Changed `CallTree#top_paths(limit)` to `CallTree#top_paths(limit:)` - now uses keyword argument.
|
|
12
|
+
- **Breaking**: Changed `CallTree#hotspots(limit)` to `CallTree#hotspots(limit:)` - now uses keyword argument.
|
|
13
|
+
- Simplified `Sampler#analyze` return structure to `{allocations: {...}, call_tree: {...}}` format.
|
|
14
|
+
- Added `Allocations#as_json` and `Allocations#to_json` methods for JSON serialization.
|
|
15
|
+
- Added `CallTree#as_json` and `CallTree#to_json` methods for JSON serialization with configurable options.
|
|
16
|
+
- `Memory::Profiler::Allocations.new` can now be instantiated directly (primarily for testing).
|
|
17
|
+
- `Sampler#statistics` is now a deprecated alias for `Sampler#analyze`.
|
|
18
|
+
- **Breaking**: Removed `Sampler#all_statistics` method.
|
|
19
|
+
|
|
3
20
|
## v1.2.0
|
|
4
21
|
|
|
5
22
|
- Enable custom `depth:` and `filter:` options to `Sampler#track`.
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: memory-profiler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -56,8 +56,11 @@ files:
|
|
|
56
56
|
- ext/memory/profiler/profiler.c
|
|
57
57
|
- ext/memory/profiler/queue.h
|
|
58
58
|
- lib/memory/profiler.rb
|
|
59
|
+
- lib/memory/profiler/allocations.rb
|
|
59
60
|
- lib/memory/profiler/call_tree.rb
|
|
60
61
|
- lib/memory/profiler/capture.rb
|
|
62
|
+
- lib/memory/profiler/graph.rb
|
|
63
|
+
- lib/memory/profiler/native.rb
|
|
61
64
|
- lib/memory/profiler/sampler.rb
|
|
62
65
|
- lib/memory/profiler/version.rb
|
|
63
66
|
- license.md
|
metadata.gz.sig
CHANGED
|
Binary file
|