mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Fix JSONAPI:Serializer test
```
$ bundle exec ruby benchmark.rb
-- create_table("comments", {:force=>:cascade})
-> 0.0066s
-- create_table("posts", {:force=>:cascade})
-> 0.0029s
-- create_table("users", {:force=>:cascade})
-> 0.0017s
Warming up --------------------------------------
ams 2.000 i/100ms
jsonapi-rb 7.000 i/100ms
ams eager 2.000 i/100ms
jsonapi-rb eager 12.000 i/100ms
Calculating -------------------------------------
ams 20.397 (± 1.7%) i/s - 204.000 in 10.097255s
jsonapi-rb 74.981 (± 0.8%) i/s - 756.000 in 10.100857s
ams eager 23.117 (± 0.6%) i/s - 232.000 in 10.047664s
jsonapi-rb eager 125.521 (± 0.8%) i/s - 1.260k in 10.054734s
with 95.0% confidence
Comparison:
jsonapi-rb eager: 125.5 i/s
jsonapi-rb : 75.0 i/s - 1.67x (± 0.02) slower
ams eager: 23.1 i/s - 5.43x (± 0.05) slower
ams : 20.4 i/s - 6.15x (± 0.12) slower
with 95.0% confidence
Calculating -------------------------------------
ams 2.688M memsize ( 188.498k retained)
33.331k objects ( 2.554k retained)
50.000 strings ( 50.000 retained)
jsonapi-rb 1.038M memsize ( 0.000 retained)
11.784k objects ( 0.000 retained)
50.000 strings ( 0.000 retained)
ams eager 2.470M memsize ( 184.410k retained)
30.534k objects ( 2.439k retained)
50.000 strings ( 50.000 retained)
jsonapi-rb eager 715.124k memsize ( 0.000 retained)
7.500k objects ( 0.000 retained)
50.000 strings ( 0.000 retained)
Comparison:
jsonapi-rb eager: 715124 allocated
jsonapi-rb : 1037676 allocated - 1.45x more
ams eager: 2469640 allocated - 3.45x more
ams : 2688112 allocated - 3.76x more
```
This commit is contained in:
parent
0a366b4ca9
commit
5ca3e96914
51
README.md
51
README.md
@ -4,12 +4,61 @@
|
|||||||
|
|
||||||
### Comparison with other Serialization Libraries
|
### Comparison with other Serialization Libraries
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cd benchmarks/serialization_libraries
|
cd benchmarks/serialization_libraries
|
||||||
bundle install
|
bundle install
|
||||||
bundle exec ruby benchmark
|
bundle exec ruby benchmark
|
||||||
```
|
```
|
||||||
|
|
||||||
|
yields
|
||||||
|
|
||||||
|
```plain
|
||||||
|
-- create_table("comments", {:force=>:cascade})
|
||||||
|
-> 0.0066s
|
||||||
|
-- create_table("posts", {:force=>:cascade})
|
||||||
|
-> 0.0029s
|
||||||
|
-- create_table("users", {:force=>:cascade})
|
||||||
|
-> 0.0017s
|
||||||
|
Warming up --------------------------------------
|
||||||
|
ams 2.000 i/100ms
|
||||||
|
jsonapi-rb 7.000 i/100ms
|
||||||
|
ams eager 2.000 i/100ms
|
||||||
|
jsonapi-rb eager 12.000 i/100ms
|
||||||
|
Calculating -------------------------------------
|
||||||
|
ams 20.397 (± 1.7%) i/s - 204.000 in 10.097255s
|
||||||
|
jsonapi-rb 74.981 (± 0.8%) i/s - 756.000 in 10.100857s
|
||||||
|
ams eager 23.117 (± 0.6%) i/s - 232.000 in 10.047664s
|
||||||
|
jsonapi-rb eager 125.521 (± 0.8%) i/s - 1.260k in 10.054734s
|
||||||
|
with 95.0% confidence
|
||||||
|
|
||||||
|
Comparison:
|
||||||
|
jsonapi-rb eager: 125.5 i/s
|
||||||
|
jsonapi-rb : 75.0 i/s - 1.67x (± 0.02) slower
|
||||||
|
ams eager: 23.1 i/s - 5.43x (± 0.05) slower
|
||||||
|
ams : 20.4 i/s - 6.15x (± 0.12) slower
|
||||||
|
with 95.0% confidence
|
||||||
|
|
||||||
|
Calculating -------------------------------------
|
||||||
|
ams 2.688M memsize ( 188.498k retained)
|
||||||
|
33.331k objects ( 2.554k retained)
|
||||||
|
50.000 strings ( 50.000 retained)
|
||||||
|
jsonapi-rb 1.038M memsize ( 0.000 retained)
|
||||||
|
11.784k objects ( 0.000 retained)
|
||||||
|
50.000 strings ( 0.000 retained)
|
||||||
|
ams eager 2.470M memsize ( 184.410k retained)
|
||||||
|
30.534k objects ( 2.439k retained)
|
||||||
|
50.000 strings ( 50.000 retained)
|
||||||
|
jsonapi-rb eager 715.124k memsize ( 0.000 retained)
|
||||||
|
7.500k objects ( 0.000 retained)
|
||||||
|
50.000 strings ( 0.000 retained)
|
||||||
|
|
||||||
|
Comparison:
|
||||||
|
jsonapi-rb eager: 715124 allocated
|
||||||
|
jsonapi-rb : 1037676 allocated - 1.45x more
|
||||||
|
ams eager: 2469640 allocated - 3.45x more
|
||||||
|
ams : 2688112 allocated - 3.76x more
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
@ -52,10 +52,10 @@ module BenchHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
def render_with_jsonapi_rb(data)
|
def render_with_jsonapi_rb(data)
|
||||||
JSONAPI::Serializable::SuccessRenderer.new.render(
|
JSONAPI::Serializable::Renderer.new.render(
|
||||||
data,
|
data,
|
||||||
include: 'posts.comments',
|
include: 'posts.comments',
|
||||||
class: SerializableUser
|
class: { User: SerializableUser, Post: SerializablePost, Comment: SerializableComment }
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user