Any suggestions, please?
On Wednesday, December 20, 2017 at 10:00:31 PM UTC+9, Ravi wrote:
>
> I have defined the Protocol Buffers message file as follows:
>
> syntax = "proto3";
> package Tutorial;
> import "google/protobuf/timestamp.proto";
> option csharp_namespace = "Tutorial";
>
> message PointCloud {
> int32 width = 1;
> int32 height = 2;
>
> message Point {
> float x = 1;
> float y = 2;
> float z = 3;
> fixed32 rgb = 4;
> }
> repeated Point points = 3;
> google.protobuf.Timestamp timestamp = 4;
> }
>
> This is how I am preparing the data and serializing it in C#:
> using Google.Protobuf;
> using Tutorial;
> using ZeroMQ;
>
> PointCloud pointCloud = new PointCloud();
> pointCloud.Height = Height
> pointCloud.Width = Width;
> pointCloud.Timestamp = Timestamp.FromDateTime(DateTime.UtcNow);
>
> for (var index = 0; index < POINTS3D_COUNT; index++) {
> PointCloud.Types.Point point = new PointCloud.Types.Point {
> X = points3D[index].X,
> Y = points3D[index].Y,
> Z = points3D[index].Z,
> Rgb = (uint)((red << 16) | (green << 8) | blue)
> };
>
> pointCloud.Points.Add(point);
> }
>
> zmqPublisher.Send(new ZFrame(pointCloud.ToByteArray()));
>
> This is how I deserialize the data in C++:
> while (receive) {
> zmq::message_t msg;
> int rc = zmq_socket.recv(&msg);
> if (rc) {
> Tutorial::PointCloud point_cloud;
> point_cloud.ParseFromArray(msg.data(), msg.size());
> }point_cloud.ParseFromArray(msg.data(), msg.size())
> }
>
> I am able to get the data back properly. However, the serialization and
> deserialization process seems slow.
>
> - I used *System.Diagnostics.Stopwatch *in C# and noticed that
> *pointCloud.ToByteArray()* is taking 100ms approximately.
> - Similarly I used *std::chrono::steady_clock::now()* in C++ and
> noticed that *point_cloud.ParseFromArray(msg.data(), msg.size())* is
> taking 96ms approximately.
> - Just for information, the length of the byte array is roughly
> 3,784,000.
>
>
> *I want to know how to speed up serialization and deserialization process?*
>
> -
> Thanks
> Ravi
>
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.