The pool allocation came abount because I wanted to use the zero-copy message passing features but I didn’t want my inner loops calling malloc often. I haven’t specifically profiled with it other than using a library to log when malloc was being called so I could see this did what I expected.

Here is the discussion I had on ros answers about this: https://answers.ros.org/question/353198/pre-allocation-of-messages-for-nodelets/

Looks like you already found that as you commented there. Profiling of this would be welcome.