<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello, I'd like to just shine a light on this last statement.  I don't<br>


immediately understand why a shared memory transport can't compete<br>
with nodelets as I understand them.  If nodelets are threads in a<br>
single process and use process memory to carry messages (which is<br>
essentially shared memory in that context), shouldn't nodelets and a<br>
shared memory transport be roughly equivalent in performance?<br><br></blockquote><div><br>It depends entirely on what you mean by shared memory transport.  If the messages are allocated out of shared memory, and a pointer to them is simply passed around, yes -- but that's not what Cedric's implementation did.  Serialization/deserialization is by far the largest time sync when dealing with large messages, so unless you remove that overhead shared memory cannot compete with nodelets.<br>

<br><a href="http://ros-users.122217.n3.nabble.com/Shared-memory-transport-using-C-in-ROS-td414682.html#a414682">http://ros-users.122217.n3.nabble.com/Shared-memory-transport-using-C-in-ROS-td414682.html#a414682</a><br><a href="http://ros-users.122217.n3.nabble.com/Shared-memory-image-plugin-td782519.html#a782519">http://ros-users.122217.n3.nabble.com/Shared-memory-image-plugin-td782519.html#a782519</a><br>

<br>Josh<br></div></div>