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
|
||||
|
||||
```
|
||||
```bash
|
||||
cd benchmarks/serialization_libraries
|
||||
bundle install
|
||||
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
|
||||
|
||||
|
||||
@ -52,10 +52,10 @@ module BenchHelper
|
||||
end
|
||||
|
||||
def render_with_jsonapi_rb(data)
|
||||
JSONAPI::Serializable::SuccessRenderer.new.render(
|
||||
JSONAPI::Serializable::Renderer.new.render(
|
||||
data,
|
||||
include: 'posts.comments',
|
||||
class: SerializableUser
|
||||
class: { User: SerializableUser, Post: SerializablePost, Comment: SerializableComment }
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user