Browse Source

drv_hrt posix: improve performance for hrt_absolute_time()

Previously hrt_absolute_time() was at around 5% of the total CPU usage, now
it's around 0.35%.
sbg
Beat Küng 6 years ago committed by Julian Oes
parent
commit
ecbe2a3e0b
  1. 6
      platforms/posix/src/px4_layer/drv_hrt.cpp

6
platforms/posix/src/px4_layer/drv_hrt.cpp

@ -154,6 +154,11 @@ uint64_t hrt_system_time() @@ -154,6 +154,11 @@ uint64_t hrt_system_time()
*/
hrt_abstime hrt_absolute_time()
{
#if defined(ENABLE_LOCKSTEP_SCHEDULER)
// optimized case (avoid ts_to_abstime) if lockstep scheduler is used
const uint64_t abstime = lockstep_scheduler.get_absolute_time();
return abstime - px4_timestart_monotonic;
#else // defined(ENABLE_LOCKSTEP_SCHEDULER)
struct timespec ts;
px4_clock_gettime(CLOCK_MONOTONIC, &ts);
#ifdef __PX4_QURT
@ -161,6 +166,7 @@ hrt_abstime hrt_absolute_time() @@ -161,6 +166,7 @@ hrt_abstime hrt_absolute_time()
#else
return ts_to_abstime(&ts);
#endif
#endif // defined(ENABLE_LOCKSTEP_SCHEDULER)
}
#ifdef __PX4_QURT

Loading…
Cancel
Save