[ros-users] ROS cpu load

Cedric Pradalier cedric.pradalier at mavt.ethz.ch
Sat Jul 31 11:11:08 UTC 2010


To continue on my fight against overhead, I've had good performance 
improvement of rosout by replacing all the timeout argument in the 
CallbackQueue::callAvailable and CallbackQueue::callOne from 0.01s to 0.1s.
Now my rosout is really sitting in a corner doing nothing while I'm not 
logging.

Can you foresee any drawbacks from this change?

On 07/31/10 11:15, Cedric Pradalier wrote:
>
>>
>>     Now, I'm not using timers in these programs, so I cannot say what
>>     is the
>>     influence of the 1ms wait in timer_manager.h. I have not looked
>>     at the
>>     code in details, but it look like this wait could be advantageously
>>     replaced by the following code:
>>
>>           int remaining_time = std::max((int)((sleep_end.toSec() -
>>     current.toSec())*1000),0);
>>           timers_cond_.timed_wait(lock,
>>     boost::posix_time::milliseconds(std::min(50,remaining_time)));
>>
>>     Is there any reason to verify that the time is not going backward
>>     at 1kHz?
>>
>>
>>
>> This is unfortunately not possible because of the ROS clock used in 
>> simulation.  If simulated time is going faster than normal time you 
>> end up missing timer events.  Building up a predictive model of how 
>> fast time is actually moving is possible, but not high priority.
>>
>> Josh
>>
>
> Thanks for the feedback.
>
> I somehow feel sorry to loose at least 15% of the CPU time per node on 
> my embedded system for something that is only an issue for simulation 
> systems.
> What would make the most sense: separating the simulation 
> functionality from the (pseudo) real-time system, or add a global 
> parameter that define which type of system we are running? I would 
> think the second possibility is better and easier to implement.
>
> I for one will definitely apply the above change to all my on-board 
> system. The gain is too dramatic to ignore.
>
> Now, a bonus question I'm going to investigate now: is there the same 
> kind of high frequency threads in the rospy implementation?
-- 

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100731/c153fbca/attachment-0003.html>


More information about the ros-users mailing list