s***@gmail.com
2017-12-07 22:55:00 UTC
Hello,
I wanted to test the performance of serializing a single scaler type of
message. For example:
@0xf123cfa3565bb5a6;
struct TestBool {
value @0 :Bool;
}
struct TestInt8 {
value @0 :Int8;
}
When I was testing scaler types of Int8 and UInt8, by calling
auto r2 = message.getRoot<TestInt8>();
cout << r2.getValue() << "\nsize: " << size << endl;
returned nothing for the value:
size: 16
However, when I set the field to Int16, the correct value is returned.
127
size: 16
The complete code is pasted below:
capnp::MallocMessageBuilder message;
TestInt8::Builder r1 = message.getRoot<TestInt8>();
r1.setValue(127);
auto serialized = message.getSegmentsForOutput();
// auto serialized = capnp::messageToFlatArray(message);
//capnp::SegmentArrayMessageReader reader(serialized);
size_t size = 0;
for (auto segment : serialized) {
size += segment.asBytes().size();
}
auto r2 = message.getRoot<TestInt8>();
cout << r2.getValue() << "\nsize: " << size << endl;
Is there anything wrong? It only happened for Int8 and UInt8 cases.
Also, is the size I am getting the correct serialized size?
Best,
Shuo
I wanted to test the performance of serializing a single scaler type of
message. For example:
@0xf123cfa3565bb5a6;
struct TestBool {
value @0 :Bool;
}
struct TestInt8 {
value @0 :Int8;
}
When I was testing scaler types of Int8 and UInt8, by calling
auto r2 = message.getRoot<TestInt8>();
cout << r2.getValue() << "\nsize: " << size << endl;
returned nothing for the value:
size: 16
However, when I set the field to Int16, the correct value is returned.
127
size: 16
The complete code is pasted below:
capnp::MallocMessageBuilder message;
TestInt8::Builder r1 = message.getRoot<TestInt8>();
r1.setValue(127);
auto serialized = message.getSegmentsForOutput();
// auto serialized = capnp::messageToFlatArray(message);
//capnp::SegmentArrayMessageReader reader(serialized);
size_t size = 0;
for (auto segment : serialized) {
size += segment.asBytes().size();
}
auto r2 = message.getRoot<TestInt8>();
cout << r2.getValue() << "\nsize: " << size << endl;
Is there anything wrong? It only happened for Int8 and UInt8 cases.
Also, is the size I am getting the correct serialized size?
Best,
Shuo
--
You received this message because you are subscribed to the Google Groups "Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+***@googlegroups.com.
Visit this group at https://groups.google.com/group/capnproto.
You received this message because you are subscribed to the Google Groups "Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+***@googlegroups.com.
Visit this group at https://groups.google.com/group/capnproto.