Open vittorioromeo opened 3 years ago
Better analysis after AddPointer_t
:
Analyzing build trace from 'out.txt'...
**** Time summary:
Compilation (679 times):
Parsing (frontend): 92.8 s
Codegen & opts (backend): 16.2 s
**** Files that took longest to parse (compiler frontend):
5987 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAE.cpp.json
5308 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/alive_api.cpp.json
4499 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAO.cpp.json
3503 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/JsonDocument.cpp.json
2018 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollection.cpp.json
1484 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TlvObjectBase.cpp.json
1446 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/JsonUpgrader.cpp.json
1446 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/AEJsonUpgrader.cpp.json
1413 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/AOJsonUpgrader.cpp.json
1392 ms: Source//AliveLibCommon/CMakeFiles/AliveLibCommon.dir/cmake_pch.hxx.json
**** Files that took longest to codegen (compiler backend):
3830 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAE.cpp.json
2604 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAO.cpp.json
281 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/DebugHelpers.cpp.obj
235 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/PsxRender.cpp.obj
204 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/Renderer/OpenGLRenderer.cpp.obj
172 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/Abe.cpp.obj
170 ms: Source//Tools/alive_api/CMakeFiles/alive_api.dir/JsonDocument.cpp.json
161 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/Mudokon.cpp.obj
153 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/Animation.cpp.obj
152 ms: Source//AliveLibAE/CMakeFiles/AliveLibAE.dir/Slig.cpp.obj
**** Templates that took longest to instantiate:
3131 ms: std::is_pod<TlvTypes32> (135 times, avg 23 ms)
2751 ms: std::is_pod<AO::TlvTypes32> (115 times, avg 23 ms)
1883 ms: std::__or_<std::is_reference<TlvTypes32>, std::is_function<TlvTypes3... (116 times, avg 16 ms)
1558 ms: std::__or_<std::is_reference<AO::TlvTypes32>, std::is_function<AO::T... (115 times, avg 13 ms)
1290 ms: std::is_reference<TlvTypes32> (108 times, avg 11 ms)
1222 ms: std::__or_<std::is_lvalue_reference<TlvTypes32>, std::is_rvalue_refe... (108 times, avg 11 ms)
1060 ms: std::is_reference<AO::TlvTypes32> (112 times, avg 9 ms)
1040 ms: std::__or_<std::is_lvalue_reference<AO::TlvTypes32>, std::is_rvalue_... (112 times, avg 9 ms)
979 ms: std::__and_<std::is_convertible<char const (&)[2], std::basic_string... (83 times, avg 11 ms)
893 ms: std::is_convertible<char const (&)[2], std::basic_string_view<char, ... (79 times, avg 11 ms)
782 ms: magic_enum::enum_name<AO::TlvTypes> (3 times, avg 260 ms)
708 ms: magic_enum::detail::endex<AO::TlvTypes, short> (3 times, avg 236 ms)
707 ms: magic_enum::detail::undex<AO::TlvTypes, short> (3 times, avg 235 ms)
571 ms: std::__or_<std::is_function<TlvTypes32>, std::is_void<TlvTypes32>, s... (114 times, avg 5 ms)
538 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (99 times, avg 5 ms)
512 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (99 times, avg 5 ms)
506 ms: std::__or_<std::is_void<TlvTypes32>, std::__is_array_unknown_bounds<... (108 times, avg 4 ms)
488 ms: magic_enum::detail::values<AO::TlvTypes, false, short> (3 times, avg 162 ms)
481 ms: magic_enum::detail::values<AO::TlvTypes, false, -128, 0, 1, 2, 3, 4,... (3 times, avg 160 ms)
474 ms: std::__or_<std::is_function<AO::TlvTypes32>, std::is_void<AO::TlvTyp... (115 times, avg 4 ms)
421 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (87 times, avg 4 ms)
400 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (87 times, avg 4 ms)
400 ms: std::__or_<std::is_void<AO::TlvTypes32>, std::__is_array_unknown_bou... (112 times, avg 3 ms)
385 ms: magic_enum::enum_name<TlvTypes> (2 times, avg 192 ms)
373 ms: std::_Function_handler<std::unique_ptr<TlvObjectBase, std::default_d... (99 times, avg 3 ms)
339 ms: magic_enum::detail::endex<TlvTypes, short> (2 times, avg 169 ms)
339 ms: magic_enum::detail::undex<TlvTypes, short> (2 times, avg 169 ms)
335 ms: std::__is_array_unknown_bounds<TlvTypes32> (108 times, avg 3 ms)
333 ms: std::__or_<std::is_void<char const (&)[2]>, std::is_function<std::ba... (50 times, avg 6 ms)
303 ms: std::_Function_handler<std::unique_ptr<TlvObjectBase, std::default_d... (87 times, avg 3 ms)
**** Template sets that took longest to instantiate:
5883 ms: std::is_pod<$> (250 times, avg 23 ms)
5013 ms: TypesCollection::AddEnum<$> (143 times, avg 35 ms)
4059 ms: std::__or_<$> (396 times, avg 10 ms)
3610 ms: std::unique_ptr<$> (532 times, avg 6 ms)
3337 ms: TlvFactory<$>::DoRegisterType<$> (186 times, avg 17 ms)
2882 ms: std::__uniq_ptr_data<$> (532 times, avg 5 ms)
2854 ms: std::__uniq_ptr_impl<$> (532 times, avg 5 ms)
2474 ms: TlvObjectBase::AddProperty<$> (169 times, avg 14 ms)
2458 ms: std::__and_<$> (1651 times, avg 1 ms)
2401 ms: std::is_reference<$> (233 times, avg 10 ms)
2394 ms: std::make_unique<$> (505 times, avg 4 ms)
1594 ms: EnumType<$>::Add (143 times, avg 11 ms)
1591 ms: std::tuple<$> (699 times, avg 2 ms)
1392 ms: magic_enum::enum_name<$> (6 times, avg 232 ms)
1261 ms: magic_enum::detail::endex<$> (6 times, avg 210 ms)
1260 ms: magic_enum::detail::undex<$> (6 times, avg 210 ms)
1233 ms: std::_Rb_tree<$>::_M_erase (331 times, avg 3 ms)
1224 ms: std::_Rb_tree<$>::~_Rb_tree (319 times, avg 3 ms)
1152 ms: EnumType<$>::EnumType (143 times, avg 8 ms)
1140 ms: std::_Rb_tree<$>::_M_emplace_hint_unique<$> (167 times, avg 6 ms)
1080 ms: std::unique_ptr<$>::unique_ptr<$> (843 times, avg 1 ms)
1011 ms: std::function<$>::function<$> (215 times, avg 4 ms)
1006 ms: std::is_convertible<$> (124 times, avg 8 ms)
972 ms: magic_enum::detail::values<$> (6 times, avg 162 ms)
933 ms: std::map<$> (373 times, avg 2 ms)
787 ms: std::__uniq_ptr_impl<$>::__uniq_ptr_impl (699 times, avg 1 ms)
725 ms: std::_Function_handler<$>::_M_invoke (215 times, avg 3 ms)
677 ms: std::_Rb_tree_node<$> (339 times, avg 1 ms)
674 ms: TypedProperty<$>::TypedProperty (158 times, avg 4 ms)
668 ms: __gnu_cxx::__aligned_membuf<$> (339 times, avg 1 ms)
**** Functions that took longest to compile:
52 ms: Test::RenderTest() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Animation.cpp)
30 ms: Animation::vDecode2_40B200() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Animation.cpp)
25 ms: Meat::VOnTrapDoorOpen() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Meat.cpp)
22 ms: stbi__idct_simd(unsigned char*, int, short*) (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Renderer/OpenGLRenderer.cpp)
22 ms: DoorFlame::ctor_45E460(Path_DoorFlame*, int) (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/DoorFlame.cpp)
20 ms: testing::AssertionResult testing::internal::EqHelper<false>::Compare... (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Animation.cpp)
17 ms: MultiSwitchController::vScreenChanged_4D6860() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/MultiSwitchController.cpp)
17 ms: BaseAliveGameObject::vSetMotion_4081C0(short) (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/BaseAliveGameObject.cpp)
13 ms: FixedPoint_ForceLink() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/FixedPoint.cpp)
13 ms: Scrab::vUpdate_4A3530() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Scrab.cpp)
13 ms: Test::Test_PSX_Render_Convert_Polys_To_Internal_Format_4F7110() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/PsxRender.cpp)
12 ms: AETlvs::Path_SligGetPants::Path_SligGetPants(TypesCollection&, Path_... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
11 ms: __cxx_global_var_init.37 (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/DebugHelpers.cpp)
11 ms: AETlvs::Path_SligSpawner::Path_SligSpawner(TypesCollection&, Path_TL... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
11 ms: Animation::Animation() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/BoomMachine.cpp)
10 ms: AETlvs::Path_Slig::Path_Slig(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
10 ms: __cxx_global_var_init (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/SligGetPantsAndWings.cpp)
10 ms: AETlvs::Path_Door::Path_Door(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
10 ms: MineCar::FollowDirection_46EA00() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/MineCar.cpp)
9 ms: Teleporter::vUpdate_4DC400() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Teleporter.cpp)
9 ms: AOTlvs::Path_Slig::Path_Slig(TypesCollection&, AO::Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
9 ms: AOTlvs::Path_SligSpawner::Path_SligSpawner(TypesCollection&, AO::Pat... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
9 ms: stbi__YCbCr_to_RGB_simd(unsigned char*, unsigned char const*, unsign... (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Renderer/OpenGLRenderer.cpp)
9 ms: FallingItem::VOnThrowableHit(BaseGameObject*) (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/FallingItem.cpp)
9 ms: TouchController::TouchController() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/TouchController.cpp)
9 ms: TypesCollection::AddAETypes() (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
9 ms: std::_Vector_base<DebugConsoleCommand, std::allocator<DebugConsoleCo... (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/DebugHelpers.cpp)
9 ms: std::allocator_traits<std::allocator<unsigned char> >::allocate(std:... (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/DebugHelpers.cpp)
9 ms: MineCar::HandleUpDown() (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/MineCar.cpp)
9 ms: sdl_ellipse(SDL_Renderer*, int, int, int, int, unsigned char, unsign... (C:/OHWorkspace/alive_reversing/Source/AliveLibAE/TouchController.cpp)
**** Function sets that took longest to compile / optimize:
143 ms: TlvObjectBaseAE<$>::InstanceFromJsonBase(jsonxx::Object&) (97 times, avg 1 ms)
126 ms: TlvObjectBaseAO<$>::InstanceFromJsonBase(jsonxx::Object&) (85 times, avg 1 ms)
98 ms: void TlvFactory<$>::DoRegisterType<$>(TypesCollection&) (186 times, avg 0 ms)
72 ms: TlvObjectBaseAE<$>::InstanceToJsonBase(jsonxx::Object&) (97 times, avg 0 ms)
61 ms: TlvObjectBaseAO<$>::InstanceToJsonBase(jsonxx::Object&) (85 times, avg 0 ms)
58 ms: AO::DynamicArrayT<$>::ItemAt(int) (63 times, avg 0 ms)
55 ms: EnumType<$>::ToJson(jsonxx::Array&) const (68 times, avg 0 ms)
55 ms: EnumType<$>* TypesCollection::AddEnum<$>(std::__cxx11::basic_string<... (68 times, avg 0 ms)
52 ms: std::_Rb_tree_iterator<$> std::_Rb_tree<$>::_M_emplace_hint_unique<$... (78 times, avg 0 ms)
41 ms: void std::_Rb_tree<$>::_M_construct_node<$>(std::_Rb_tree_node<$>*, ... (77 times, avg 0 ms)
20 ms: testing::AssertionResult testing::internal::EqHelper<$>::Compare<$>(... (1 times, avg 20 ms)
17 ms: std::vector<$>::~vector() (16 times, avg 1 ms)
13 ms: std::_Vector_base<$>::~_Vector_base() (17 times, avg 0 ms)
11 ms: BitFieldT<$>::Set(AnimFlags, int) (4 times, avg 2 ms)
10 ms: FixedPoint FP_FromInteger<$>(int) (5 times, avg 2 ms)
9 ms: std::_Vector_base<$>::_Vector_impl::_Vector_impl(std::allocator<$> c... (1 times, avg 9 ms)
9 ms: std::allocator_traits<$>::allocate(std::allocator<$>&, unsigned long... (1 times, avg 9 ms)
8 ms: BitFieldT<$>::BitFieldT() (6 times, avg 1 ms)
8 ms: BitFieldT<$>::Clear(AnimFlags) (3 times, avg 2 ms)
7 ms: std::function<$>::function<$>($_1) (1 times, avg 7 ms)
7 ms: AIFunctionData<$> const& GetOriginalFn<$>(void (FlyingSlig::*)(), AI... (1 times, avg 7 ms)
7 ms: Command_Spawn(std::vector<$> const&) (1 times, avg 7 ms)
6 ms: void PSX_Render_Poly_FT4_Direct_Impl<$>(bool, OT_Prim*, int, int, vo... (2 times, avg 3 ms)
6 ms: std::vector<$>::vector(std::vector<$> const&) (1 times, avg 6 ms)
6 ms: JsonReaderBase::Load(Game, std::__cxx11::basic_string<$> const&) (1 times, avg 6 ms)
6 ms: std::allocator<$>::allocator() (6 times, avg 1 ms)
6 ms: FixedPoint FP_FromInteger<$>(short) (5 times, avg 1 ms)
6 ms: void std::__cxx11::basic_string<$>::_M_construct<$>(char const*, cha... (7 times, avg 0 ms)
6 ms: void AliveAPI::SaveBinaryPathToLvl<$>(AliveAPI::Result&, Game, std::... (2 times, avg 3 ms)
5 ms: std::_Function_handler<$>::_M_manager(std::_Any_data&, std::_Any_dat... (2 times, avg 2 ms)
*** Expensive headers:
16310 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Psx.hpp (included 237 times, avg 68 ms), included via:
LevelLoader.cpp.obj LevelLoader.hpp Path.hpp (158 ms)
Abe.cpp.obj Abe.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp (149 ms)
TimerTrigger.cpp.obj TimerTrigger.hpp Path.hpp (140 ms)
InvisibleSwitch.cpp.obj InvisibleSwitch.hpp Path.hpp (140 ms)
PlatformBase.cpp.obj PlatformBase.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp (136 ms)
LiftMover.cpp.obj LiftMover.hpp Path.hpp (133 ms)
...
15806 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/bmp.hpp (included 223 times, avg 70 ms), included via:
LevelLoader.cpp.obj LevelLoader.hpp Path.hpp Psx.hpp (150 ms)
Abe.cpp.obj Abe.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp Psx.hpp (147 ms)
TimerTrigger.cpp.obj TimerTrigger.hpp Path.hpp Psx.hpp (138 ms)
InvisibleSwitch.cpp.obj InvisibleSwitch.hpp Path.hpp Psx.hpp (136 ms)
PlatformBase.cpp.obj PlatformBase.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp Psx.hpp (134 ms)
LiftMover.cpp.obj LiftMover.hpp Path.hpp Psx.hpp (126 ms)
...
9174 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Path.hpp (included 167 times, avg 54 ms), included via:
LevelLoader.cpp.obj LevelLoader.hpp (197 ms)
TimerTrigger.cpp.obj TimerTrigger.hpp (182 ms)
LiftMover.cpp.obj LiftMover.hpp (174 ms)
InvisibleSwitch.cpp.obj InvisibleSwitch.hpp (165 ms)
Well.cpp.obj Well.hpp (163 ms)
NakedSlig.cpp.obj NakedSlig.hpp (152 ms)
...
9061 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Primitives.hpp (included 174 times, avg 52 ms), included via:
Abe.cpp.obj Abe.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp (155 ms)
PlatformBase.cpp.obj PlatformBase.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp (142 ms)
DoorFlame.cpp.obj DoorFlame.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp AnimationBase.hpp (125 ms)
Spark.cpp.obj Spark.hpp (121 ms)
Paramite.cpp.obj Paramite.hpp BaseAliveGameObject.hpp Animation.hpp AnimationBase.hpp (117 ms)
SnoozeParticle.cpp.obj SnoozeParticle.hpp (117 ms)
...
8052 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/Animation.hpp (included 145 times, avg 55 ms), included via:
Abe.cpp.obj Abe.hpp BaseAliveGameObject.hpp (156 ms)
PlatformBase.cpp.obj PlatformBase.hpp BaseAliveGameObject.hpp (143 ms)
Events.cpp.obj Function.hpp (132 ms)
DoorFlame.cpp.obj DoorFlame.hpp BaseAnimatedWithPhysicsGameObject.hpp (126 ms)
Paramite.cpp.obj Paramite.hpp BaseAliveGameObject.hpp (119 ms)
ColourfulMeter.cpp.obj ColourfulMeter.hpp Font.hpp (114 ms)
...
7957 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/AnimationBase.hpp (included 118 times, avg 67 ms), included via:
Abe.cpp.obj Abe.hpp BaseAliveGameObject.hpp Animation.hpp (155 ms)
PlatformBase.cpp.obj PlatformBase.hpp BaseAliveGameObject.hpp Animation.hpp (142 ms)
Events.cpp.obj Function.hpp Animation.hpp (132 ms)
DoorFlame.cpp.obj DoorFlame.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp (125 ms)
Paramite.cpp.obj Paramite.hpp BaseAliveGameObject.hpp Animation.hpp (117 ms)
ColourfulMeter.cpp.obj ColourfulMeter.hpp Font.hpp Animation.hpp (113 ms)
...
7211 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/../AliveLibCommon/stdafx_common.h (included 6 times, avg 1201 ms), included via:
JsonDocument.cpp.json (1259 ms)
TypesCollection.cpp.json (1192 ms)
alive_api.cpp.json (1192 ms)
TypesCollectionAO.cpp.json (1190 ms)
TypesCollectionAE.cpp.json (1190 ms)
TlvObjectBase.cpp.json (1185 ms)
...
6842 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibCommon/Function.hpp (included 342 times, avg 20 ms), included via:
MinesAlarm.cpp.obj (161 ms)
Dove.cpp.obj (138 ms)
Events.cpp.obj (136 ms)
RollingBall.cpp.obj (125 ms)
SoundDSound.cpp.obj (124 ms)
FootSwitch.cpp.obj (120 ms)
...
5894 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibCommon/logger.hpp (included 11 times, avg 535 ms), included via:
vab_tool.cpp.json (1034 ms)
JsonUpgrader.cpp.json stdafx.h pch_shared.h (505 ms)
AEJsonUpgrader.cpp.json stdafx.h pch_shared.h (497 ms)
cmake_pch.hxx.json cmake_pch.hxx pch_shared.h (493 ms)
JsonDocument.cpp.json stdafx_common.h pch_shared.h (489 ms)
TlvObjectBase.cpp.json stdafx_common.h pch_shared.h (483 ms)
...
3707 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/stdafx.h (included 16 times, avg 231 ms), included via:
AEJsonUpgrader.cpp.json (1248 ms)
JsonUpgrader.cpp.json (1227 ms)
AOJsonUpgrader.cpp.json (1201 ms)
VGA.cpp.obj (16 ms)
Abe.cpp.obj (3 ms)
PsxSpuApi.cpp.obj (2 ms)
...
done in 0.1s.
AliveExeAE and AliveExeAO could probably be removed in favour of AliveExe. Would just need to tweak the logic to look for AO files, if found run AO, else look for AE files, if found run AE else display the error that AO nor AE files was found. Right now I think it only uses a command line argument and defaults to AO or something.
Analysis just for alive_api
:
**** Time summary:
Compilation (20 times):
Parsing (frontend): 26.4 s
Codegen & opts (backend): 7.4 s
**** Files that took longest to parse (compiler frontend):
6322 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAE.cpp.obj
5938 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/alive_api.cpp.obj
4938 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAO.cpp.obj
2655 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/JsonDocument.cpp.obj
1761 ms: Source/Tools/alive_api/CMakeFiles/alive_api_test.dir/alive_api_test.cpp.obj
1382 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAE.cpp.obj
1298 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollection.cpp.obj
1030 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAO.cpp.obj
416 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TlvObjectBase.cpp.obj
173 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/AOJsonUpgrader.cpp.obj
**** Files that took longest to codegen (compiler backend):
3922 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAE.cpp.obj
2803 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollectionAO.cpp.obj
195 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/JsonDocument.cpp.obj
164 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/TypesCollection.cpp.obj
137 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/alive_api.cpp.obj
135 ms: Source/Tools/alive_api/CMakeFiles/alive_api_test.dir/alive_api_test.cpp.obj
42 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/AOJsonUpgrader.cpp.obj
21 ms: Source/Tools/alive_api/CMakeFiles/alive_api.dir/JsonUpgrader.cpp.obj
**** Templates that took longest to instantiate:
782 ms: magic_enum::enum_name<AO::TlvTypes> (2 times, avg 391 ms)
724 ms: magic_enum::detail::endex<AO::TlvTypes, short> (2 times, avg 362 ms)
723 ms: magic_enum::detail::undex<AO::TlvTypes, short> (2 times, avg 361 ms)
697 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (87 times, avg 8 ms)
648 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (87 times, avg 7 ms)
597 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (99 times, avg 6 ms)
581 ms: magic_enum::enum_name<TlvTypes> (2 times, avg 290 ms)
546 ms: std::function<std::unique_ptr<TlvObjectBase, std::default_delete<Tlv... (99 times, avg 5 ms)
517 ms: magic_enum::detail::endex<TlvTypes, short> (2 times, avg 258 ms)
517 ms: magic_enum::detail::undex<TlvTypes, short> (2 times, avg 258 ms)
509 ms: magic_enum::detail::values<AO::TlvTypes, false, short> (2 times, avg 254 ms)
504 ms: magic_enum::detail::values<AO::TlvTypes, false, -128, 0, 1, 2, 3, 4,... (2 times, avg 252 ms)
471 ms: std::_Function_handler<std::unique_ptr<TlvObjectBase, std::default_d... (87 times, avg 5 ms)
461 ms: magic_enum::detail::values<TlvTypes, false, short> (2 times, avg 230 ms)
454 ms: magic_enum::detail::values<TlvTypes, false, -128, 0, 1, 2, 3, 4, 5, ... (2 times, avg 227 ms)
405 ms: std::_Function_handler<std::unique_ptr<TlvObjectBase, std::default_d... (99 times, avg 4 ms)
405 ms: TlvFactory<AO::TlvTypes, AO::Path_TLV>::MakeTlvByEnum (1 times, avg 405 ms)
357 ms: TlvFactory<TlvTypes, Path_TLV>::MakeTlvByEnum (1 times, avg 357 ms)
210 ms: TypesCollection::AddEnum<AO::BellsongTypes> (4 times, avg 52 ms)
204 ms: TypesCollection::AddEnum<AO::Path_ZBall::StartPos> (4 times, avg 51 ms)
194 ms: TypesCollection::AddEnum<AO::PortalType> (4 times, avg 48 ms)
192 ms: TypesCollection::AddEnum<AO::Path_Hoist::Type> (4 times, avg 48 ms)
191 ms: TypesCollection::AddEnum<AO::Path_LightEffect::Type> (4 times, avg 47 ms)
190 ms: TypesCollection::AddEnum<ElectricWallStartState> (2 times, avg 95 ms)
188 ms: TypesCollection::AddEnum<AO::DoorStates> (4 times, avg 47 ms)
187 ms: TlvObjectBase::AddProperty<Scale_short> (5 times, avg 37 ms)
187 ms: TypesCollection::AddEnum<AO::Path_Hoist::EdgeType> (4 times, avg 46 ms)
182 ms: TypesCollection::AddEnum<AO::Path_BeeSwarmHole::MovementType> (4 times, avg 45 ms)
176 ms: TypesCollection::AddEnum<AO::UXB_State> (4 times, avg 44 ms)
175 ms: TypesCollection::AddEnum<AO::Path_Slig::StartState> (4 times, avg 43 ms)
**** Template sets that took longest to instantiate:
7671 ms: TypesCollection::AddEnum<$> (162 times, avg 47 ms)
5303 ms: std::unique_ptr<$> (575 times, avg 9 ms)
4440 ms: TlvFactory<$>::DoRegisterType<$> (186 times, avg 23 ms)
4233 ms: std::__uniq_ptr_data<$> (575 times, avg 7 ms)
4192 ms: std::__uniq_ptr_impl<$> (575 times, avg 7 ms)
3979 ms: TlvObjectBase::AddProperty<$> (196 times, avg 20 ms)
3707 ms: std::make_unique<$> (552 times, avg 6 ms)
2492 ms: std::__and_<$> (2341 times, avg 1 ms)
2350 ms: EnumType<$>::Add (162 times, avg 14 ms)
2177 ms: std::tuple<$> (748 times, avg 2 ms)
1785 ms: EnumType<$>::EnumType (162 times, avg 11 ms)
1622 ms: std::_Rb_tree<$>::_M_emplace_hint_unique<$> (175 times, avg 9 ms)
1587 ms: std::unique_ptr<$>::unique_ptr<$> (917 times, avg 1 ms)
1363 ms: magic_enum::enum_name<$> (4 times, avg 340 ms)
1241 ms: magic_enum::detail::endex<$> (4 times, avg 310 ms)
1240 ms: magic_enum::detail::undex<$> (4 times, avg 310 ms)
1195 ms: std::function<$>::function<$> (186 times, avg 6 ms)
1186 ms: std::_Rb_tree<$>::~_Rb_tree (189 times, avg 6 ms)
1167 ms: std::_Rb_tree<$>::_M_erase (189 times, avg 6 ms)
1162 ms: std::_TupleConstraints<$>::__is_implicitly_constructible<$> (1044 times, avg 1 ms)
1121 ms: std::__uniq_ptr_impl<$>::__uniq_ptr_impl (745 times, avg 1 ms)
1095 ms: std::map<$> (230 times, avg 4 ms)
1060 ms: TypedProperty<$>::TypedProperty (184 times, avg 5 ms)
971 ms: magic_enum::detail::values<$> (4 times, avg 242 ms)
891 ms: std::_Rb_tree<$>::_M_get_insert_hint_unique_pos (175 times, avg 5 ms)
877 ms: std::_Function_handler<$>::_M_invoke (186 times, avg 4 ms)
776 ms: std::__uniq_ptr_impl<$>::__uniq_ptr_impl<$> (354 times, avg 2 ms)
762 ms: TlvFactory<$>::MakeTlvByEnum (2 times, avg 381 ms)
752 ms: TypedProperty<$>::Read (179 times, avg 4 ms)
732 ms: std::unique_ptr<$>::~unique_ptr (571 times, avg 1 ms)
**** Functions that took longest to compile:
24 ms: std::_Tuple_impl<0ull, BasicType<short>*, std::default_delete<BasicT... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollection.cpp)
11 ms: AOTlvs::Path_Slig::Path_Slig(TypesCollection&, AO::Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
10 ms: AETlvs::Path_SligGetPants::Path_SligGetPants(TypesCollection&, Path_... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
10 ms: AETlvs::Path_Slig::Path_Slig(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
10 ms: AETlvs::Path_SligSpawner::Path_SligSpawner(TypesCollection&, Path_TL... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
10 ms: AOTlvs::Path_SligSpawner::Path_SligSpawner(TypesCollection&, AO::Pat... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
9 ms: TypesCollection::AddAETypes() (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
8 ms: AOTlvs::Path_Door::Path_Door(TypesCollection&, AO::Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
8 ms: AETlvs::Path_Door::Path_Door(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
7 ms: TypesCollection::AddAOTypes() (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
7 ms: AETlvs::Path_BackgroundAnimation::AddTypes(TypesCollection&) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
6 ms: JsonReaderBase::Load(Game, std::__cxx11::basic_string<char, std::cha... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/JsonDocument.cpp)
6 ms: AETlvs::Path_WellExpress::Path_WellExpress(TypesCollection&, Path_TL... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
6 ms: AOTlvs::Path_WellExpress::Path_WellExpress(TypesCollection&, AO::Pat... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
5 ms: alive_api_ReSaveAllPathsAE_Test::TestBody() (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/alive_api_test.cpp)
5 ms: alive_api_ReSaveAllPathsAO_Test::TestBody() (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/alive_api_test.cpp)
5 ms: AETlvs::Path_ScrabSpawner::Path_ScrabSpawner(TypesCollection&, Path_... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
5 ms: AETlvs::Path_Fleech::Path_Fleech(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
5 ms: AETlvs::Path_FlyingSlig::Path_FlyingSlig(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
5 ms: AETlvs::Path_Mudokon::Path_Mudokon(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
5 ms: AETlvs::Path_FlyingSligSpawner::Path_FlyingSligSpawner(TypesCollecti... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
5 ms: AETlvs::Path_SligGetWings::Path_SligGetWings(TypesCollection&, Path_... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
4 ms: std::_Rb_tree_iterator<std::pair<int const, std::unique_ptr<IJsonUpg... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/AOJsonUpgrader.cpp)
4 ms: JsonWriterBase::Save(PathInfo const&, std::vector<unsigned char, std... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/JsonDocument.cpp)
4 ms: AETlvs::Path_Scrab::Path_Scrab(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
4 ms: AOTlvs::Path_WellLocal::Path_WellLocal(TypesCollection&, AO::Path_TL... (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
4 ms: AETlvs::Path_Glukkon::Path_Glukkon(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
4 ms: AOTlvs::Path_MeatSaw::Path_MeatSaw(TypesCollection&, AO::Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAO.cpp)
4 ms: AETlvs::Path_Grinder::Path_Grinder(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
4 ms: AETlvs::Path_Teleporter::Path_Teleporter(TypesCollection&, Path_TLV*) (C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollectionAE.cpp)
**** Function sets that took longest to compile / optimize:
143 ms: TlvObjectBaseAE<$>::InstanceFromJsonBase(jsonxx::Object&) (97 times, avg 1 ms)
129 ms: TlvObjectBaseAO<$>::InstanceFromJsonBase(jsonxx::Object&) (85 times, avg 1 ms)
103 ms: void TlvFactory<$>::DoRegisterType<$>(TypesCollection&) (186 times, avg 0 ms)
71 ms: TlvObjectBaseAE<$>::InstanceToJsonBase(jsonxx::Object&) (97 times, avg 0 ms)
63 ms: TlvObjectBaseAO<$>::InstanceToJsonBase(jsonxx::Object&) (85 times, avg 0 ms)
58 ms: std::_Rb_tree_iterator<$> std::_Rb_tree<$>::_M_emplace_hint_unique<$... (78 times, avg 0 ms)
57 ms: EnumType<$>* TypesCollection::AddEnum<$>(std::__cxx11::basic_string<... (68 times, avg 0 ms)
57 ms: EnumType<$>::ToJson(jsonxx::Array&) const (68 times, avg 0 ms)
43 ms: void std::_Rb_tree<$>::_M_construct_node<$>(std::_Rb_tree_node<$>*, ... (78 times, avg 0 ms)
25 ms: std::_Tuple_impl<$>::_Tuple_impl() (2 times, avg 12 ms)
6 ms: void AliveAPI::SaveBinaryPathToLvl<$>(AliveAPI::Result&, Game, std::... (2 times, avg 3 ms)
6 ms: JsonReaderBase::Load(Game, std::__cxx11::basic_string<$> const&) (1 times, avg 6 ms)
4 ms: JsonWriterBase::Save(PathInfo const&, std::vector<$>&, std::__cxx11:... (1 times, avg 4 ms)
3 ms: BasicType<$>::ToJson(jsonxx::Array&) const (5 times, avg 0 ms)
3 ms: TlvObjectBaseAO<$>::GetTlvData(bool) (6 times, avg 0 ms)
2 ms: std::unique_ptr<$>::~unique_ptr() (4 times, avg 0 ms)
2 ms: TlvObjectBaseAE<$>::GetTlvData(bool) (4 times, avg 0 ms)
2 ms: std::__cxx11::basic_string<$> TypesCollection::TypeName<$>() const (2 times, avg 1 ms)
2 ms: std::_MakeUniq<$>::__single_object std::make_unique<$>(std::__cxx11:... (2 times, avg 1 ms)
1 ms: std::__uniq_ptr_data<$>::__uniq_ptr_data<$>(TlvObjectBase*, std::def... (1 times, avg 1 ms)
1 ms: void TlvObjectBase::ReadEnumValue<$>(TypesCollection&, Scale_short&,... (2 times, avg 0 ms)
1 ms: void TlvObjectBase::ReadEnumValue<$>(TypesCollection&, XDirection_sh... (2 times, avg 0 ms)
1 ms: TlvFactory<$>::AddTlvsToJsonArray(TypesCollection&, jsonxx::Array&) (2 times, avg 0 ms)
1 ms: void TlvObjectBase::ReadEnumValue<$>(TypesCollection&, Choice_short&... (2 times, avg 0 ms)
1 ms: JsonMapRootInfoReader::Read(std::__cxx11::basic_string<$> const&) (1 times, avg 1 ms)
1 ms: TypesCollection::EnumPair<$>* std::__uninitialized_copy<$>::__uninit... (3 times, avg 0 ms)
1 ms: std::vector<$>::vector(std::vector<$> const&) (3 times, avg 0 ms)
1 ms: void std::__cxx11::basic_string<$>::_M_construct<$>(char const*, cha... (2 times, avg 0 ms)
1 ms: std::vector<$>::_M_default_append(unsigned long long) (2 times, avg 0 ms)
1 ms: void std::allocator_traits<$>::construct<$>(std::allocator<$>&, std:... (1 times, avg 1 ms)
*** Expensive headers:
1194 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TypesCollection.hpp (included 7 times, avg 170 ms), included via:
TypesCollectionAO.cpp.obj (252 ms)
TlvObjectBase.cpp.obj TlvObjectBase.hpp (250 ms)
TypesCollection.cpp.obj (225 ms)
TypesCollectionAE.cpp.obj (204 ms)
alive_api_test.cpp.obj AOTlvs.hpp TlvObjectBase.hpp (102 ms)
alive_api.cpp.obj AETlvs.hpp TlvObjectBase.hpp (89 ms)
...
934 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/AOTlvs.hpp (included 4 times, avg 233 ms), included via:
alive_api.cpp.obj (272 ms)
alive_api_test.cpp.obj (251 ms)
JsonDocument.cpp.obj (220 ms)
TypesCollectionAO.cpp.obj (191 ms)
822 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/TlvObjectBase.hpp (included 7 times, avg 117 ms), included via:
TlvObjectBase.cpp.obj (369 ms)
alive_api_test.cpp.obj AOTlvs.hpp (128 ms)
alive_api.cpp.obj AETlvs.hpp (124 ms)
JsonDocument.cpp.obj AOTlvs.hpp (94 ms)
TypesCollectionAE.cpp.obj AETlvs.hpp (36 ms)
TypesCollection.cpp.obj (35 ms)
...
735 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/AETlvs.hpp (included 2 times, avg 367 ms), included via:
alive_api.cpp.obj (417 ms)
TypesCollectionAE.cpp.obj (317 ms)
454 ms: C:/msys64/mingw64/include/SDL2/SDL.h (included 7 times, avg 64 ms), included via:
TypesCollectionAO.cpp.obj TypesCollection.hpp Path.hpp Psx.hpp bmp.hpp (84 ms)
TlvObjectBase.cpp.obj TlvObjectBase.hpp TypesCollection.hpp Path.hpp Psx.hpp bmp.hpp (71 ms)
alive_api.cpp.obj Path.hpp Psx.hpp bmp.hpp (69 ms)
JsonDocument.cpp.obj JsonDocument.hpp Collisions.hpp Psx.hpp bmp.hpp (63 ms)
TypesCollectionAE.cpp.obj TypesCollection.hpp Path.hpp Psx.hpp bmp.hpp (63 ms)
TypesCollection.cpp.obj TypesCollection.hpp Path.hpp Psx.hpp bmp.hpp (52 ms)
...
434 ms: C:/OHWorkspace/alive_reversing/Source/AliveLibAE/../AliveLibAE/Path.hpp (included 7 times, avg 62 ms), included via:
TypesCollectionAO.cpp.obj TypesCollection.hpp (94 ms)
alive_api.cpp.obj (94 ms)
TlvObjectBase.cpp.obj TlvObjectBase.hpp TypesCollection.hpp (86 ms)
TypesCollectionAE.cpp.obj TypesCollection.hpp (76 ms)
TypesCollection.cpp.obj TypesCollection.hpp (67 ms)
alive_api_test.cpp.obj AOTlvs.hpp TlvObjectBase.hpp TypesCollection.hpp (10 ms)
...
223 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/JsonDocument.hpp (included 2 times, avg 111 ms), included via:
JsonDocument.cpp.obj (156 ms)
alive_api.cpp.obj (66 ms)
156 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/JsonUpgrader.hpp (included 4 times, avg 39 ms), included via:
alive_api.cpp.obj AOJsonUpgrader.hpp (49 ms)
JsonUpgrader.cpp.obj (38 ms)
AOJsonUpgrader.cpp.obj AOJsonUpgrader.hpp (37 ms)
AEJsonUpgrader.cpp.obj AEJsonUpgrader.hpp (31 ms)
87 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/AOJsonUpgrader.hpp (included 2 times, avg 43 ms), included via:
alive_api.cpp.obj (49 ms)
AOJsonUpgrader.cpp.obj (37 ms)
75 ms: C:/OHWorkspace/alive_reversing/Source/Tools/alive_api/LvlReaderWriter.hpp (included 1 times, avg 75 ms), included via:
alive_api.cpp.obj (75 ms)
done in 0.1s.
prob need to run this again after all the recent changes to it
Updated build analysis
Analyzing build trace from 'out.txt'...
**** Time summary:
Compilation (132 times):
Parsing (frontend): 40.5 s
Codegen & opts (backend): 7.3 s
**** Files that took longest to parse (compiler frontend):
1905 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/cmake_pch.hxx.json
1888 ms: Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/cmake_pch.hxx.json
1766 ms: Source/AliveLibCommon/CMakeFiles/AliveLibCommon.dir/cmake_pch.hxx.json
1141 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_0_cxx.cxx.obj
1079 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/JsonDocument.cpp.obj
999 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/TypesCollectionAE.cpp.obj
997 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_6_cxx.cxx.obj
987 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/relive_api_test.cpp.obj
941 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_19_cxx.cxx.obj
922 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/TlvFactory.cpp.obj
**** Files that took longest to codegen (compiler backend):
897 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/TypesCollectionAE.cpp.obj
648 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/TypesCollectionAO.cpp.obj
410 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_19_cxx.cxx.obj
304 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_6_cxx.cxx.obj
237 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_0_cxx.cxx.obj
230 ms: Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_18_cxx.cxx.obj
213 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_1_cxx.cxx.obj
206 ms: Source/Tools/relive_api/CMakeFiles/relive_api.dir/JsonDocument.cpp.obj
193 ms: Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_3_cxx.cxx.obj
185 ms: Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_7_cxx.cxx.obj
**** Templates that took longest to instantiate:
693 ms: std::is_pod<TlvTypes32> (37 times, avg 18 ms)
680 ms: magic_enum::enum_name<AO::TlvTypes> (3 times, avg 226 ms)
604 ms: magic_enum::detail::endex<AO::TlvTypes, short> (3 times, avg 201 ms)
604 ms: magic_enum::detail::undex<AO::TlvTypes, short> (3 times, avg 201 ms)
426 ms: magic_enum::detail::values<AO::TlvTypes, false, short> (3 times, avg 142 ms)
418 ms: magic_enum::detail::values<AO::TlvTypes, false, -128, 0, 1, 2, 3, 4,... (3 times, avg 139 ms)
401 ms: magic_enum::enum_name<TlvTypes> (2 times, avg 200 ms)
394 ms: std::is_pod<AO::TlvTypes32> (21 times, avg 18 ms)
351 ms: std::__or_<std::is_reference<TlvTypes32>, std::is_function<TlvTypes3... (31 times, avg 11 ms)
351 ms: magic_enum::detail::endex<TlvTypes, short> (2 times, avg 175 ms)
350 ms: magic_enum::detail::undex<TlvTypes, short> (2 times, avg 175 ms)
301 ms: magic_enum::detail::values<TlvTypes, false, short> (2 times, avg 150 ms)
296 ms: magic_enum::detail::values<TlvTypes, false, -128, 0, 1, 2, 3, 4, 5, ... (2 times, avg 148 ms)
282 ms: std::__and_<std::is_convertible<char const (&)[2], std::basic_string... (29 times, avg 9 ms)
258 ms: std::is_convertible<char const (&)[2], std::basic_string_view<char, ... (27 times, avg 9 ms)
231 ms: std::map<std::__cxx11::basic_string<char>, jsonxx::Value *, std::les... (14 times, avg 16 ms)
221 ms: TlvFactory<AO::TlvTypes, AO::Path_TLV>::MakeTlvByEnum (1 times, avg 221 ms)
215 ms: PropertyCollection::AddProperty<short> (7 times, avg 30 ms)
214 ms: std::__or_<std::is_reference<AO::TlvTypes32>, std::is_function<AO::T... (18 times, avg 11 ms)
200 ms: TlvFactory<TlvTypes, Path_TLV>::MakeTlvByEnum (1 times, avg 200 ms)
191 ms: std::unordered_map<const void *, std::unique_ptr<BaseProperty, std::... (11 times, avg 17 ms)
182 ms: std::is_reference<TlvTypes32> (19 times, avg 9 ms)
179 ms: std::__or_<std::is_lvalue_reference<TlvTypes32>, std::is_rvalue_refe... (19 times, avg 9 ms)
163 ms: std::__or_<std::is_function<TlvTypes32>, std::is_void<TlvTypes32>, s... (29 times, avg 5 ms)
162 ms: std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std:... (14 times, avg 11 ms)
162 ms: std::is_reference<AO::TlvTypes32> (15 times, avg 10 ms)
161 ms: std::unordered_map<int, std::unique_ptr<IJsonUpgrader, std::default_... (4 times, avg 40 ms)
160 ms: std::_Hashtable<const void *, std::pair<const void *const, std::uniq... (11 times, avg 14 ms)
160 ms: std::__or_<std::is_lvalue_reference<AO::TlvTypes32>, std::is_rvalue_... (15 times, avg 10 ms)
157 ms: TypesCollectionBase::AddEnum<AO::BellsongTypes> (3 times, avg 52 ms)
**** Template sets that took longest to instantiate:
1226 ms: magic_enum::enum_name<$> (6 times, avg 204 ms)
1093 ms: magic_enum::detail::endex<$> (6 times, avg 182 ms)
1092 ms: magic_enum::detail::undex<$> (6 times, avg 182 ms)
1087 ms: std::is_pod<$> (58 times, avg 18 ms)
839 ms: magic_enum::detail::values<$> (6 times, avg 139 ms)
808 ms: std::unordered_map<$> (80 times, avg 10 ms)
793 ms: std::__or_<$> (129 times, avg 6 ms)
742 ms: std::_Hashtable<$> (116 times, avg 6 ms)
718 ms: std::__and_<$> (373 times, avg 1 ms)
537 ms: TypesCollectionBase::AddEnum<$> (106 times, avg 5 ms)
452 ms: PropertyCollection::AddProperty<$> (132 times, avg 3 ms)
421 ms: TlvFactory<$>::MakeTlvByEnum (2 times, avg 210 ms)
414 ms: std::pair<$> (207 times, avg 2 ms)
398 ms: std::is_convertible<$> (61 times, avg 6 ms)
378 ms: std::unique_ptr<$> (32 times, avg 11 ms)
374 ms: std::map<$> (64 times, avg 5 ms)
344 ms: std::is_reference<$> (34 times, avg 10 ms)
317 ms: std::__detail::_Hashtable_alloc<$> (102 times, avg 3 ms)
286 ms: magic_enum::detail::is_valid<$> (401 times, avg 0 ms)
256 ms: EnumType<$>::Add (9 times, avg 28 ms)
255 ms: EnumTypeBase<$>::Add (9 times, avg 28 ms)
253 ms: std::_Hashtable<$>::emplace<$> (25 times, avg 10 ms)
253 ms: std::vector<$> (114 times, avg 2 ms)
250 ms: std::_Rb_tree<$> (72 times, avg 3 ms)
249 ms: std::_Hashtable<$>::_M_emplace<$> (25 times, avg 9 ms)
240 ms: std::__detail::_Hash_node<$> (80 times, avg 3 ms)
239 ms: std::__detail::_Hash_node_value_base<$> (80 times, avg 2 ms)
237 ms: std::__uniq_ptr_data<$> (32 times, avg 7 ms)
235 ms: std::__uniq_ptr_impl<$> (32 times, avg 7 ms)
233 ms: __gnu_cxx::__aligned_buffer<$> (80 times, avg 2 ms)
**** Functions that took longest to compile:
42 ms: LiftPoint::CreatePulleyIfExists_462C80() (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_14_cxx.cxx)
32 ms: PCToPsxVab(bool, char const*, char const*, char const*) (../Source/Tools/vab_tool.cpp)
31 ms: AO::Meat::VUpdate_438A20() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_11_cxx.cxx)
26 ms: AETest::TestsAnimation::RenderTest() (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_5_cxx.cxx)
26 ms: std::vector<std::__cxx11::basic_string<char, std::char_traits<char>,... (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_8_cxx.cxx)
24 ms: AO::Menu::GameSpeak_Update_47CBD0() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_2_cxx.cxx)
18 ms: AO::Abe::VTakeDamage_4214E0(AO::BaseGameObject*) (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_18_cxx.cxx)
15 ms: AO::HintFly::FormWordAndAdvanceToNextWord_42AF90() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_2_cxx.cxx)
15 ms: stbi__idct_simd(unsigned char*, int, short*) (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_0_cxx.cxx)
13 ms: __cxx_global_var_init.20 (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_19_cxx.cxx)
13 ms: AETest::TestsPsxRender::Test_PSX_Render_Convert_Polys_To_Internal_Fo... (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_1_cxx.cxx)
12 ms: AO::BirdPortal::VGetMapChange(AO::LevelIds*, unsigned short*, unsign... (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_5_cxx.cxx)
12 ms: AO::Abe::State_30_HopMid_4264D0() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_18_cxx.cxx)
11 ms: Fixed_24_8 const& std::max<Fixed_24_8>(Fixed_24_8 const&, Fixed_24_8... (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_8_cxx.cxx)
11 ms: TrainDoor::dtor_4DD200() (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_12_cxx.cxx)
10 ms: Bone::OnCollision_412140(BaseAnimatedWithPhysicsGameObject*) (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_20_cxx.cxx)
9 ms: __cxx_global_var_init.64 (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_6_cxx.cxx)
9 ms: AETlvs::Path_SligGetPants::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAE.cpp)
9 ms: AOTlvs::Path_SligSpawner::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAO.cpp)
9 ms: AETlvs::Path_SligSpawner::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAE.cpp)
9 ms: TypesCollectionAE::AddAETypes() (../Source/Tools/relive_api/TypesCollectionAE.cpp)
8 ms: AETlvs::Path_Slig::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAE.cpp)
8 ms: FixedPoint_ForceLink() (Source/AliveLibAE/CMakeFiles/AliveLibAE.dir/Unity/unity_5_cxx.cxx)
8 ms: (anonymous namespace)::alive_api_ReSaveAllPathsAO_Test::TestBody() (../Source/Tools/relive_api/relive_api_test.cpp)
8 ms: AOTlvs::Path_Slig::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAO.cpp)
8 ms: (anonymous namespace)::alive_api_ReSaveAllPathsAE_Test::TestBody() (../Source/Tools/relive_api/relive_api_test.cpp)
7 ms: AO::Abe::State_31_HopLand_426940() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_18_cxx.cxx)
7 ms: AO::GameSpeak::ctor_40F990() (Source/AliveLibAO/CMakeFiles/AliveLibAO.dir/Unity/unity_18_cxx.cxx)
7 ms: AETlvs::Path_Door::AddProperties(TypesCollectionBase&) (../Source/Tools/relive_api/TypesCollectionAE.cpp)
7 ms: (anonymous namespace)::alive_api_ImportPathJsonToBinaryAE_Test::Test... (../Source/Tools/relive_api/relive_api_test.cpp)
**** Function sets that took longest to compile / optimize:
63 ms: EnumType<$>* TypesCollectionBase::AddEnum<$>(std::__cxx11::basic_str... (68 times, avg 0 ms)
28 ms: AO::DynamicArrayT<$>::ItemAt(int) (43 times, avg 0 ms)
26 ms: std::vector<$>::vector() (1 times, avg 26 ms)
11 ms: Fixed_24_8 const& std::max<$>(Fixed_24_8 const&, Fixed_24_8 const&) (1 times, avg 11 ms)
10 ms: std::__detail::_Hash_node<$>* std::__detail::_Hashtable_alloc<$>::_M... (15 times, avg 0 ms)
9 ms: void ReliveAPI::SaveBinaryPathToLvl<$>(std::vector<$>&, Game, std::_... (2 times, avg 4 ms)
7 ms: BitFieldT<$>::Toggle(AO::Shadow::Flags) (1 times, avg 7 ms)
7 ms: AO::DynamicArrayT<$>::Size() const (1 times, avg 7 ms)
5 ms: BitFieldT<$>::Get(AO::BaseGameObject::Options) const (1 times, avg 5 ms)
5 ms: AO::Shadow* ao_new<$>() (2 times, avg 2 ms)
4 ms: JsonReaderBase::Load(TypesCollectionBase&, std::__cxx11::basic_strin... (1 times, avg 4 ms)
4 ms: std::pair<$> std::_Hashtable<$>::_M_emplace<$>(std::integral_constan... (5 times, avg 0 ms)
4 ms: std::__detail::_Hash_node<$>* std::__detail::_Hashtable_alloc<$>::_M... (5 times, avg 0 ms)
4 ms: std::vector<$>::_M_default_append(unsigned long long) (6 times, avg 0 ms)
4 ms: CompileTimeResourceList<$>::CompileTimeResourceList(std::initializer... (1 times, avg 4 ms)
4 ms: cinder::audio::dsp::RingBufferT<$>::~RingBufferT() (1 times, avg 4 ms)
4 ms: JsonWriterBase::Save(PathInfo const&, std::vector<$>&, std::__cxx11:... (1 times, avg 4 ms)
3 ms: EnumTypeBase<$>::ToJson(jsonxx::Array&) const (5 times, avg 0 ms)
3 ms: std::vector<$>::resize(unsigned long long) (1 times, avg 3 ms)
3 ms: std::_Vector_base<$>::_M_get_Tp_allocator() (2 times, avg 1 ms)
3 ms: LvlWriter::Save(std::vector<$>&, char const*) (1 times, avg 3 ms)
2 ms: Command_Spawn(std::vector<$> const&) (1 times, avg 2 ms)
2 ms: EnumTypeBase<$>::Add(short, std::__cxx11::basic_string<$> const&) (2 times, avg 1 ms)
2 ms: EnumTypeBase<$>::Add(signed char, std::__cxx11::basic_string<$> cons... (2 times, avg 1 ms)
2 ms: el::base::Writer& el::base::Writer::operator<<<char [40]>(char const... (1 times, avg 2 ms)
2 ms: __gnu_cxx::__enable_if<__is_char<char>::__value, bool>::__type std::... (1 times, avg 2 ms)
2 ms: BitFieldT<$>::BitFieldT() (1 times, avg 2 ms)
2 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (2 times, avg 1 ms)
2 ms: std::__detail::_Hashtable_alloc<$>::_M_deallocate_buckets(std::__det... (2 times, avg 1 ms)
2 ms: testing::AssertionResult testing::internal::CmpHelperOpFailure<$>(ch... (1 times, avg 2 ms)
*** Expensive headers:
10369 ms: ../Source/AliveLibAE/bmp.hpp (included 48 times, avg 216 ms), included via:
ZapLine.cpp ZapLine.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp Psx.hpp (367 ms)
GameEnderController.cpp Abe.hpp Path.hpp Psx.hpp (339 ms)
MusicController.cpp Abe.hpp Path.hpp Psx.hpp (332 ms)
BeeNest.cpp Abe.hpp Path.hpp Psx.hpp (326 ms)
Meat.cpp Abe.hpp Path.hpp Psx.hpp (322 ms)
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp TypesCollectionBase.hpp Path.hpp Psx.hpp (296 ms)
...
10155 ms: C:/msys64/mingw64/include/SDL2/SDL_main.h (included 59 times, avg 172 ms), included via:
ZapLine.cpp ZapLine.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp Psx.hpp bmp.hpp SDL.h (322 ms)
GameEnderController.cpp Abe.hpp Path.hpp Psx.hpp bmp.hpp SDL.h (300 ms)
MusicController.cpp Abe.hpp Path.hpp Psx.hpp bmp.hpp SDL.h (286 ms)
BeeNest.cpp Abe.hpp Path.hpp Psx.hpp bmp.hpp SDL.h (286 ms)
Meat.cpp Abe.hpp Path.hpp Psx.hpp bmp.hpp SDL.h (278 ms)
OrbWhirlWind.cpp OrbWhirlWind.hpp OrbWhirlWindParticle.hpp Animation.hpp AnimationBase.hpp Primitives.hpp Psx.hpp bmp.hpp SDL.h (247 ms)
...
10007 ms: ../Source/AliveLibAE/Psx.hpp (included 57 times, avg 175 ms), included via:
ZapLine.cpp ZapLine.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp AnimationBase.hpp Primitives.hpp (368 ms)
GameEnderController.cpp Abe.hpp Path.hpp (352 ms)
MusicController.cpp Abe.hpp Path.hpp (333 ms)
BeeNest.cpp Abe.hpp Path.hpp (327 ms)
Meat.cpp Abe.hpp Path.hpp (323 ms)
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp TypesCollectionBase.hpp Path.hpp (298 ms)
...
3341 ms: ../Source/Tools/relive_api/TypesCollectionBase.hpp (included 12 times, avg 278 ms), included via:
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp (421 ms)
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp (356 ms)
TypesCollectionAE.cpp.obj TypesCollectionAE.hpp (324 ms)
TlvFactory.cpp.obj TlvObjectBase.hpp (321 ms)
PropertyCollection.cpp.obj PropertyCollection.hpp (296 ms)
TlvObjectBaseAO.cpp.obj TlvObjectBaseAO.hpp TlvObjectBase.hpp (295 ms)
...
2938 ms: ../Source/AliveLibAO/Abe.hpp (included 18 times, avg 163 ms), included via:
GameEnderController.cpp (365 ms)
MusicController.cpp (346 ms)
BeeNest.cpp (335 ms)
Meat.cpp (329 ms)
AbilityRing.cpp (267 ms)
MotionDetector.cpp (248 ms)
...
2844 ms: ../Source/AliveLibAE/AnimationBase.hpp (included 21 times, avg 135 ms), included via:
ZapLine.cpp ZapLine.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp (372 ms)
OrbWhirlWind.cpp OrbWhirlWind.hpp OrbWhirlWindParticle.hpp Animation.hpp (303 ms)
Shrykull.cpp Shrykull.hpp BaseAliveGameObject.hpp Animation.hpp (269 ms)
Font.cpp Font.hpp Animation.hpp (247 ms)
DeathGas.cpp Function.hpp Game.hpp Animation.hpp (238 ms)
GlukkonSwitch.cpp GlukkonSwitch.hpp BaseAnimatedWithPhysicsGameObject.hpp Animation.hpp (227 ms)
...
2681 ms: ../Source/AliveLibAE/Animation.hpp (included 27 times, avg 99 ms), included via:
ZapLine.cpp ZapLine.hpp BaseAnimatedWithPhysicsGameObject.hpp (373 ms)
OrbWhirlWind.cpp OrbWhirlWind.hpp OrbWhirlWindParticle.hpp (304 ms)
Shrykull.cpp Shrykull.hpp BaseAliveGameObject.hpp (270 ms)
Font.cpp Font.hpp (249 ms)
DeathGas.cpp Function.hpp Game.hpp (238 ms)
GlukkonSwitch.cpp GlukkonSwitch.hpp BaseAnimatedWithPhysicsGameObject.hpp (228 ms)
...
2638 ms: ../Source/Tools/relive_api/TlvObjectBase.hpp (included 10 times, avg 263 ms), included via:
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp (463 ms)
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp (414 ms)
TlvObjectBase.cpp.obj (364 ms)
TlvFactory.cpp.obj (359 ms)
TlvObjectBaseAO.cpp.obj TlvObjectBaseAO.hpp (349 ms)
TlvObjectBaseAE.cpp.obj TlvObjectBaseAE.hpp (303 ms)
...
2423 ms: ../Source/AliveLibAE/../AliveLibAE/Path.hpp (included 12 times, avg 201 ms), included via:
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp TypesCollectionBase.hpp (305 ms)
relive_api.cpp.obj (275 ms)
relive_api_test.cpp.obj AOTlvs.hpp TlvObjectBaseAO.hpp TlvObjectBase.hpp TypesCollectionBase.hpp (240 ms)
TlvFactory.cpp.obj TlvObjectBase.hpp TypesCollectionBase.hpp (216 ms)
JsonDocument.cpp.obj TlvObjectBase.hpp TypesCollectionBase.hpp (190 ms)
TypesCollectionAE.cpp.obj TypesCollectionAE.hpp TypesCollectionBase.hpp (186 ms)
...
1783 ms: ../Source/AliveLibCommon/Function.hpp (included 49 times, avg 36 ms), included via:
Psx.cpp (273 ms)
Paramite.cpp (259 ms)
BackgroundMusic.cpp (259 ms)
DeathGas.cpp (245 ms)
RollingBall.cpp (217 ms)
InvisibleSwitch.cpp (81 ms)
...
done in 0.0s.
The following is a compilation time build analysis done via ClangBuildAnalyzer for the
AliveExe
,AliveExeAE
,AliveExeAO
targets and dependencies:There are some opportunities to speed up compilation here. For example we could implement our own
add_pointer
as the standard version does some extra work:TypesCollectionAE.cpp
andTypesCollectionAO.cpp
are also thicc