From 6c90fc98c1acb381846ba5e4c4376a58db219d66 Mon Sep 17 00:00:00 2001 From: Benjamin Fleischer Date: Thu, 12 Oct 2017 23:54:15 -0500 Subject: [PATCH] Turn off (slow) AMS case transform MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` $ bundle exec ruby benchmark.rb -- create_table("comments", {:force=>:cascade}) -> 0.0127s -- create_table("posts", {:force=>:cascade}) -> 0.0030s -- create_table("users", {:force=>:cascade}) -> 0.0018s Warming up -------------------------------------- ams 1.000 i/100ms jsonapi-rb 4.000 i/100ms ams eager 2.000 i/100ms jsonapi-rb eager 9.000 i/100ms Calculating ------------------------------------- ams 16.572 (± 1.4%) i/s - 164.000 in 10.003051s jsonapi-rb 45.722 (± 0.9%) i/s - 460.000 in 10.084399s ams eager 21.037 (± 0.8%) i/s - 212.000 in 10.099436s jsonapi-rb eager 97.010 (± 1.3%) i/s - 972.000 in 10.069614s with 95.0% confidence Comparison: jsonapi-rb eager: 97.0 i/s jsonapi-rb : 45.7 i/s - 2.12x (± 0.03) slower ams eager: 21.0 i/s - 4.61x (± 0.07) slower ams : 16.6 i/s - 5.85x (± 0.11) slower with 95.0% confidence Calculating ------------------------------------- ams 3.793M memsize ( 185.000k retained) 44.737k objects ( 2.549k retained) 50.000 strings ( 40.000 retained) jsonapi-rb 1.873M memsize ( 0.000 retained) 21.424k objects ( 0.000 retained) 50.000 strings ( 0.000 retained) ams eager 2.923M memsize ( 180.848k retained) 34.285k objects ( 2.433k retained) 50.000 strings ( 46.000 retained) jsonapi-rb eager 899.226k memsize ( 0.000 retained) 9.485k objects ( 0.000 retained) 50.000 strings ( 0.000 retained) Comparison: jsonapi-rb eager: 899226 allocated jsonapi-rb : 1873384 allocated - 2.08x more ams eager: 2922890 allocated - 3.25x more ams : 3792800 allocated - 4.22x more ``` --- benchmarks/serialization_libraries/benchmark.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/benchmarks/serialization_libraries/benchmark.rb b/benchmarks/serialization_libraries/benchmark.rb index 7d6830e8..93dbef17 100644 --- a/benchmarks/serialization_libraries/benchmark.rb +++ b/benchmarks/serialization_libraries/benchmark.rb @@ -3,6 +3,8 @@ Bundler.require(*Rails.groups) ActiveRecord::Base.logger = nil ActiveModelSerializers.logger = nil +ActiveModelSerializers.config.adapter = :json_api +ActiveModelSerializers.config.key_transform = :unaltered require './support/rails' require './support/bench_helper'