leak_profiler 0.4.0 → 0.4.1
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
- data/Rakefile +5 -0
- data/lib/leak_profiler/leak_profiler.rb +16 -0
- data/sig/generated/leak_profiler/leak_profiler.rbs +27 -0
- metadata +3 -3
- data/sig/leak_profiler.rbs +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 386f532ac6ac35f8f971e9fcc94d29e98d509feb16ffa49f471235e07f74fe64
|
4
|
+
data.tar.gz: 138da4ee3ac1cd9e2057e3be13e955a3d0ea044426de4bca298ae8255bd62777
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d02acbee4be5c1ea02e22cff0ad8653a5028be7b660bfac35533c75eca52d6eb040d596e817117c189e72318c79b60bd0ee17ffe499e273c5f98ea8d1e872d6
|
7
|
+
data.tar.gz: 06aee1fc3dac01bf958d60870bfdd82debcc4605f2589b4477435e9f6955c2035d4cf220d718673074c633e1209e823e420e2ab8499d60805b5fe46f8e652eee
|
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# rbs_inline: enabled
|
4
|
+
|
3
5
|
require_relative 'allocations'
|
4
6
|
require_relative 'memory_memsize'
|
5
7
|
require_relative 'memory_usage'
|
@@ -7,6 +9,8 @@ require 'fileutils'
|
|
7
9
|
require 'logger'
|
8
10
|
|
9
11
|
class LeakProfiler
|
12
|
+
# @rbs output_dir: String
|
13
|
+
# @rbs return: void
|
10
14
|
def initialize(output_dir: './leak_profiler')
|
11
15
|
@output_dir = output_dir
|
12
16
|
@threads = []
|
@@ -14,6 +18,12 @@ class LeakProfiler
|
|
14
18
|
FileUtils.mkdir_p(@output_dir)
|
15
19
|
end
|
16
20
|
|
21
|
+
# @rbs interval: Integer
|
22
|
+
# @rbs max_allocations: Integer
|
23
|
+
# @rbs max_referrers: Integer
|
24
|
+
# @rbs logger: untyped
|
25
|
+
# @rbs filename: String
|
26
|
+
# @rbs return: self
|
17
27
|
def report(interval: 30, max_allocations: 10, max_referrers: 3, logger: nil, filename: nil)
|
18
28
|
filename ||= "leak_profiler-#{Process.pid}.log"
|
19
29
|
logger ||= Logger.new(File.join(@output_dir, filename))
|
@@ -24,6 +34,9 @@ class LeakProfiler
|
|
24
34
|
self
|
25
35
|
end
|
26
36
|
|
37
|
+
# @rbs interval: Integer
|
38
|
+
# @rbs filename: String
|
39
|
+
# @rbs return: self
|
27
40
|
def report_rss(interval: 1, filename: nil)
|
28
41
|
profiler = LeakProfiler::MemoryUsage.new(output_dir: @output_dir, interval: interval, filename: filename)
|
29
42
|
profiler.report
|
@@ -32,6 +45,9 @@ class LeakProfiler
|
|
32
45
|
self
|
33
46
|
end
|
34
47
|
|
48
|
+
# @rbs interval: Integer
|
49
|
+
# @rbs filename: String
|
50
|
+
# @rbs return: self
|
35
51
|
def report_memsize(interval: 1, filename: nil)
|
36
52
|
profiler = LeakProfiler::MemoryMemsize.new(output_dir: @output_dir, interval: interval, filename: filename)
|
37
53
|
profiler.report
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Generated from lib/leak_profiler/leak_profiler.rb with RBS::Inline
|
2
|
+
|
3
|
+
class LeakProfiler
|
4
|
+
# @rbs output_dir: String
|
5
|
+
# @rbs return: void
|
6
|
+
def initialize: (?output_dir: String) -> void
|
7
|
+
|
8
|
+
# @rbs interval: Integer
|
9
|
+
# @rbs max_allocations: Integer
|
10
|
+
# @rbs max_referrers: Integer
|
11
|
+
# @rbs logger: untyped
|
12
|
+
# @rbs filename: String
|
13
|
+
# @rbs return: self
|
14
|
+
def report: (?interval: Integer, ?max_allocations: Integer, ?max_referrers: Integer, ?logger: untyped, ?filename: String) -> self
|
15
|
+
|
16
|
+
# @rbs interval: Integer
|
17
|
+
# @rbs filename: String
|
18
|
+
# @rbs return: self
|
19
|
+
def report_rss: (?interval: Integer, ?filename: String) -> self
|
20
|
+
|
21
|
+
# @rbs interval: Integer
|
22
|
+
# @rbs filename: String
|
23
|
+
# @rbs return: self
|
24
|
+
def report_memsize: (?interval: Integer, ?filename: String) -> self
|
25
|
+
|
26
|
+
def shutdown: () -> untyped
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leak_profiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Watson
|
@@ -40,7 +40,7 @@ files:
|
|
40
40
|
- lib/leak_profiler/leak_profiler.rb
|
41
41
|
- lib/leak_profiler/memory_memsize.rb
|
42
42
|
- lib/leak_profiler/memory_usage.rb
|
43
|
-
- sig/leak_profiler.rbs
|
43
|
+
- sig/generated/leak_profiler/leak_profiler.rbs
|
44
44
|
- test/test_leak_profiler.rb
|
45
45
|
homepage: https://github.com/Watson1978/leak_profiler
|
46
46
|
licenses:
|
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: '0'
|
65
65
|
requirements: []
|
66
|
-
rubygems_version: 3.6.
|
66
|
+
rubygems_version: 3.6.7
|
67
67
|
specification_version: 4
|
68
68
|
summary: A simple profiler for Ruby to detect memory leak.
|
69
69
|
test_files: []
|
data/sig/leak_profiler.rbs
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
class LeakProfiler
|
2
|
-
def initialize: (?output_dir: String) -> void
|
3
|
-
|
4
|
-
# TODO: Use valid type for logger
|
5
|
-
def report: (?interval: Integer, ?max_allocations: Integer, ?max_referrers: Integer, ?logger: Object, ?filename: String) -> self
|
6
|
-
|
7
|
-
def report_rss: (?interval: Integer, ?filename: String) -> self
|
8
|
-
|
9
|
-
def report_memsize: (?interval: Integer, ?filename: String) -> self
|
10
|
-
end
|