Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ANS.1 speed issues #3

Open
xsmarty opened this issue Apr 10, 2019 · 1 comment
Open

ANS.1 speed issues #3

xsmarty opened this issue Apr 10, 2019 · 1 comment

Comments

@xsmarty
Copy link

xsmarty commented Apr 10, 2019

The serialization code generated by asn1scc during OG3 was unexpectedly slow. Just to make sure something was not wrong in our setup we benchmarked it versus other serializers:

yas: 6.0.2 17416 11889 100.00%
capnproto: 0.6.1 17768 12354 103.91%
flatbuffers : 1.7.1 17632 24788 208.50%
cereal: 1.2.1 17416 49126 413.21%
boost: 1.66.0 17470 57950 487.43%
thrift-binary:  0.10.0 17017 75632 636.15%
yas-compact: version = 6.0.2 13321 79722 670.55%
protobuf: 3.1.0 16116 89771 755.08%
msgpack:  2.1.3 13402 125708 1057.35%
thrift-compact: 0.10.0 13378 128549 1081.24%
avro: 1.8.2 16384 160471 1349.74%
ASN.1: 4.1.0.1f 16716 496770 4178.40%
  size milliseconds % with fastest

The code is available here:
https://gitlab.com/h2020src/og7/cpp-serializers
This test did not include large datasets.
Struct {
int64[1000]
char[100][86]
}

Can OER encoding be triggered somehow instead of uPER (which is not as compact as it should be (specially compared to other solutions) )?

@mmunoz-gmv
Copy link
Contributor

No, the supported encodings are uPER and ACN.
Is your concern encoding time or compactness? They may be contradictory.
Note that in a TASTE interface you can select "native" encoding so that the data is transferred in native representation, without encoding delay. The requisite is that the two functions are deployed on systems with the same binary representation (mainly endianness).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants