bench_bloc 0.1.15 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 339f07511f017128a7c7142b2c996c0a1130336dbbcbe23896d8eb48205d01b8
4
- data.tar.gz: afa0caf488fd3784a1a73f1b392ebf08b72a5da194c182111ebfb9b71e63f0a6
3
+ metadata.gz: 0bc2d40432e563a798ff8e707b0679e4214a0d68854c5664448db2bce001a6ec
4
+ data.tar.gz: 3779f500f195ca5dac4bf3e0f062ae9e91e4e2a16b16a8c040eb6af3a2183f43
5
5
  SHA512:
6
- metadata.gz: 3b0126270b0c82e7d67d21bfe49e751cd0d36cd38cef8b9e2e4cf46546ac290c54ca7210702647a371db8f309a201268b257afcfa4d64c0f53318b10e3221665
7
- data.tar.gz: fe4dd940274998f9aa3d007a6e88a88925dc87fff74e086f94efb0d9baf2eaacf45f3c9009ea27156853373c50ae1370dfbb5c874cd20699174483b3b6a1d958
6
+ metadata.gz: 592cc3deeb482b9dd00dc44f68e9f77fcdf58b077f7d57f5b3d12b2c64840d333948519ad9dcd3159a9f66180eb505dcc7768468eaa7b952ec1c36c30de3e62a
7
+ data.tar.gz: b3b8dc8d85967cd8b2c4e0924c73b07ad7afc41adaebed6eb968b047eb99ba8f12a09e650ff2d24dc8e38ccf490cfc7f60045a4e5248490b819f1e86fbda4703
@@ -30,7 +30,9 @@ module BenchBloc
30
30
  def run_benchmark
31
31
  Benchmark.bm do |x|
32
32
  [to_profile.call].flatten.each do |otp|
33
- x.report(label.call(otp)) do
33
+ new_label = label.call(otp)
34
+ set_db_logger
35
+ x.report(new_label) do
34
36
  profile.call(otp)
35
37
  end
36
38
  end
@@ -52,6 +54,12 @@ module BenchBloc
52
54
  @to_profile = bloc_task[:to_profile]
53
55
  @ruby_prof = bloc_task[:ruby_prof] || false
54
56
  end
57
+
58
+ def set_db_logger
59
+ if defined?(Rails)
60
+ ActiveRecord::Base.logger = ::Logger.new("#{Rails.root}/log/bench_bloc_#{Time.now}_db_queries.log")
61
+ end
62
+ end
55
63
  end
56
64
 
57
65
  end
@@ -9,15 +9,15 @@ module BenchBloc
9
9
  # TODO: Split into a BenchmarkLogger class
10
10
  def log_results
11
11
  results.sort! { |a, b| b.real <=> a.real }
12
- formatted_results =
12
+ formatted_results =
13
13
  BenchBloc::Formatter::Benchmark.new(results, title).format_results
14
14
  write_to_log formatted_results
15
15
  end
16
16
 
17
17
  def write_to_log results
18
- if defined?(Rails)
19
- # Rails Logger not working, naming conflict I think,
20
- # or it needs to be required
18
+ if defined?(Rails)
19
+ # Rails Logger not working, naming conflict I think,
20
+ # or it needs to be required
21
21
  # log = Rails::Logger.new("#{Rails.root}/log/benchmarks.log")
22
22
  # log.info(results)
23
23
  f = File.new("#{Rails.root}/log/benchmarks.log", "w")
@@ -26,8 +26,28 @@ module BenchBloc
26
26
  else
27
27
  f = File.new("benchmarks.log", "w")
28
28
  f.puts(results)
29
+ f.puts(parse_db_logger)
29
30
  f.close
30
31
  end
31
32
  end
33
+
34
+ private
35
+
36
+ def parse_db_logger
37
+ if defined?(Rails)
38
+ log_data = File.read("#{Rails.root}/log/db-queries.log").split("\n")
39
+ base_aggregator = {
40
+ SELECT: 0,
41
+ INSERT: 0,
42
+ UPDATE: 0,
43
+ DELETE: 0
44
+ }
45
+ query_data = log_data.reduce(base_aggregator) do |agg, ld|
46
+ sql_verb = ld[/SELECT|INSERT|UPDATE|DELETE/]
47
+ agg[sql_verb.to_sym] += 1 if sql_verb.present?
48
+ agg
49
+ end
50
+ end
51
+ end
32
52
  end
33
53
  end
@@ -1,3 +1,3 @@
1
1
  module BenchBloc
2
- VERSION = "0.1.15"
2
+ VERSION = "0.1.16"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bench_bloc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-26 00:00:00.000000000 Z
11
+ date: 2020-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler