Can you try it with a publisher/subscriber in the same process, both passing the message as a shared_ptr and not?  e.g. both:<div><br></div><div>Msg m;</div><div>publisher.publish(m);</div><div><br></div><div>and</div><div>

<br></div><div>MsgPtr m(new Msg);</div><div>publisher.publish(m);</div><div><br></div><div>Also, can you try running the pointcloud_serdes executable in the test_roscpp_serialization_perf package?</div><div><br></div><div>

This should at least help narrow down where the bottleneck may be occurring.  The first will do everything the same as interprocess except it won't hit the TCP stack, while the second will bypass almost everything.  pointcloud_serdes should let us know if it's the serialization/deserialization itself.</div>

<div><br></div><div>Josh<br><br><div class="gmail_quote">On Mon, Jul 12, 2010 at 9:46 AM, Brian Gerkey <span dir="ltr"><<a href="mailto:gerkey@willowgarage.com">gerkey@willowgarage.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

hi Daniel,<br>
<br>
We're interested in supporting ROS on embedded platforms such as the<br>
one you're working with. But we don't do embedded development<br>
ourselves, so it's possible that we're not aware of optimizations that<br>
are especially relevant in that domain.<br>
<br>
If you can track down the source of the performance bottleneck, please<br>
let us know and we'll work with you to improve things.<br>
<font color="#888888"><br>
        brian.<br>
</font><div class="im"><br>
On Thu, Jul 8, 2010 at 7:02 PM, Daniel Stonier <<a href="mailto:d.stonier@gmail.com">d.stonier@gmail.com</a>> wrote:<br>
</div><div><div></div><div class="h5">> Now that I'm getting some working results, I'm a bit curious about the<br>
> arm performance for ros messaging. I have two test cases running on an<br>
> armv6 core (arm1176jzf-s).<br>
><br>
> Topics (time taken from publisher sending a message to subscriber<br>
> callback activating)<br>
>  - intel i5: ~200us<br>
>  - armv6: ~ 20ms<br>
><br>
> Services (time taken on a round trip rpc request response passing<br>
> float64 data values)<br>
>  - intel i5: ~2ms<br>
>  - armv6: ~ 190ms<br>
><br>
> Can it really be 100x slower? This kernel does not yet have a low<br>
> latency scheduler (kernel premption is not configured, will figure out<br>
> how to do that later) but I thought that would only affect performance<br>
> by a few milliseconds, not tens or hundreds of ms. Is there perhaps<br>
> some critical kernel configuration or something similar I'm missing? I<br>
> guess the next thing to do would be to write a very simple tcp/ip<br>
> client/server pair and test it without ros.<br>
><br>
> Regards,<br>
> Daniel.<br>
><br>
> --<br>
> Phone : +82-10-5400-3296 (010-5400-3296)<br>
> Home: <a href="http://snorriheim.dnsdojo.com/" target="_blank">http://snorriheim.dnsdojo.com/</a><br>
> Yujin Robot: <a href="http://www.yujinrobot.com/" target="_blank">http://www.yujinrobot.com/</a><br>
> Embedded Control Libraries: <a href="http://snorriheim.dnsdojo.com/redmine/wiki/ecl" target="_blank">http://snorriheim.dnsdojo.com/redmine/wiki/ecl</a><br>
> _______________________________________________<br>
> ros-users mailing list<br>
> <a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
><br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br></div>