Skip to content

Commit 810efb8

Browse files
add bm_adapter (#1914)
1 parent 58ebf96 commit 810efb8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

test/benchmark/bm_adapter.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require_relative './benchmarking_support'
2+
require_relative './app'
3+
4+
time = 10
5+
disable_gc = true
6+
ActiveModelSerializers.config.key_transform = :unaltered
7+
has_many_relationships = (0..60).map do |i|
8+
HasManyRelationship.new(id: i, body: 'ZOMG A HAS MANY RELATIONSHIP')
9+
end
10+
has_one_relationship = HasOneRelationship.new(
11+
id: 42,
12+
first_name: 'Joao',
13+
last_name: 'Moura'
14+
)
15+
primary_resource = PrimaryResource.new(
16+
id: 1337,
17+
title: 'New PrimaryResource',
18+
virtual_attribute: nil,
19+
body: 'Body',
20+
has_many_relationships: has_many_relationships,
21+
has_one_relationship: has_one_relationship
22+
)
23+
serializer = PrimaryResourceSerializer.new(primary_resource)
24+
25+
Benchmark.ams('attributes', time: time, disable_gc: disable_gc) do
26+
attributes = ActiveModelSerializers::Adapter::Attributes.new(serializer)
27+
attributes.as_json
28+
end
29+
30+
Benchmark.ams('json_api', time: time, disable_gc: disable_gc) do
31+
json_api = ActiveModelSerializers::Adapter::JsonApi.new(serializer)
32+
json_api.as_json
33+
end
34+
35+
Benchmark.ams('json', time: time, disable_gc: disable_gc) do
36+
json = ActiveModelSerializers::Adapter::Json.new(serializer)
37+
json.as_json
38+
end

0 commit comments

Comments
 (0)