mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Single: DefaultSerializer 26898.121201442846/ips; 76 objects ArraySerializer 4341.036271334371/ips; 346 objects ArraySerializer: each_serializer: DefaultSerializer 17288.40932750992/ips; 122 objects FlatAuthorSerializer 26483.24239241187/ips; 85 objects ArraySerializer: each_serializer: FlatAuthorSerializer 19398.298446172044/ips; 114 objects AuthorWithDefaultRelationshipsSerializer 86.69406914259615/ips; 18634 objects ArraySerializer: each_serializer: AuthorWithDefaultRelationshipsSerializer 80.46248323664165/ips; 20091 objects
61 lines
1.6 KiB
Ruby
61 lines
1.6 KiB
Ruby
# https://github.com/rails-api/active_model_serializers/pull/872
|
|
# approx ref 792fb8a9053f8db3c562dae4f40907a582dd1720 to test against
|
|
require 'bundler/setup'
|
|
|
|
require 'rails'
|
|
require 'active_model'
|
|
require 'active_support'
|
|
require 'active_support/json'
|
|
require 'action_controller'
|
|
require 'action_controller/test_case'
|
|
require 'action_controller/railtie'
|
|
abort "Rails application already defined: #{Rails.application.class}" if Rails.application
|
|
|
|
class NullLogger < Logger
|
|
def initialize(*_args)
|
|
end
|
|
|
|
def add(*_args, &_block)
|
|
end
|
|
end
|
|
class BenchmarkLogger < ActiveSupport::Logger
|
|
def initialize
|
|
@file = StringIO.new
|
|
super(@file)
|
|
end
|
|
|
|
def messages
|
|
@file.rewind
|
|
@file.read
|
|
end
|
|
end
|
|
# ref: https://gist.github.com/bf4/8744473
|
|
class BenchmarkApp < Rails::Application
|
|
# Set up production configuration
|
|
config.eager_load = true
|
|
config.cache_classes = true
|
|
# CONFIG: CACHE_ON={on,off}
|
|
config.action_controller.perform_caching = ENV['CACHE_ON'] != 'off'
|
|
config.action_controller.cache_store = ActiveSupport::Cache.lookup_store(:memory_store)
|
|
|
|
config.active_support.test_order = :random
|
|
config.secret_token = 'S' * 30
|
|
config.secret_key_base = 'abc123'
|
|
config.consider_all_requests_local = false
|
|
|
|
# otherwise deadlock occurred
|
|
config.middleware.delete 'Rack::Lock'
|
|
|
|
# to disable log files
|
|
config.logger = NullLogger.new
|
|
config.active_support.deprecation = :log
|
|
config.log_level = :info
|
|
end
|
|
|
|
require 'active_model_serializers'
|
|
|
|
# Initialize app before any serializers are defined, for running across revisions.
|
|
# ref: https://github.com/rails-api/active_model_serializers/pull/1478
|
|
Rails.application.initialize!
|
|
|