There are a couple different polling timeouts used that may affect this:
 xmlrpc_manager.cpp:256:   server_.work(0.01);
 poll_manager.cpp:95:  poll_set_.update(10);

If you're using timers:
 timer_manager.h:508:  timers_cond_.timed_wait(lock, boost::posix_time::milliseconds(1));

Adjusting these to your needs will likely help quite a bit -- we don't run on any embedded systems here, so we're haven't optimized for them or provided knobs to tweak for these.

Josh

On Fri, Jul 30, 2010 at 4:45 PM, Cedric Pradalier <cedric.pradalier@mavt.ethz.ch> wrote:
Hi list,

I've noticed that the ros programs are taking a bit more resources than
I expected when running on my embedded system, so I've written the
simple program below:

int main(int argc, char** argv)
{
    ros::init(argc, argv, "RemoteControl");
    ros::NodeHandle nh("~");     // <-- this line
    while (ros::ok()) {
        sleep(1);
    }
    return 0;
}

If I comment out "this line", then the cpu usage is 0%. When I include
it in, my cpu usage goes to 5 or even 10% (I'm testing on a Virtualbox
virtual machine).  When I run it directly on my laptop, the load is not
noticeable, but the process run-time still goes up faster than I would
expect.

I will dig in roscpp tomorrow to identify exactly where the time is
spent, but I'd be glad to get some pointers if any.

Thanks

--
Dr. Cedric Pradalier
http://www.asl.ethz.ch/people/cedricp

_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users