schwad_performance_logger 0.4.1 → 0.5.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
- data/CHANGELOG.md +0 -0
- data/Gemfile.lock +43 -18
- data/lib/schwad_performance_logger/schwad_performance_logger.rb +58 -32
- data/lib/schwad_performance_logger/version.rb +1 -1
- data/schwad_performance_logger.gemspec +1 -2
- metadata +10 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cd2043d45f57759843573942457ed5c635fb32d911d0119178c798ca162ece9
|
4
|
+
data.tar.gz: 79f240f10f256b9b04513385486b24e26da6d352dee79587ea8802ef41b517a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2a1badb587b6c532a170a80fccef850f085ba38cfc6e9a15286eee90b97ee9f9778efd95ad166bf7978acbd4f0ba08040b2635e397749f581857c55944a7f62
|
7
|
+
data.tar.gz: 7df45a0cebe6b180a4822c8046803d99219d09a99a6841fbb9517f2204c24d955767063bf787e76f3b43406528f75deec6838bd9a1a1204ef88997ed827dbde7
|
data/CHANGELOG.md
ADDED
File without changes
|
data/Gemfile.lock
CHANGED
@@ -1,37 +1,62 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
schwad_performance_logger (0.
|
4
|
+
schwad_performance_logger (0.5.0)
|
5
|
+
benchmark-ips
|
5
6
|
get_process_mem
|
7
|
+
memory_profiler
|
6
8
|
|
7
9
|
GEM
|
8
10
|
remote: https://rubygems.org/
|
9
11
|
specs:
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
benchmark-ips (2.13.0)
|
13
|
+
diff-lcs (1.5.1)
|
14
|
+
ffi (1.17.0)
|
15
|
+
ffi (1.17.0-aarch64-linux-gnu)
|
16
|
+
ffi (1.17.0-aarch64-linux-musl)
|
17
|
+
ffi (1.17.0-arm-linux-gnu)
|
18
|
+
ffi (1.17.0-arm-linux-musl)
|
19
|
+
ffi (1.17.0-arm64-darwin)
|
20
|
+
ffi (1.17.0-x86-linux-gnu)
|
21
|
+
ffi (1.17.0-x86-linux-musl)
|
22
|
+
ffi (1.17.0-x86_64-darwin)
|
23
|
+
ffi (1.17.0-x86_64-linux-gnu)
|
24
|
+
ffi (1.17.0-x86_64-linux-musl)
|
25
|
+
get_process_mem (0.2.7)
|
26
|
+
ffi (~> 1.0)
|
27
|
+
memory_profiler (1.0.2)
|
28
|
+
rake (13.2.1)
|
29
|
+
rspec (3.13.0)
|
30
|
+
rspec-core (~> 3.13.0)
|
31
|
+
rspec-expectations (~> 3.13.0)
|
32
|
+
rspec-mocks (~> 3.13.0)
|
33
|
+
rspec-core (3.13.0)
|
34
|
+
rspec-support (~> 3.13.0)
|
35
|
+
rspec-expectations (3.13.1)
|
20
36
|
diff-lcs (>= 1.2.0, < 2.0)
|
21
|
-
rspec-support (~> 3.
|
22
|
-
rspec-mocks (3.
|
37
|
+
rspec-support (~> 3.13.0)
|
38
|
+
rspec-mocks (3.13.1)
|
23
39
|
diff-lcs (>= 1.2.0, < 2.0)
|
24
|
-
rspec-support (~> 3.
|
25
|
-
rspec-support (3.
|
40
|
+
rspec-support (~> 3.13.0)
|
41
|
+
rspec-support (3.13.1)
|
26
42
|
|
27
43
|
PLATFORMS
|
44
|
+
aarch64-linux-gnu
|
45
|
+
aarch64-linux-musl
|
46
|
+
arm-linux-gnu
|
47
|
+
arm-linux-musl
|
48
|
+
arm64-darwin
|
28
49
|
ruby
|
50
|
+
x86-linux-gnu
|
51
|
+
x86-linux-musl
|
52
|
+
x86_64-darwin
|
53
|
+
x86_64-linux-gnu
|
54
|
+
x86_64-linux-musl
|
29
55
|
|
30
56
|
DEPENDENCIES
|
31
|
-
|
32
|
-
rake (~> 10.0)
|
57
|
+
rake (~> 13.0)
|
33
58
|
rspec (~> 3.0)
|
34
59
|
schwad_performance_logger!
|
35
60
|
|
36
61
|
BUNDLED WITH
|
37
|
-
|
62
|
+
2.5.11
|
@@ -1,27 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
# `log/schwad_performance_logger` for traditional info-level logging. It also gives
|
5
|
-
# timing and memory usage info. Options include disabling extra logging,
|
6
|
-
# including a 'sleep' parameter to have the application pause at each output
|
7
|
-
# (so your puts info is not drowned). This does not impact the time output
|
8
|
-
#
|
9
|
-
# It also puts out delta memory and time so you can see 'between-log' spikes.
|
10
|
-
#
|
11
|
-
# This is stored in the system as 'second_delta'
|
12
|
-
#
|
13
|
-
class PLogger
|
1
|
+
require 'logger'
|
2
|
+
require 'csv'
|
3
|
+
require 'get_process_mem'
|
14
4
|
|
5
|
+
class PLogger
|
15
6
|
attr_accessor :initial_memory, :initial_time, :current_memory, :last_memory, :current_time, :last_time, :delta_memory, :second_delta_memory, :delta_time, :second_delta_time, :sleep_amount, :sleep_adjuster, :logger
|
16
|
-
|
17
7
|
attr_reader :options
|
18
8
|
|
19
|
-
def initialize(
|
20
|
-
system('mkdir log')
|
21
|
-
system('mkdir log/schwad_performance_logger')
|
9
|
+
def initialize(options = {})
|
10
|
+
system('mkdir -p log/schwad_performance_logger')
|
22
11
|
filename = "./log/schwad_performance_logger/performance-#{Time.now.strftime("%e-%m_%l:%M%p")}.log"
|
23
12
|
File.write(filename, "")
|
24
|
-
|
13
|
+
initialize_csv
|
25
14
|
@logger = Logger.new(filename)
|
26
15
|
@options = options
|
27
16
|
@sleep_amount = options[:pause].to_i
|
@@ -33,33 +22,50 @@ class PLogger
|
|
33
22
|
@current_time = @initial_time
|
34
23
|
@last_time = @initial_time
|
35
24
|
@last_memory = @initial_memory
|
36
|
-
@sleep_adjuster = -@sleep_amount #This is to remove the sleeps for performance checking.
|
25
|
+
@sleep_adjuster = -@sleep_amount # This is to remove the sleeps for performance checking.
|
37
26
|
log_performance('initialization')
|
38
27
|
end
|
39
28
|
|
40
|
-
def log_performance(memo=nil)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
29
|
+
def log_performance(memo = nil)
|
30
|
+
if block_given?
|
31
|
+
update_checks
|
32
|
+
yield
|
33
|
+
update_checks
|
34
|
+
puts_performance("After: #{memo}", gblock: true) unless @options[:puts] == false
|
35
|
+
logger_performance("After: #{memo}") unless @options[:log] == false
|
36
|
+
csv_performance("After: #{memo}") unless @options[:csv] == false
|
37
|
+
else
|
38
|
+
update_checks
|
39
|
+
puts_performance(memo) unless @options[:puts] == false
|
40
|
+
logger_performance(memo) unless @options[:log] == false
|
41
|
+
csv_performance(memo) unless @options[:csv] == false
|
42
|
+
end
|
45
43
|
sleep @sleep_amount
|
46
44
|
end
|
45
|
+
alias :log :log_performance
|
46
|
+
alias :lp :log_performance
|
47
47
|
|
48
48
|
private
|
49
49
|
|
50
|
-
def puts_performance(memo)
|
51
|
-
|
52
|
-
puts "
|
53
|
-
puts
|
50
|
+
def puts_performance(memo, gblock: false)
|
51
|
+
separator = '*' * 80
|
52
|
+
puts "\e[34m#{separator}\e[0m"
|
53
|
+
puts "\e[32m#{memo}\e[0m"
|
54
|
+
if gblock
|
55
|
+
puts format_output_block
|
56
|
+
else
|
57
|
+
puts format_output
|
58
|
+
end
|
59
|
+
puts "\e[34m#{separator}\e[0m"
|
54
60
|
end
|
55
61
|
|
56
62
|
def logger_performance(memo)
|
57
|
-
@logger.
|
63
|
+
@logger.info("#{options[:full_memo]}\n----------------------\n\n#{memo}:\n\n#{format_output}\n--------------------\n\n")
|
58
64
|
end
|
59
65
|
|
60
|
-
def
|
61
|
-
CSV.open("schwad_performance_logger_measurements.csv", "
|
62
|
-
csv << []
|
66
|
+
def initialize_csv
|
67
|
+
CSV.open("schwad_performance_logger_measurements.csv", "wb") do |csv|
|
68
|
+
csv << ["Full Memo", "Memo", "Current Memory (Mb)", "Memory Since Start (Mb)", "Memory Since Last Log (Mb)", "Time Passed (s)", "Time Since Last Run (s)"]
|
63
69
|
end
|
64
70
|
end
|
65
71
|
|
@@ -80,4 +86,24 @@ class PLogger
|
|
80
86
|
@second_delta_time = @current_time - @last_time
|
81
87
|
@delta_time = (@current_time - @initial_time) - @sleep_adjuster
|
82
88
|
end
|
89
|
+
|
90
|
+
def format_output_block
|
91
|
+
<<~OUTPUT
|
92
|
+
\e[33mCurrent memory:\e[0m #{@current_memory} Mb
|
93
|
+
\e[33mDifference since start:\e[0m #{@delta_memory} Mb
|
94
|
+
\e[33mMemory used within block:\e[0m #{@second_delta_memory} Mb
|
95
|
+
\e[33mTime passed:\e[0m #{@delta_time * 1000} milliseconds
|
96
|
+
\e[33mTime executing block:\e[0m #{@second_delta_time * 1000} milliseconds
|
97
|
+
OUTPUT
|
98
|
+
end
|
99
|
+
|
100
|
+
def format_output
|
101
|
+
<<~OUTPUT
|
102
|
+
\e[33mCurrent memory:\e[0m #{@current_memory} Mb
|
103
|
+
\e[33mDifference since start:\e[0m #{@delta_memory} Mb
|
104
|
+
\e[33mDifference since last log:\e[0m #{@second_delta_memory} Mb
|
105
|
+
\e[33mTime passed:\e[0m #{@delta_time * 1000} milliseconds
|
106
|
+
\e[33mTime since last run:\e[0m #{@second_delta_time * 1000} milliseconds
|
107
|
+
OUTPUT
|
108
|
+
end
|
83
109
|
end
|
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency "benchmark-ips"
|
27
27
|
spec.add_dependency "memory_profiler"
|
28
28
|
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
29
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
31
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
32
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schwad_performance_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Schwaderer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: get_process_mem
|
@@ -52,34 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.16'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.16'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: rake
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
61
|
+
version: '13.0'
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
68
|
+
version: '13.0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rspec
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +80,7 @@ dependencies:
|
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: '3.0'
|
97
|
-
description:
|
83
|
+
description:
|
98
84
|
email:
|
99
85
|
- nicholas.schwaderer@gmail.com
|
100
86
|
executables: []
|
@@ -104,6 +90,7 @@ files:
|
|
104
90
|
- ".gitignore"
|
105
91
|
- ".rspec"
|
106
92
|
- ".travis.yml"
|
93
|
+
- CHANGELOG.md
|
107
94
|
- CODE_OF_CONDUCT.md
|
108
95
|
- Gemfile
|
109
96
|
- Gemfile.lock
|
@@ -120,7 +107,7 @@ homepage: https://github.com/Schwad/schwad_performance_logger
|
|
120
107
|
licenses:
|
121
108
|
- MIT
|
122
109
|
metadata: {}
|
123
|
-
post_install_message:
|
110
|
+
post_install_message:
|
124
111
|
rdoc_options: []
|
125
112
|
require_paths:
|
126
113
|
- lib
|
@@ -135,9 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
122
|
- !ruby/object:Gem::Version
|
136
123
|
version: '0'
|
137
124
|
requirements: []
|
138
|
-
|
139
|
-
|
140
|
-
signing_key:
|
125
|
+
rubygems_version: 3.4.1
|
126
|
+
signing_key:
|
141
127
|
specification_version: 4
|
142
128
|
summary: Track your memory and time performance in console, csv and/or logs.
|
143
129
|
test_files: []
|