Profiling Main - uw-advanced-robotics/taproot GitHub Wiki
These tests were carried out using robot=TARGET_SOLDIER, on the new soldier with all motors
connected, running default commands.
Profiling vanilla develop per 7/5/2020
Code run every two milliseconds
Drivers::mpu6500.read();
Drivers::errorController.update();
Drivers::commandScheduler.run();
Drivers::djiMotorTxHandler.processCanSendData();
-
Debug build
- 309 microseconds to execute with no hardware connected.
Drivers::mpu6500.read(): 228 microseconds.Drivers::errorController.update(): 10 microseconds.Drivers::commandScheduler.run(): 62 microseconds (twoSystemErrorsare being added to the scheduler each iteration, which take a significant time).Drivers::djiMotorTxHandler.processCanSendData(): 9 microseconds.
- 309 microseconds to execute with no hardware connected.
-
Release build
- 234 microseconds to execute with no hardware connected.
Drivers::mpu6500.read(): 178 microseconds.Drivers::errorController.update(): 4 microseconds.Drivers::commandScheduler.run(): 47 microseconds (twoSystemErrorsare being added to the scheduler each iteration, which take a significant time).Drivers::djiMotorTxHandler.processCanSendData(): 5 microseconds.
- 234 microseconds to execute with no hardware connected.
IO update
Drivers::canRxHandler.pollCanData();
Drivers::xavierSerial.updateSerial();
Drivers::refSerial.updateSerial();
Drivers::remote.read();
-
Debug build: takes 8 microseconds to execute with no hardware connected.
-
Release build: takes 5 microseconds to execute with no hardware connected.
Profiling the updated drivers architecture per 7/5/2020
Code run every two milliseconds
getDrivers().mpu6500.read();
getDrivers().errorController.update();
getDrivers().commandScheduler.run();
getDrivers().djiMotorTxHandler.processCanSendData();
-
Debug build
- 307 microseconds to execute with no hardware connected.
getDrivers().mpu6500.read(): 227 microseconds.getDrivers().errorController.update(): 10 microseconds.getDrivers().commandScheduler.run(): 62 microseconds.getDrivers().djiMotorTxHandler.processCanSendData(): 9 microseconds.
- 307 microseconds to execute with no hardware connected.
-
Release build
- 232 microseconds to execute with no hardware connected.
getDrivers().mpu6500.read(): 177 microsecondsgetDrivers().errorController.update(): 3 microseconds.getDrivers().commandScheduler.run(): 47 microseconds (twoSystemErrorsare being added to the scheduler each iteration, which take a significant time).getDrivers().djiMotorTxHandler.processCanSendData(): 5 microseconds
- 232 microseconds to execute with no hardware connected.
IO update
getDrivers().canRxHandler.pollCanData();
getDrivers().xavierSerial.updateSerial();
getDrivers().refSerial.updateSerial();
getDrivers().remote.read();
-
Debug build: takes 7 microseconds to execute with no hardware connected.
-
Release build: takes 5 microseconds to execute with no hardware connected.