memory 0.8.4 → 0.9.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/lib/memory/usage.rb +20 -6
- data/lib/memory/version.rb +1 -1
- data/readme.md +4 -0
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +3 -8
- metadata.gz.sig +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 535ecdd0c6181d94b31384e4f71b4b4ce52d499d43daa647120fb22cf3dc244b
|
|
4
|
+
data.tar.gz: bfc66be86d65f7065ebc6a4193420ccbe50a98ad5e581ba6cf613484d1846012
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2df82be2210853cdc3ede7d47d450d1a38bc14291ee4fdaa3bece83809ce78ffb73ae714d52da9843dbd43d2659e6a97b17005ecbf3abe1f81fe8a687b0cbc5
|
|
7
|
+
data.tar.gz: de6c8972b60a489e7f62834fe926674ed55103fae47a401ef81674b43a8a79b271a8b21051948c56b094a0372abb5493c78739265686b4c4591272ffd70b8f4b
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/lib/memory/usage.rb
CHANGED
|
@@ -39,12 +39,27 @@ module Memory
|
|
|
39
39
|
return self
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
IGNORE = [
|
|
43
|
+
# Skip modules and symbols, they are usually "global":
|
|
44
|
+
Module,
|
|
45
|
+
# Note that `reachable_objects_from` does not include symbols, numbers, or other value types, AFAICT.
|
|
46
|
+
|
|
47
|
+
Proc,
|
|
48
|
+
Method,
|
|
49
|
+
UnboundMethod,
|
|
50
|
+
Binding,
|
|
51
|
+
TracePoint,
|
|
52
|
+
|
|
53
|
+
# We don't want to traverse into shared state:
|
|
54
|
+
Ractor,
|
|
55
|
+
Thread,
|
|
56
|
+
Fiber
|
|
57
|
+
]
|
|
58
|
+
|
|
42
59
|
# Compute the usage of an object and all reachable objects from it.
|
|
43
60
|
# @parameter root [Object] The root object to start traversal from.
|
|
44
61
|
# @returns [Usage] The usage of the object and all reachable objects from it.
|
|
45
|
-
def self.of(root)
|
|
46
|
-
seen = Set.new.compare_by_identity
|
|
47
|
-
|
|
62
|
+
def self.of(root, seen: Set.new.compare_by_identity, ignore: IGNORE)
|
|
48
63
|
count = 0
|
|
49
64
|
size = 0
|
|
50
65
|
|
|
@@ -52,9 +67,8 @@ module Memory
|
|
|
52
67
|
while queue.any?
|
|
53
68
|
object = queue.shift
|
|
54
69
|
|
|
55
|
-
# Skip
|
|
56
|
-
next if object.is_a?(
|
|
57
|
-
# Note that `reachable_objects_from` does not include symbols, numbers, or other value types, AFAICT.
|
|
70
|
+
# Skip ignored types:
|
|
71
|
+
next if ignore.any?{|type| object.is_a?(type)}
|
|
58
72
|
|
|
59
73
|
# Skip internal objects - they don't behave correctly when added to `seen` and create unbounded recursion:
|
|
60
74
|
next if object.is_a?(ObjectSpace::InternalObjectWrapper)
|
data/lib/memory/version.rb
CHANGED
data/readme.md
CHANGED
|
@@ -94,6 +94,10 @@ end
|
|
|
94
94
|
|
|
95
95
|
Please see the [project releases](https://socketry.github.io/memory/releases/index) for all releases.
|
|
96
96
|
|
|
97
|
+
### v0.9.0
|
|
98
|
+
|
|
99
|
+
- Explicit `ignore:` and `seen:` parameters for `Memory::Usage.of` to allow customization of ignored types and tracking of seen objects.
|
|
100
|
+
|
|
97
101
|
### v0.8.4
|
|
98
102
|
|
|
99
103
|
- Fix bugs when printing reports due to interface mismatch with `Memory::Usage`.
|
data/releases.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Releases
|
|
2
2
|
|
|
3
|
+
## v0.9.0
|
|
4
|
+
|
|
5
|
+
- Explicit `ignore:` and `seen:` parameters for `Memory::Usage.of` to allow customization of ignored types and tracking of seen objects.
|
|
6
|
+
|
|
3
7
|
## v0.8.4
|
|
4
8
|
|
|
5
9
|
- Fix bugs when printing reports due to interface mismatch with `Memory::Usage`.
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: memory
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Saffron
|
|
@@ -29,7 +29,6 @@ authors:
|
|
|
29
29
|
- Olle Jonsson
|
|
30
30
|
- Vasily Kolesnikov
|
|
31
31
|
- William Tabi
|
|
32
|
-
autorequire:
|
|
33
32
|
bindir: bin
|
|
34
33
|
cert_chain:
|
|
35
34
|
- |
|
|
@@ -61,7 +60,7 @@ cert_chain:
|
|
|
61
60
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
|
62
61
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
|
63
62
|
-----END CERTIFICATE-----
|
|
64
|
-
date:
|
|
63
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
65
64
|
dependencies:
|
|
66
65
|
- !ruby/object:Gem::Dependency
|
|
67
66
|
name: bake
|
|
@@ -105,8 +104,6 @@ dependencies:
|
|
|
105
104
|
- - ">="
|
|
106
105
|
- !ruby/object:Gem::Version
|
|
107
106
|
version: '0'
|
|
108
|
-
description:
|
|
109
|
-
email:
|
|
110
107
|
executables: []
|
|
111
108
|
extensions: []
|
|
112
109
|
extra_rdoc_files: []
|
|
@@ -133,7 +130,6 @@ licenses:
|
|
|
133
130
|
metadata:
|
|
134
131
|
documentation_uri: https://socketry.github.io/memory/
|
|
135
132
|
source_code_uri: https://github.com/socketry/memory.git
|
|
136
|
-
post_install_message:
|
|
137
133
|
rdoc_options: []
|
|
138
134
|
require_paths:
|
|
139
135
|
- lib
|
|
@@ -148,8 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
148
144
|
- !ruby/object:Gem::Version
|
|
149
145
|
version: '0'
|
|
150
146
|
requirements: []
|
|
151
|
-
rubygems_version: 3.
|
|
152
|
-
signing_key:
|
|
147
|
+
rubygems_version: 3.7.2
|
|
153
148
|
specification_version: 4
|
|
154
149
|
summary: Memory profiling routines for Ruby 2.3+
|
|
155
150
|
test_files: []
|
metadata.gz.sig
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
R�,դ�J=�o����(��vI�9M�&��̾
|
|
2
|
+
DP�`Z�#$�i���y�j;��Z�k0�L82��������o�uND�%B�W��U�a�Wiܛ��Cr1�y|�nq7��)���k�>|�6�'i-�X��5�G8\�E��p�ڶ~�{q���q��ތ����l=��F"�(�0�@���ؓ���q!߅k)m���2���|�[F`�*����C��������[��Cl���]��i����|u`tK����;�x1o�p�
|
|
3
|
+
�o����c))IZ&�P���`$q�hgo
|