New upstream version 12.1.14
This commit is contained in:
parent
da3fd6718a
commit
e7ff6cc2ae
15 changed files with 68 additions and 32 deletions
|
@ -2,6 +2,10 @@
|
|||
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||
entry.
|
||||
|
||||
## 12.1.14
|
||||
|
||||
- No changes.
|
||||
|
||||
## 12.1.13
|
||||
|
||||
### Security (1 change)
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
12.1.13
|
||||
12.1.14
|
||||
|
|
10
derailed-benchmarks/.github/workflows/check_changelog.yml
vendored
Normal file
10
derailed-benchmarks/.github/workflows/check_changelog.yml
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
name: Check Changelog
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Check that CHANGELOG is touched
|
||||
run: |
|
||||
cat $GITHUB_EVENT_PATH | jq .pull_request.title | grep -i '\[\(\(changelog skip\)\|\(ci skip\)\)\]' || git diff remotes/origin/${{ github.base_ref }} --name-only | grep CHANGELOG.md
|
|
@ -1,5 +1,9 @@
|
|||
# A Log of Changes!
|
||||
|
||||
## 1.4.1
|
||||
|
||||
- Rake dependency now allows for Rake 13 (https://github.com/schneems/derailed_benchmarks/pull/151)
|
||||
|
||||
## 1.4.0
|
||||
|
||||
- Allow configuration of `perf:ips` benchmark.
|
||||
|
|
|
@ -443,9 +443,6 @@ When the test is done it will output which commit "won" and by how much:
|
|||
1.0870x [older/newer]
|
||||
8.0026% [(older - newer) / older * 100]
|
||||
[13d6aa3a7b] "Merge pull request #36284 from kamipo/fix_eager_loading_with_string_joins" - (11.9255485 seconds)
|
||||
|
||||
P-value: 4.635595463712749e-05
|
||||
Is significant? (P-value < 0.05): true
|
||||
```
|
||||
|
||||
You can provide this to the Rails team along with the example app you used to benchmark (so they can independently verify if needed).
|
||||
|
|
|
@ -27,7 +27,7 @@ Gem::Specification.new do |gem|
|
|||
gem.add_dependency "get_process_mem", "~> 0"
|
||||
gem.add_dependency "benchmark-ips", "~> 2"
|
||||
gem.add_dependency "rack", ">= 1"
|
||||
gem.add_dependency "rake", "> 10", "< 13"
|
||||
gem.add_dependency "rake", "> 10", "< 14"
|
||||
gem.add_dependency "thor", "~> 0.19"
|
||||
gem.add_dependency "ruby-statistics", ">= 2.1"
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "rails", "6.0.0.rc1"
|
||||
gem "rails", "6.0.0"
|
||||
|
||||
group :development, :test do
|
||||
gem "sqlite3", platform: [:ruby, :mswin, :mingw]
|
||||
|
|
|
@ -77,6 +77,14 @@ Kernel.define_singleton_method(:require) do |file|
|
|||
end
|
||||
end
|
||||
|
||||
class Object
|
||||
private
|
||||
|
||||
def require(path)
|
||||
Kernel.require(path)
|
||||
end
|
||||
end
|
||||
|
||||
# Don't forget to assign a cost to the top level
|
||||
cost_before_requiring_anything = GetProcessMem.new.mb
|
||||
TOP_REQUIRE.cost = cost_before_requiring_anything
|
||||
|
|
|
@ -42,16 +42,14 @@ module DerailedBenchmarks
|
|||
|
||||
def call
|
||||
@files.each(&:call)
|
||||
@stats = students_t_test
|
||||
@stats = statistical_test
|
||||
self
|
||||
end
|
||||
|
||||
def students_t_test(series_1=oldest.values, series_2=newest.values)
|
||||
StatisticalTest::TTest.perform(
|
||||
alpha = 0.05,
|
||||
:two_tail,
|
||||
series_1,
|
||||
series_2
|
||||
def statistical_test(series_1=oldest.values, series_2=newest.values)
|
||||
StatisticalTest::KSTest.two_samples(
|
||||
group_one: series_1,
|
||||
group_two: series_2
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -59,8 +57,12 @@ module DerailedBenchmarks
|
|||
@stats[:alternative]
|
||||
end
|
||||
|
||||
def p_value
|
||||
@stats[:p_value].to_f
|
||||
def d_max
|
||||
@stats[:d_max].to_f
|
||||
end
|
||||
|
||||
def d_critical
|
||||
@stats[:d_critical].to_f
|
||||
end
|
||||
|
||||
def x_faster
|
||||
|
@ -91,8 +93,11 @@ module DerailedBenchmarks
|
|||
io.puts
|
||||
io.puts "Iterations per sample: #{ENV["TEST_COUNT"]}"
|
||||
io.puts "Samples: #{newest.values.length}"
|
||||
io.puts "P-value: #{p_value}"
|
||||
io.puts "Is significant? (P-value < 0.05): #{significant?}"
|
||||
io.puts
|
||||
io.puts "Test type: Kolmogorov Smirnov"
|
||||
io.puts "Is significant? (max > critical): #{significant?}"
|
||||
io.puts "D critical: #{d_critical}"
|
||||
io.puts "D max: #{d_max}"
|
||||
io.puts
|
||||
end
|
||||
end
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace :perf do
|
|||
end
|
||||
|
||||
stats = DerailedBenchmarks::StatsFromDir.new(branch_info)
|
||||
ENV["DERAILED_STOP_VALID_COUNT"] ||= "10"
|
||||
ENV["DERAILED_STOP_VALID_COUNT"] ||= "50"
|
||||
stop_valid_count = Integer(ENV["DERAILED_STOP_VALID_COUNT"])
|
||||
|
||||
times_significant = 0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module DerailedBenchmarks
|
||||
VERSION = "1.4.0"
|
||||
VERSION = "1.4.1"
|
||||
end
|
||||
|
|
|
@ -18,8 +18,8 @@ class StatsFromDirTest < ActiveSupport::TestCase
|
|||
assert_equal "winner", newest.name
|
||||
assert_equal "loser", oldest.name
|
||||
|
||||
assert 3.6e-05 < stats.p_value
|
||||
assert 3.8e-05 > stats.p_value
|
||||
assert_in_delta 0.26, stats.d_max, 0.01
|
||||
assert_in_delta 0.1730818382602285, stats.d_critical, 0.00001
|
||||
assert_equal true, stats.significant?
|
||||
|
||||
assert_equal "1.0062", stats.x_faster
|
||||
|
@ -36,8 +36,12 @@ class StatsFromDirTest < ActiveSupport::TestCase
|
|||
oldest = stats.oldest
|
||||
|
||||
# Test fixture for banner
|
||||
def stats.p_value
|
||||
"0.000037"
|
||||
def stats.d_max
|
||||
"0.037"
|
||||
end
|
||||
|
||||
def stats.d_critical
|
||||
"0.001"
|
||||
end
|
||||
|
||||
def newest.average
|
||||
|
@ -95,7 +99,7 @@ EOM
|
|||
|
||||
test "stats from samples with slightly different sizes" do
|
||||
stats = DerailedBenchmarks::StatsFromDir.new({})
|
||||
out = stats.students_t_test([100,101,102], [1,3])
|
||||
out = stats.statistical_test([100,101,102, 100, 101, 99], [1,3, 3, 2])
|
||||
assert out[:alternative]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
require File.expand_path('../application', __FILE__)
|
||||
|
||||
# Initialize the rails application
|
||||
Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
|
||||
if Rails.application.config.active_record.sqlite3.respond_to?(:represent_boolean_as_integer)
|
||||
Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
|
||||
end
|
||||
|
||||
Dummy::Application.initialize!
|
||||
|
|
|
@ -32,5 +32,4 @@ ActiveRecord::Schema.define(version: 20141210070547) do
|
|||
|
||||
add_index "users", ["email"], name: "index_users_on_email", unique: true
|
||||
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
||||
|
||||
end
|
||||
|
|
|
@ -29,16 +29,19 @@ Capybara.default_driver = :rack_test
|
|||
Capybara.default_selector = :css
|
||||
|
||||
require_relative "rails_app/config/environment"
|
||||
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../rails_app/db/migrate", __dir__)]
|
||||
|
||||
if Rails.gem_version >= Gem::Version.new('5.2.0')
|
||||
ActiveRecord::MigrationContext
|
||||
.new(File.expand_path("../rails_app/db/migrate/", __FILE__))
|
||||
.migrate
|
||||
# https://github.com/plataformatec/devise/blob/master/test/orm/active_record.rb
|
||||
migrate_path = File.expand_path("../rails_app/db/migrate", __FILE__)
|
||||
if Rails.version.start_with? '6'
|
||||
ActiveRecord::MigrationContext.new(migrate_path, ActiveRecord::SchemaMigration).migrate
|
||||
elsif Rails.version.start_with? '5.2'
|
||||
ActiveRecord::MigrationContext.new(migrate_path).migrate
|
||||
else
|
||||
ActiveRecord::Migrator.migrate(File.expand_path("../rails_app/db/migrate/", __FILE__))
|
||||
ActiveRecord::Migrator.migrate(migrate_path)
|
||||
end
|
||||
|
||||
ActiveRecord::Migration.maintain_test_schema!
|
||||
|
||||
# Load support files
|
||||
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
||||
|
||||
|
|
Loading…
Reference in a new issue