Open mpowelson opened 3 years ago
I ran the profiling on tesseract_planning and the dependencies in dependencies.rosinstall. Here is the output. Here are my notes on how to generate this. @Levi-Armstrong might be interested.
**** Time summary:
Compilation (538 times):
Parsing (frontend): 1540.9 s
Codegen & opts (backend): 526.4 s
**** Files that took longest to parse (compiler frontend):
16728 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/CMakeFiles/tesseract_motion_planners_ompl.dir/src/ompl/profile/ompl_default_plan_profile.cpp.o
16276 ms: /home/matthew/code/tesseract/build//trajopt/CMakeFiles/trajopt.dir/src/problem_description.cpp.o
15829 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/CMakeFiles/tesseract_motion_planners_simple.dir/src/simple/profile/simple_planner_utils.cpp.o
15750 ms: /home/matthew/code/tesseract/build//trajopt/CMakeFiles/trajopt.dir/src/collision_terms.cpp.o
15739 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/CMakeFiles/tesseract_motion_planners_descartes.dir/src/descartes/profile/descartes_default_plan_profile.cpp.o
15468 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/CMakeFiles/tesseract_motion_planners_descartes.dir/src/descartes/descartes_robot_sampler.cpp.o
13781 ms: /home/matthew/code/tesseract/build//tesseract_kinematics/CMakeFiles/tesseract_kinematics_kdl.dir/src/kdl/kdl_fwd_kin_chain.cpp.o
13092 ms: /home/matthew/code/tesseract/build//tesseract_process_managers/CMakeFiles/tesseract_process_managers.dir/src/core/process_planning_server.cpp.o
12934 ms: /home/matthew/code/tesseract/build//tesseract_kinematics/CMakeFiles/tesseract_kinematics_kdl.dir/src/kdl/kdl_fwd_kin_tree.cpp.o
12784 ms: /home/matthew/code/tesseract/build//tesseract_kinematics/CMakeFiles/tesseract_kinematics_opw.dir/src/opw/opw_inv_kin.cpp.o
**** Files that took longest to codegen (compiler backend):
14329 ms: /home/matthew/code/tesseract/build//trajopt/CMakeFiles/trajopt.dir/src/problem_description.cpp.o
11265 ms: /home/matthew/code/tesseract/build//trajopt/CMakeFiles/trajopt.dir/src/kinematic_terms.cpp.o
8203 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/examples/CMakeFiles/tesseract_motion_planners_raster_example.dir/raster_example.cpp.o
7847 ms: /home/matthew/code/tesseract/build//tesseract_urdf/CMakeFiles/tesseract_urdf.dir/src/convex_mesh.cpp.o
7788 ms: /home/matthew/code/tesseract/build//trajopt/CMakeFiles/trajopt.dir/src/collision_terms.cpp.o
7069 ms: /home/matthew/code/tesseract/build//trajopt_sco/CMakeFiles/trajopt_sco.dir/src/modeling_utils.cpp.o
6860 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/examples/CMakeFiles/tesseract_motion_planners_chain_example.dir/chain_example.cpp.o
6846 ms: /home/matthew/code/tesseract/build//tesseract_environment/CMakeFiles/tesseract_environment_core.dir/src/core/environment.cpp.o
6242 ms: /home/matthew/code/tesseract/build//tesseract_process_managers/CMakeFiles/tesseract_process_managers.dir/src/task_generators/fix_state_collision_task_generator.cpp.o
6091 ms: /home/matthew/code/tesseract/build//tesseract_motion_planners/CMakeFiles/tesseract_motion_planners_ompl.dir/src/ompl/profile/ompl_default_plan_profile.cpp.o
**** Templates that took longest to instantiate:
45536 ms: Eigen::JacobiSVD<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::Jacob... (21 times, avg 2168 ms)
45420 ms: Eigen::JacobiSVD<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::compute (21 times, avg 2162 ms)
41087 ms: Eigen::internal::qr_preconditioner_impl<Eigen::Matrix<double, -1, -1... (21 times, avg 1956 ms)
38175 ms: Eigen::Transform<double, 3, 1, 0>::inverse (108 times, avg 353 ms)
26949 ms: Eigen::EigenSolver<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::Eigen... (21 times, avg 1283 ms)
26850 ms: Eigen::EigenSolver<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::compu... (21 times, avg 1278 ms)
25876 ms: Eigen::Transform<double, 3, 1, 0>::operator* (131 times, avg 197 ms)
25290 ms: Eigen::internal::transform_transform_product_impl<Eigen::Transform<d... (123 times, avg 205 ms)
24900 ms: boost::breadth_first_search<boost::adjacency_list<boost::listS, boos... (133 times, avg 187 ms)
24836 ms: boost::detail::bfs_dispatch<boost::associative_property_map<std::map... (133 times, avg 186 ms)
24573 ms: boost::detail::bfs_helper<boost::adjacency_list<boost::listS, boost:... (133 times, avg 184 ms)
24566 ms: Eigen::RealSchur<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::compute... (21 times, avg 1169 ms)
23913 ms: Eigen::HouseholderSequence<Eigen::Matrix<double, -1, -1, 0, -1, -1>,... (21 times, avg 1138 ms)
23874 ms: Eigen::internal::apply_block_householder_on_the_left<Eigen::Block<Ei... (21 times, avg 1136 ms)
23418 ms: boost::breadth_first_search<boost::adjacency_list<boost::listS, boos... (133 times, avg 176 ms)
23296 ms: boost::breadth_first_search<boost::adjacency_list<boost::listS, boos... (133 times, avg 175 ms)
22156 ms: Eigen::Transform<double, 3, 1, 0>::rotation (47 times, avg 471 ms)
22131 ms: Eigen::Transform<double, 3, 1, 0>::computeRotationScaling<Eigen::Mat... (47 times, avg 470 ms)
22028 ms: Eigen::RealSchur<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::compute... (21 times, avg 1048 ms)
21129 ms: boost::breadth_first_visit<boost::adjacency_list<boost::listS, boost... (133 times, avg 158 ms)
20841 ms: Eigen::RealSchur<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::perform... (21 times, avg 992 ms)
14129 ms: boost::adjacency_list<boost::listS, boost::listS, boost::bidirection... (133 times, avg 106 ms)
14034 ms: boost::adj_list_impl<boost::adjacency_list<boost::listS, boost::list... (133 times, avg 105 ms)
13640 ms: boost::adj_list_impl<boost::adjacency_list<boost::listS, boost::list... (133 times, avg 102 ms)
12917 ms: Eigen::internal::make_block_householder_triangular_factor<Eigen::Mat... (21 times, avg 615 ms)
12810 ms: Eigen::JacobiSVD<Eigen::Matrix<double, 3, 3, 0, 3, 3>, 2>::JacobiSVD (47 times, avg 272 ms)
12800 ms: Eigen::JacobiSVD<Eigen::Matrix<double, 3, 3, 0, 3, 3>, 2>::compute (47 times, avg 272 ms)
12166 ms: Eigen::Block<Eigen::Matrix<double, 4, 4, 0, 4, 4>, 3, 3, false>::ope... (123 times, avg 98 ms)
12144 ms: Eigen::BlockImpl<Eigen::Matrix<double, 4, 4, 0, 4, 4>, 3, 3, false, ... (123 times, avg 98 ms)
12130 ms: Eigen::internal::BlockImpl_dense<Eigen::Matrix<double, 4, 4, 0, 4, 4... (123 times, avg 98 ms)
**** Template sets that took longest to instantiate:
135678 ms: Eigen::internal::call_assignment_no_alias<$> (5473 times, avg 24 ms)
132976 ms: Eigen::internal::Assignment<$>::run (5438 times, avg 24 ms)
132050 ms: Eigen::MatrixBase<$> (16960 times, avg 7 ms)
85417 ms: Eigen::internal::call_assignment<$> (4414 times, avg 19 ms)
83056 ms: Eigen::internal::call_dense_assignment_loop<$> (6028 times, avg 13 ms)
73085 ms: Eigen::Matrix<$>::Matrix<$> (1905 times, avg 38 ms)
69879 ms: Eigen::PlainObjectBase<$>::_set_noalias<$> (1390 times, avg 50 ms)
60845 ms: Eigen::DenseBase<$> (18261 times, avg 3 ms)
58347 ms: Eigen::JacobiSVD<$>::JacobiSVD (68 times, avg 858 ms)
58221 ms: Eigen::JacobiSVD<$>::compute (68 times, avg 856 ms)
55689 ms: Eigen::internal::generic_product_impl<$>::evalTo<$> (801 times, avg 69 ms)
51006 ms: Eigen::internal::dense_assignment_loop<$>::run (6080 times, avg 8 ms)
43350 ms: Eigen::MapBase<$> (5296 times, avg 8 ms)
41239 ms: Eigen::internal::qr_preconditioner_impl<$>::run (42 times, avg 981 ms)
40278 ms: Eigen::PlainObjectBase<$>::_init1<$> (830 times, avg 48 ms)
40171 ms: Eigen::Block<$> (4061 times, avg 9 ms)
39243 ms: Eigen::BlockImpl<$> (4061 times, avg 9 ms)
39199 ms: Eigen::internal::generic_dense_assignment_kernel<$>::assignCoeff (1044 times, avg 37 ms)
38871 ms: Eigen::internal::product_evaluator<$>::coeff (788 times, avg 49 ms)
38631 ms: Eigen::internal::BlockImpl_dense<$> (4060 times, avg 9 ms)
38175 ms: Eigen::Transform<$>::inverse (108 times, avg 353 ms)
32348 ms: Eigen::PlainObjectBase<$>::PlainObjectBase<$> (722 times, avg 44 ms)
32334 ms: Eigen::internal::generic_dense_assignment_kernel<$>::assignCoeffByOu... (1147 times, avg 28 ms)
31431 ms: Eigen::PlainObjectBase<$> (2693 times, avg 11 ms)
31369 ms: Eigen::CwiseBinaryOp<$> (2982 times, avg 10 ms)
29594 ms: Eigen::CwiseBinaryOpImpl<$> (2982 times, avg 9 ms)
29449 ms: std::make_shared<$> (4093 times, avg 7 ms)
28182 ms: Eigen::Matrix<$> (2278 times, avg 12 ms)
26949 ms: Eigen::EigenSolver<$>::EigenSolver<$> (21 times, avg 1283 ms)
26859 ms: Eigen::internal::traits<$> (24165 times, avg 1 ms)
**** Functions that took longest to compile:
2651 ms: tesseract_planning::rasterExampleProgram(std::__cxx11::basic_string<... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/examples/raster_manager_example.cpp)
2228 ms: main (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/examples/raster_example.cpp)
1433 ms: tesseract_planning::RasterWAADDTTaskflow::generateTaskflow(tesseract... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_waad_dt_taskflow.cpp)
1232 ms: tesseract_planning::DefaultTrajOptIfoptProblemGenerator(std::__cxx11... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/src/trajopt_ifopt/problem_generators/default_problem_generator.cpp)
1089 ms: tesseract_planning::RasterDTTaskflow::generateTaskflow(tesseract_pla... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_dt_taskflow.cpp)
1013 ms: tesseract_planning::DefaultTrajoptProblemGenerator(std::__cxx11::bas... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/src/trajopt/problem_generators/default_problem_generator.cpp)
968 ms: tesseract_planning::RasterWAADTaskflow::generateTaskflow(tesseract_p... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_waad_taskflow.cpp)
964 ms: main (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/examples/chain_example.cpp)
953 ms: tesseract_planning::RasterGlobalTaskflow::generateTaskflow(tesseract... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_global_taskflow.cpp)
897 ms: tesseract_planning::RasterTaskflow::generateTaskflow(tesseract_plann... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_taskflow.cpp)
830 ms: trajopt::JointVelTermInfo::hatch(trajopt::TrajOptProb&) (/home/matthew/code/tesseract/src/trajopt/trajopt/src/problem_description.cpp)
784 ms: tesseract_planning::getClosestJointSolution(Eigen::Transform<double,... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/src/simple/profile/simple_planner_utils.cpp)
776 ms: sco::BasicTrustRegionSQP::optimize() (/home/matthew/code/tesseract/src/trajopt/trajopt_sco/src/optimizers.cpp)
756 ms: std::shared_ptr<tesseract_planning::DescartesProblem<double> > tesse... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/examples/raster_example.cpp)
755 ms: btConvexHullInternal::shiftFace(btConvexHullInternal::Face*, float, ... (/home/matthew/code/tesseract/src/trajopt/trajopt_ext/vhacd/src/btConvexHullComputer.cpp)
712 ms: tesseract_planning::RasterOnlyGlobalTaskflow::generateTaskflow(tesse... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_only_global_taskflow.cpp)
678 ms: tesseract_planning::IterativeSplineParameterization::compute(tessera... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_time_parameterization/src/iterative_spline_parameterization.cpp)
663 ms: std::shared_ptr<tesseract_planning::DescartesProblem<double> > tesse... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/examples/chain_example.cpp)
636 ms: trajopt::ConstructProblem(trajopt::ProblemConstructionInfo const&) (/home/matthew/code/tesseract/src/trajopt/trajopt/src/problem_description.cpp)
596 ms: std::shared_ptr<tesseract_planning::DescartesProblem<float> > tesser... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/descartes_taskflow.cpp)
587 ms: trajopt::DiscreteCollisionEvaluator::Plot(std::shared_ptr<tesseract_... (/home/matthew/code/tesseract/src/trajopt/trajopt/src/collision_terms.cpp)
587 ms: trajopt::DynamicCartPoseJacCalculator::operator()(Eigen::Matrix<doub... (/home/matthew/code/tesseract/src/trajopt/trajopt/src/kinematic_terms.cpp)
587 ms: std::shared_ptr<tesseract_planning::DescartesProblem<float> > tesser... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/cartesian_taskflow.cpp)
584 ms: trajopt::CollisionTermInfo::fromJson(trajopt::ProblemConstructionInf... (/home/matthew/code/tesseract/src/trajopt/trajopt/src/problem_description.cpp)
563 ms: tesseract_planning::DefaultOMPLProblemGenerator(std::__cxx11::basic_... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_motion_planners/src/ompl/problem_generators/default_problem_generator.cpp)
563 ms: tesseract_planning::RasterOnlyTaskflow::generateTaskflow(tesseract_p... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/taskflow_generators/raster_only_taskflow.cpp)
539 ms: std::vector<std::shared_ptr<tesseract_geometry::Mesh>, std::allocato... (/home/matthew/code/tesseract/src/tesseract/tesseract_geometry/examples/parse_mesh_example.cpp)
539 ms: trajopt::CollisionTermInfo::hatch(trajopt::TrajOptProb&) (/home/matthew/code/tesseract/src/trajopt/trajopt/src/problem_description.cpp)
497 ms: sco::BPMPDModel::optimize() (/home/matthew/code/tesseract/src/trajopt/trajopt_sco/src/bpmpd_interface.cpp)
490 ms: tesseract_planning::MoveWaypointFromCollisionTrajopt(tesseract_plann... (/home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/src/task_generators/fix_state_collision_task_generator.cpp)
**** Function sets that took longest to compile / optimize:
2654 ms: tesseract_planning::rasterExampleProgram(std::__cxx11::basic_string<... (2 times, avg 1327 ms)
2613 ms: std::shared_ptr<$> tesseract_planning::DefaultDescartesProblemGenera... (8 times, avg 326 ms)
2578 ms: Eigen::internal::dense_assignment_loop<$>::run(Eigen::internal::gene... (1102 times, avg 2 ms)
2298 ms: void std::vector<$>::_M_range_insert<$>(__gnu_cxx::__normal_iterator... (39 times, avg 58 ms)
1937 ms: std::__cxx11::basic_string<$>* std::__uninitialized_copy<$>::__unini... (160 times, avg 12 ms)
1899 ms: std::vector<$> tesseract_geometry::extractMeshData<$>(aiScene const*... (10 times, avg 189 ms)
1800 ms: std::__shared_ptr<$>::~__shared_ptr() (1652 times, avg 1 ms)
1611 ms: tesseract_environment::AdjacencyMap::AdjacencyMap(std::shared_ptr<$>... (15 times, avg 107 ms)
1474 ms: std::vector<$>::~vector() (618 times, avg 2 ms)
1437 ms: tesseract_planning::RasterWAADDTTaskflow::generateTaskflow(tesseract... (2 times, avg 718 ms)
1263 ms: Eigen::internal::copy_using_evaluator_innervec_CompleteUnrolling<$>:... (1179 times, avg 1 ms)
1236 ms: tesseract_planning::DefaultTrajOptIfoptProblemGenerator(std::__cxx11... (2 times, avg 618 ms)
1229 ms: void std::_Hashtable<$>::_M_assign<$>(std::_Hashtable<$> const&, std... (90 times, avg 13 ms)
1197 ms: std::_Sp_counted_ptr_inplace<$>::_M_get_deleter(std::type_info const&) (657 times, avg 1 ms)
1092 ms: tesseract_planning::RasterDTTaskflow::generateTaskflow(tesseract_pla... (2 times, avg 546 ms)
1016 ms: tesseract_planning::DefaultTrajoptProblemGenerator(std::__cxx11::bas... (2 times, avg 508 ms)
996 ms: std::_Hashtable<$>::~_Hashtable() (304 times, avg 3 ms)
977 ms: void __gnu_cxx::new_allocator<$>::construct<$>(tesseract_scene_graph... (135 times, avg 7 ms)
972 ms: tesseract_planning::RasterWAADTaskflow::generateTaskflow(tesseract_p... (2 times, avg 486 ms)
955 ms: tesseract_planning::RasterGlobalTaskflow::generateTaskflow(tesseract... (2 times, avg 477 ms)
946 ms: tesseract_planning::DescartesMotionPlanner<$>::solve(tesseract_plann... (4 times, avg 236 ms)
900 ms: tesseract_planning::RasterTaskflow::generateTaskflow(tesseract_plann... (2 times, avg 450 ms)
890 ms: std::_Hashtable<$>::_M_insert_unique_node(unsigned long, unsigned lo... (105 times, avg 8 ms)
846 ms: std::_Function_base::_Base_manager<$>::_M_manager(std::_Any_data&, s... (251 times, avg 3 ms)
835 ms: tesseract_collision::loadSimplePlyFile(std::__cxx11::basic_string<$>... (6 times, avg 139 ms)
830 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (37 times, avg 22 ms)
792 ms: tesseract_collision::createConvexHull(std::vector<$>&, Eigen::Matrix... (11 times, avg 72 ms)
785 ms: tesseract_planning::getClosestJointSolution(Eigen::Transform<$> cons... (2 times, avg 392 ms)
780 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (36 times, avg 21 ms)
771 ms: bool std::__detail::_Compiler<$>::_M_expression_term<$>(std::pair<$>... (20 times, avg 38 ms)
*** Expensive headers:
301055 ms: /home/matthew/code/tesseract/devel/include/tesseract_scene_graph/graph.h (included 130 times, avg 2315 ms), included via:
group_states.cpp.o (4600 ms)
utils.cpp.o utils.h (4552 ms)
parse_srdf_example.cpp.o (4262 ms)
collision_margins.cpp.o (3991 ms)
kdl_inv_kin_chain_lma.cpp.o kdl_parser.h (3708 ms)
kdl_fwd_kin_chain.cpp.o kdl_parser.h (3656 ms)
...
248929 ms: /home/matthew/code/tesseract/devel/include/tesseract_environment/core/environment.h (included 94 times, avg 2648 ms), included via:
process_environment_cache.cpp.o process_environment_cache.h (5612 ms)
process_planning_server.cpp.o task_info.h (5063 ms)
task_info.cpp.o task_info.h (4884 ms)
descartes_collision.cpp.o descartes_collision.h (4875 ms)
trajopt_default_composite_profile.cpp.o problem_description.hpp (4835 ms)
default_problem_generator.cpp.o default_problem_generator.h problem_description.hpp (4819 ms)
...
153222 ms: /usr/include/eigen3/Eigen/Core (included 229 times, avg 669 ms), included via:
state_waypoint.cpp.o state_waypoint.h (1258 ms)
descartes_utils.cpp.o descartes_utils.h types.h (1257 ms)
serialization.cpp.o Dense (1251 ms)
kinematic_limits.cpp.o kinematic_limits.h (1216 ms)
default_problem_generator.cpp.o validate.h Geometry (1161 ms)
cartesian_waypoint.cpp.o serialization.h Dense (1142 ms)
...
110816 ms: /home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/include/tesseract_process_managers/core/task_info.h (included 36 times, avg 3078 ms), included via:
task_info.cpp.o (6061 ms)
process_planning_server.cpp.o (6021 ms)
taskflow_interface.cpp.o (5763 ms)
task_input.cpp.o task_input.h taskflow_interface.h (5349 ms)
default_process_planners.cpp.o default_process_planners.h taskflow_generator.h task_input.h taskflow_interface.h (5198 ms)
process_planning_future.cpp.o process_planning_future.h taskflow_interface.h (4649 ms)
...
107363 ms: /usr/include/eigen3/Eigen/Geometry (included 224 times, avg 479 ms), included via:
default_problem_generator.cpp.o validate.h (1373 ms)
move_instruction.cpp.o move_instruction.h (1372 ms)
descartes_default_plan_profile.cpp.o descartes_default_plan_profile.hpp move_instruction.h (1285 ms)
get_instruction_utils.cpp.o get_instruction_utils.h plan_instruction.h (1283 ms)
filter_functions.cpp.o plan_instruction.h (1277 ms)
timing_edge_evaluator.cpp.o timing_edge_evaluator.hpp timing_edge_evaluator.h (1264 ms)
...
101457 ms: /home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/include/tesseract_process_managers/core/utils.h (included 23 times, avg 4411 ms), included via:
continuous_contact_check_task_generator.cpp.o (5690 ms)
utils.cpp.o (5648 ms)
seed_min_length_task_generator.cpp.o (5535 ms)
motion_planner_task_generator.cpp.o (5532 ms)
profile_switch_task_generator.cpp.o (5458 ms)
descartes_taskflow.cpp.o (5385 ms)
...
93449 ms: /home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/include/tesseract_process_managers/core/task_input.h (included 34 times, avg 2748 ms), included via:
task_input.cpp.o (5760 ms)
default_process_planners.cpp.o default_process_planners.h taskflow_generator.h (5573 ms)
task_generator.cpp.o task_generator.h (4626 ms)
taskflow_container.cpp.o taskflow_container.h task_generator.h (4548 ms)
descartes_taskflow.cpp.o utils.h (3795 ms)
continuous_contact_check_task_generator.cpp.o utils.h (3769 ms)
...
90636 ms: /home/matthew/code/tesseract/src/tesseract_planning/tesseract_process_managers/include/tesseract_process_managers/core/taskflow_interface.h (included 35 times, avg 2589 ms), included via:
task_input.cpp.o task_input.h (5353 ms)
default_process_planners.cpp.o default_process_planners.h taskflow_generator.h task_input.h (5206 ms)
process_planning_future.cpp.o process_planning_future.h (4657 ms)
task_generator.cpp.o task_generator.h task_input.h (4362 ms)
taskflow_container.cpp.o taskflow_container.h task_generator.h task_input.h (4296 ms)
descartes_taskflow.cpp.o utils.h task_input.h (3524 ms)
...
65664 ms: /home/matthew/code/tesseract/devel/include/tesseract_common/utils.h (included 168 times, avg 390 ms), included via:
groups.cpp.o (2216 ms)
origin.cpp.o (2086 ms)
octree.cpp.o (2055 ms)
box.cpp.o (2024 ms)
octomap.cpp.o (1990 ms)
mesh.cpp.o (1929 ms)
...
61775 ms: /home/matthew/code/tesseract/devel/include/tesseract_common/types.h (included 176 times, avg 350 ms), included via:
descartes_utils.cpp.o descartes_utils.h (2077 ms)
freespace_example.cpp.o (1015 ms)
memory_usage_example.cpp.o (926 ms)
kinematics_information.cpp.o kinematics_information.h (714 ms)
groups.cpp.o utils.h (638 ms)
raster_manager_example.cpp.o (622 ms)
...
done in 0.8s.
Is there documentation or guidance on how you go about using this information to improve things?
Not that I know of. I was mostly just running this to see if Taskflow showed up as a big bottleneck. I imagine the boost and eigen stuff we are kind of stuck with.
I found the expensive headers interesting. I imagine we could clean up some of those. I bet there are some places we can forward declare things to prevent including things like graph.h or environment.h
I also noticed that several of the files in tesseract_motion_planners showed up in longest to parse. I think we've known that we should probably split up that target regardless to avoid bottlenecks.
It might be interesting to profile the Tesseract compile time was done for MoveIt here: https://github.com/ros-planning/moveit/issues/2081