Chatterino / chatterino2

Chat client for https://twitch.tv
MIT License
2.06k stars 449 forks source link

Check on compile times #3452

Open Mm2PL opened 2 years ago

Mm2PL commented 2 years ago

Checklist

Describe your issue

Guys, we've got an issue in the form of compile times. It takes ~7 minutes for CI (which has decent computing power) to compile Chatterino. While I know that C++ itself has long compile times, it probably is possible to shorten them at least a little.

IMO this issue isn't really a bug neither is it an enhancement, it's a problem we have.

Screenshots

n/a

OS and Chatterino Version

Since a long time ago xd

karl-police commented 2 years ago

I compiled things and it only compiled the files that were modified, because of like, idk cache or it checked what changed or something.

With AppVeyor it would have taken longer, because it compiles all the files again.

Mm2PL commented 2 years ago

With AppVeyor it would have taken longer, because it compiles all the files again.

Yes. The compile times I'm talking about in this issue are compiling everything from scratch, exactly like AppVeyor. Incremental builds are a lot faster.

karl-police commented 2 years ago

With AppVeyor it would have taken longer, because it compiles all the files again.

Yes. The compile times I'm talking about in this issue are compiling everything from scratch, exactly like AppVeyor. Incremental builds are a lot faster.

I'm compiling a Release version from a branch from scratch now on AppVeyor to see how long it takes there.

karl-police commented 2 years ago

With AppVeyor it would have taken longer, because it compiles all the files again.

Yes. The compile times I'm talking about in this issue are compiling everything from scratch, exactly like AppVeyor. Incremental builds are a lot faster.

I'm compiling a Release version from a branch from scratch now on AppVeyor to see how long it takes there.

So a later build took 6 min 23 sec until it said "Build success", and another later build took 6 min 46 sec

The one I just made took 7 min 28 sec

karl-police commented 2 years ago

With AppVeyor it would have taken longer, because it compiles all the files again.

Yes. The compile times I'm talking about in this issue are compiling everything from scratch, exactly like AppVeyor. Incremental builds are a lot faster.

I'm compiling a Release version from a branch from scratch now on AppVeyor to see how long it takes there.

So a later build took 6 min 23 sec until it said "Build success", and another later build took 6 min 46 sec

The one I just made took 7 min 28 sec

I ran right another one after the last one finished and it took 7 min 38 sec

though I think the ones from Visual Studio, also without the cache, build quicker, though I could be wrong. Not sure about the hardware on AppVeyor.

karl-police commented 2 years ago

Reference in n

and another one I just ran took 7 min 36 sec

jupjohn commented 2 years ago

I'm sure there's a bit of work that could be done on c2's side to improve compile times, but nothing's gonna get you around the specs of a GH runner unless you use a self-hosted one. Might be worth looking into.

pajlada commented 1 year ago

From the duplicate issue:

Clangs --ftime-trace is useful for figuring out ways to reduce compile time

Otherwise upgrading the build infra to more cores

Nerixyz commented 1 year ago

Clangs --ftime-trace is useful for figuring out ways to reduce compile time

On Windows for MSVC, you can use microsoft/vcperf and the Windows Performance Analyzer (about 700 MiB).

Building from CLI

To compile, you need to have [`nuget`](https://nuget.org/downloads) installed. Open a terminal with Visual Studio environment variables, and run the following commands: ```cmd git clone https://github.com/microsoft/vcperf.git cd vcperf nuget restore msbuild /property:Configuration=Release ``` The resulting `vcperf.exe` will be in `out/Release/x64`.

Mm2PL commented 1 year ago

I've done a -ftime-trace analysis with ClangBuildAnalyzer with a debug build and release build. The numbers are a little different, probably because of linux caching the files in ram. Also of note I am on Linux, so possibly expensive windows stuffs aren't included.

I've taken care to disable ccache:

Patch to disable ccache ```diff diff --git a/CMakeLists.txt b/CMakeLists.txt index db82c9ed..d9368b58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,13 +41,13 @@ else() set(MAJOR_QT_VERSION "5") endif() -find_program(CCACHE_PROGRAM ccache) -find_program(SCCACHE_PROGRAM sccache) -if (SCCACHE_PROGRAM) - set(_compiler_launcher ${SCCACHE_PROGRAM}) -elseif (CCACHE_PROGRAM) - set(_compiler_launcher ${CCACHE_PROGRAM}) -endif () +#find_program(CCACHE_PROGRAM ccache) +#find_program(SCCACHE_PROGRAM sccache) +#if (SCCACHE_PROGRAM) +# set(_compiler_launcher ${SCCACHE_PROGRAM}) +#elseif (CCACHE_PROGRAM) +# set(_compiler_launcher ${CCACHE_PROGRAM}) +#endif () # Alternate linker code taken from heavyai/heavydb ```
Results from Debug build The CMake build command was: ``` cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_PRECOMPILED_HEADERS=OFF -DBUILD_WITH_QTKEYCHAIN=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=YES -DCHATTERINO_PLUGINS=YES -DSANITIZE_MEMORY=YES -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=-ftime-trace -DCMAKE_CXX_FLAGS=-ftime-trace .. ``` ``` **** Time summary: Compilation (538 times): Parsing (frontend): 1835.0 s Codegen & opts (backend): 218.1 s **** Files that took longest to parse (compiler frontend): 21379 ms: src//CMakeFiles/chatterino-lib.dir/Application.cpp.o 19860 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchChannel.cpp.o 19047 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubManager.cpp.o 19031 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchIrcServer.cpp.o 18094 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Window.cpp.o 17820 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvLiveUpdates.cpp.o 17797 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEventAPI.cpp.o 15190 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubClient.cpp.o 14445 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/eventapi/Client.cpp.o 13905 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/CommandController.cpp.o 11770 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/ChannelView.cpp.o 11235 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPage.cpp.o 11217 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/Split.cpp.o 10957 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EmotePopup.cpp.o 10831 ms: src//CMakeFiles/chatterino-lib.dir/singletons/WindowManager.cpp.o 10808 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/UserInfoPopup.cpp.o 10772 ms: src//CMakeFiles/chatterino-lib.dir/controllers/notifications/NotificationController.cpp.o 10553 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchMessageBuilder.cpp.o 10327 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/ReplyThreadPopup.cpp.o 10300 ms: src//CMakeFiles/chatterino-lib.dir/chatterino-lib_autogen/mocs_compilation.cpp.o 10198 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccount.cpp.o 10030 ms: src//CMakeFiles/chatterino-lib.dir/controllers/highlights/HighlightController.cpp.o 9997 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/switcher/NewPopupItem.cpp.o 9776 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/SearchPopup.cpp.o 9699 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Notebook.cpp.o 9676 ms: src//CMakeFiles/chatterino-lib.dir/controllers/sound/SoundController.cpp.o 9676 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEmotes.cpp.o 9668 ms: src//CMakeFiles/chatterino-lib.dir/util/StreamLink.cpp.o 9587 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/ModerationPage.cpp.o 9505 ms: src//CMakeFiles/chatterino-lib.dir/providers/ffz/FfzEmotes.cpp.o 9504 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitContainer.cpp.o 9378 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitHeader.cpp.o 9373 ms: src//CMakeFiles/chatterino-lib.dir/common/CompletionModel.cpp.o 9367 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Toasts.cpp.o 9312 ms: src//CMakeFiles/chatterino-lib.dir/messages/MessageBuilder.cpp.o 9307 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccountManager.cpp.o 9255 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvEmotes.cpp.o 9237 ms: src//CMakeFiles/chatterino-lib.dir/controllers/plugins/PluginController.cpp.o 9208 ms: src//CMakeFiles/chatterino-lib.dir/util/StreamerMode.cpp.o 9183 ms: src//CMakeFiles/chatterino-lib.dir/providers/RecentMessagesApi.cpp.o 9149 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/FiltersPage.cpp.o 9129 ms: src//CMakeFiles/chatterino-lib.dir/controllers/filters/lang/Filter.cpp.o 9106 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/switcher/QuickSwitcherPopup.cpp.o 9049 ms: src//CMakeFiles/chatterino-lib.dir/widgets/BaseWindow.cpp.o 9038 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/SettingsDialog.cpp.o 9034 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/LoginDialog.cpp.o 9026 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/builtin/twitch/Shoutout.cpp.o 8985 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/IrcMessageHandler.cpp.o 8970 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/builtin/twitch/ShieldMode.cpp.o 8932 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/IgnoresPage.cpp.o **** Files that took longest to codegen (compiler backend): 13579 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubManager.cpp.o 11877 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvLiveUpdates.cpp.o 11598 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEventAPI.cpp.o 6349 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/CommandController.cpp.o 6126 ms: src//CMakeFiles/chatterino-lib.dir/Application.cpp.o 5213 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubClient.cpp.o 5159 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Settings.cpp.o 4715 ms: src//CMakeFiles/chatterino-lib.dir/controllers/sound/SoundController.cpp.o 4694 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchChannel.cpp.o 4652 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/ChannelView.cpp.o 4079 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/eventapi/Client.cpp.o 3835 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/api/Helix.cpp.o 3152 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Window.cpp.o 2653 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/UserInfoPopup.cpp.o 2492 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPage.cpp.o 2398 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/HighlightingPage.cpp.o 2352 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchMessageBuilder.cpp.o 2285 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccountManager.cpp.o 2076 ms: src//CMakeFiles/chatterino-lib.dir/singletons/WindowManager.cpp.o 2027 ms: src//CMakeFiles/chatterino-lib.dir/controllers/hotkeys/HotkeyController.cpp.o 2011 ms: src//CMakeFiles/chatterino-lib.dir/controllers/highlights/HighlightController.cpp.o 2007 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchIrcServer.cpp.o 1965 ms: src//CMakeFiles/chatterino-lib.dir/controllers/notifications/NotificationController.cpp.o 1956 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/ModerationPage.cpp.o 1938 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/ReplyThreadPopup.cpp.o 1925 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/Split.cpp.o 1839 ms: src//CMakeFiles/chatterino-lib.dir/providers/emoji/Emojis.cpp.o 1802 ms: src//CMakeFiles/chatterino-lib.dir/providers/irc/Irc2.cpp.o 1752 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EmotePopup.cpp.o 1596 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Notebook.cpp.o 1446 ms: src//CMakeFiles/chatterino-lib.dir/common/Channel.cpp.o 1398 ms: src//CMakeFiles/chatterino-lib.dir/controllers/accounts/AccountController.cpp.o 1367 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitContainer.cpp.o 1348 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/SearchPopup.cpp.o 1319 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/IgnoresPage.cpp.o 1317 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPageView.cpp.o 1306 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/NotificationPage.cpp.o 1293 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitHeader.cpp.o 1280 ms: src//CMakeFiles/chatterino-lib.dir/chatterino-lib_autogen/mocs_compilation.cpp.o 1276 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccount.cpp.o 1268 ms: src//CMakeFiles/chatterino-lib.dir/messages/Image.cpp.o 1261 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/SelectChannelDialog.cpp.o 1259 ms: src//CMakeFiles/chatterino-lib.dir/messages/MessageElement.cpp.o 1234 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/IrcMessageHandler.cpp.o 1205 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EditHotkeyDialog.cpp.o 1199 ms: src//CMakeFiles/chatterino-lib.dir/widgets/BaseWindow.cpp.o 1180 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchBadges.cpp.o 1179 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/FiltersPage.cpp.o 1169 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Fonts.cpp.o 1148 ms: src//CMakeFiles/chatterino-lib.dir/controllers/accounts/AccountModel.cpp.o **** Templates that took longest to instantiate: 42090 ms: std::vformat_to> (245 times, avg 171 ms) 42018 ms: std::__format::__do_vformat_to, char... (242 times, avg 173 ms) 37704 ms: std::vformat_to> (243 times, avg 155 ms) 37631 ms: std::__format::__do_vformat_to, w... (242 times, avg 155 ms) 34642 ms: std::__format::_Formatting_scanner, ... (242 times, avg 143 ms) 30608 ms: std::__format::_Formatting_scanner, ... (242 times, avg 126 ms) 30391 ms: std::__format::_Formatting_scanner>::hh_mm_ss (484 times, avg 20 ms) 7884 ms: std::formatter::format> (242 times, avg 32 ms) 7826 ms: std::__format::__formatter_int::format (261 times, avg 26 ms) 6626 ms: std::__format::_Iter_sink>::_I... (242 times, avg 27 ms) 6584 ms: std::__format::_Iter_sink>::_M... (242 times, avg 27 ms) 6575 ms: std::__format::_Iter_sink::format::format (261 times, avg 23 ms) 6037 ms: std::__format::__formatter_int::_M_parse (242 times, avg 24 ms) 5868 ms: std::__format::__formatter_int::_M_do_parse (242 times, avg 24 ms) 5603 ms: std::__format::__formatter_int::format (258 times, avg 18 ms) 4802 ms: boost::asio::basic_stream_socket::basic_stream... (9 times, avg 533 ms) 4797 ms: boost::asio::basic_socket::basic_socket::get_connection (4 times, avg 1195 ms) 4662 ms: std::unique_ptr (242 times, avg 19 ms) 4651 ms: std::__format::__formatter_int::_M_format_int::get_connection (2 times, avg 2127 ms) 4221 ms: std::__format::_Sink_iter::operator= (484 times, avg 8 ms) 4181 ms: std::__format::_Spec::_M_parse_width (242 times, avg 17 ms) 4165 ms: std::__format::_Sink::_M_write (484 times, avg 8 ms) 4093 ms: std::__format::_Sink_iter::operator= (483 times, avg 8 ms) 4043 ms: std::__format::_Sink::_M_write (483 times, avg 8 ms) 4037 ms: std::__format::_Spec::_S_parse_width_or_precision (242 times, avg 16 ms) 4001 ms: std::__format::_Formatting_scanner, ... (242 times, avg 16 ms) 3947 ms: std::__format::__formatter_int::format, char> (242 times, avg 16 ms) 3878 ms: std::__format::__write, wchar_t> (242 times, avg 16 ms) 3824 ms: std::_Hashtable, std::allocator (488 times, avg 163 ms) 79649 ms: std::__format::__do_vformat_to<$> (484 times, avg 164 ms) 65033 ms: std::__format::_Formatting_scanner<$>::_Formatting_scanner (484 times, avg 134 ms) 56964 ms: std::__format::_Formatting_scanner<$>::_M_format_arg (484 times, avg 117 ms) 50825 ms: std::__and_<$> (37011 times, avg 1 ms) 45639 ms: qIsRelocatable<$> (19319 times, avg 2 ms) 42572 ms: std::formatter<$>::format<$> (6068 times, avg 7 ms) 41440 ms: std::is_trivially_destructible<$> (19856 times, avg 2 ms) 38713 ms: std::__or_<$> (32179 times, avg 1 ms) 30274 ms: std::unique_ptr<$> (1657 times, avg 18 ms) 25992 ms: std::__uniq_ptr_data<$> (1657 times, avg 15 ms) 25714 ms: std::__uniq_ptr_impl<$> (1657 times, avg 15 ms) 24795 ms: std::reverse_iterator<$> (1772 times, avg 13 ms) 24370 ms: std::__format::__formatter_int<$>::format<$> (3872 times, avg 6 ms) 19191 ms: qIsTrivial<$> (19227 times, avg 0 ms) 18185 ms: qRegisterNormalizedMetaType<$> (3399 times, avg 5 ms) 17949 ms: std::is_scalar<$> (17136 times, avg 1 ms) 17808 ms: std::is_trivial<$> (19206 times, avg 0 ms) 17438 ms: qRegisterMetaType<$> (3173 times, avg 5 ms) 17243 ms: std::vector<$> (5295 times, avg 3 ms) 16012 ms: std::__format::__formatter_fp<$>::format<$> (1452 times, avg 11 ms) 15737 ms: std::make_shared<$> (786 times, avg 20 ms) 15493 ms: std::shared_ptr<$>::shared_ptr<$> (884 times, avg 17 ms) 15408 ms: std::__shared_ptr<$>::__shared_ptr<$> (891 times, avg 17 ms) 14600 ms: std::__shared_count<$>::__shared_count<$> (886 times, avg 16 ms) 14251 ms: std::common_reference<$> (13471 times, avg 1 ms) 13593 ms: std::visit_format_arg<$> (968 times, avg 14 ms) 13411 ms: std::tuple<$> (1948 times, avg 6 ms) 13352 ms: std::basic_format_arg<$>::_M_visit<$> (968 times, avg 13 ms) 13202 ms: std::__format::_Iter_sink<$>::_Iter_sink (484 times, avg 27 ms) 13118 ms: std::__format::_Iter_sink<$>::_M_overflow (484 times, avg 27 ms) 12945 ms: boost::asio::async_initiate<$> (109 times, avg 118 ms) 12898 ms: boost::asio::detail::completion_handler_async_result<$>::initiate<$> (109 times, avg 118 ms) 12751 ms: std::vector<$>::emplace_back<$> (792 times, avg 16 ms) 12616 ms: std::_Hashtable<$> (1270 times, avg 9 ms) 12289 ms: std::is_move_constructible<$> (11575 times, avg 1 ms) 10860 ms: std::unordered_map<$> (666 times, avg 16 ms) 10112 ms: std::function<$>::function<$> (1175 times, avg 8 ms) 10073 ms: std::_Sp_counted_ptr_inplace<$>::_Sp_counted_ptr_inplace<$> (786 times, avg 12 ms) 9331 ms: std::__to_chars_i<$> (2943 times, avg 3 ms) 9068 ms: std::shared_ptr<$> (2383 times, avg 3 ms) 9005 ms: pajlada::Signals::Signal<$> (1829 times, avg 4 ms) 8678 ms: boost::mpl::apply2<$> (3089 times, avg 2 ms) 8596 ms: std::vector<$>::_M_realloc_insert<$> (958 times, avg 8 ms) 8491 ms: std::_Vector_base<$> (5029 times, avg 1 ms) 8379 ms: boost::asio::ssl::detail::async_io<$> (52 times, avg 161 ms) 8208 ms: std::__format::_Sink<$>::_M_write (967 times, avg 8 ms) 8160 ms: QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl<$> (848 times, avg 9 ms) 8000 ms: std::__format::_Formatting_scanner<$>::_M_on_chars (484 times, avg 16 ms) 7841 ms: std::__format::__formatter_int<$>::_M_parse<$> (1033 times, avg 7 ms) **** Functions that took longest to compile: 238 ms: __cxx_global_var_init.12 (:/src/controllers/hotkeys/Hotkey.cpp) 211 ms: __cxx_global_var_init.12 (:/src/widgets/dialogs/EditHotkeyDialog.cpp) 182 ms: __cxx_global_var_init.10 (:/src/controllers/hotkeys/HotkeyHelpers.cpp) 176 ms: chatterino::GeneralPage::initLayout(chatterino::GeneralPageView&) (:/src/widgets/settingspages/GeneralPage.cpp) 172 ms: chatterino::Settings::Settings(QString const&) (:/src/singletons/Settings.cpp) 148 ms: drflac__decode_samples_with_residual__rice__scalar(drflac_bs*, unsig... (:/src/controllers/sound/SoundController.cpp) 117 ms: chatterino::HotkeyController::addDefaults(std::set::write_frame() (:/src/providers/twitch/PubSubClient.cpp) 33 ms: chatterino::AboutPage::AboutPage() (:/src/widgets/settingspages/AboutPage.cpp) 32 ms: chatterino::SignalVectorModel::dropMimeData(QMimeData const... (:/src/controllers/pings/MutedChannelModel.cpp) 32 ms: rapidjson::GenericValue, rapidjson::MemoryPool... (:/src/controllers/ignores/IgnoreController.cpp) 31 ms: drflac_read_pcm_frames_f32 (:/src/controllers/sound/SoundController.cpp) 31 ms: chatterino::Notebook::performLayout(bool) (:/src/widgets/Notebook.cpp) 31 ms: drflac_read_pcm_frames_s16 (:/src/controllers/sound/SoundController.cpp) 30 ms: std::__allocated_ptr >::_M_addr() (:/src/common/ChannelChatters.cpp) 27 ms: QColor::CT::CT(unsigned short, unsigned short, unsigned short, unsig... (:/src/common/ChannelChatters.cpp) 27 ms: chatterino::SignalVectorModel >... (:/src/controllers/accounts/AccountModel.cpp) 26 ms: chatterino::ChannelView::handleLinkClick(QMouseEvent*, chatterino::L... (:/src/widgets/helper/ChannelView.cpp) 26 ms: drflac__read_next_flac_frame_header(drflac_bs*, unsigned char, drfla... (:/src/controllers/sound/SoundController.cpp) 25 ms: chatterino::ExternalToolsPage::ExternalToolsPage() (:/src/widgets/settingspages/ExternalToolsPage.cpp) 25 ms: chatterino::HighlightingPage::HighlightingPage() (:/src/widgets/settingspages/HighlightingPage.cpp) 25 ms: __cxx_global_var_init.2 (:/src/messages/MessageBuilder.cpp) 25 ms: chatterino::commands::toggleShieldMode(chatterino::CommandContext co... (:/src/controllers/commands/builtin/twitch/ShieldMode.cpp) 25 ms: chatterino::upload(QMimeData const*, std::shared_ptr, rapidjson::UTF8... (:/src/providers/emoji/Emojis.cpp) 24 ms: __gnu_cxx::__normal_iterator*, ... (:/src/controllers/accounts/AccountModel.cpp) 24 ms: boost::asio::detail::reactive_socket_send_op, std::a... (:/src/BaseSettings.cpp) 24 ms: chatterino::SignalVectorModel::rowCount(QModelIndex const&)... (:/src/controllers/pings/MutedChannelModel.cpp) 24 ms: std::_Sp_ebo_helper<0, std::default_delete::_M_manager(std::_Any_data&, s... (800 times, avg 1 ms) 1069 ms: std::vector<$>::~vector() (700 times, avg 1 ms) 1014 ms: std::_Function_handler<$>::_M_manager(std::_Any_data&, std::_Any_dat... (793 times, avg 1 ms) 973 ms: std::_Vector_base<$>::~_Vector_base() (698 times, avg 1 ms) 946 ms: std::__new_allocator<$>::allocate(unsigned long, void const*) (1107 times, avg 0 ms) 712 ms: std::vector<$>::_M_check_len(unsigned long, char const*) const (514 times, avg 1 ms) 705 ms: std::vector<$>::_S_max_size(std::allocator<$> const&) (582 times, avg 1 ms) 680 ms: std::vector<$>::end() (561 times, avg 1 ms) 638 ms: std::__shared_ptr<$>::~__shared_ptr() (844 times, avg 0 ms) 627 ms: std::shared_ptr<$>::~shared_ptr() (822 times, avg 0 ms) 596 ms: std::vector<$>::begin() (555 times, avg 1 ms) 566 ms: std::_Tuple_impl<$>::_M_head(std::_Tuple_impl<$>&) (664 times, avg 0 ms) 556 ms: std::_Vector_base<$>::_M_allocate(unsigned long) (584 times, avg 0 ms) 538 ms: std::tuple_element<$>::type& std::get<$>(std::tuple<$>&) (674 times, avg 0 ms) 511 ms: std::vector<$>::back() (417 times, avg 1 ms) 500 ms: __gnu_cxx::__normal_iterator<$>::base() const (725 times, avg 0 ms) 499 ms: std::_Function_base::_Base_manager<$>::_M_destroy(std::_Any_data&, s... (667 times, avg 0 ms) 498 ms: std::_Vector_base<$>::_M_get_Tp_allocator() (659 times, avg 0 ms) 464 ms: std::_Vector_base<$>::_Vector_impl::~_Vector_impl() (572 times, avg 0 ms) 461 ms: std::_Sp_counted_ptr_inplace<$>::_M_dispose() (317 times, avg 1 ms) 456 ms: int QAtomicOps<$>::loadRelaxed<$>(std::atomic<$> const&) (239 times, avg 1 ms) 455 ms: std::_Sp_counted_ptr_inplace<$>::_M_destroy() (317 times, avg 1 ms) 444 ms: std::_Function_base::_Base_manager<$>::_M_get_pointer(std::_Any_data... (631 times, avg 0 ms) 439 ms: std::_Head_base<$>::_M_head(std::_Head_base<$>&) (565 times, avg 0 ms) 437 ms: std::__shared_ptr_access<$>::_M_get() const (567 times, avg 0 ms) 399 ms: std::__shared_ptr<$>::get() const (540 times, avg 0 ms) 391 ms: std::_Sp_counted_ptr_inplace<$>::~_Sp_counted_ptr_inplace() (288 times, avg 1 ms) 386 ms: std::_Sp_counted_ptr_inplace<$>::_Impl::_Impl(std::allocator<$>) (313 times, avg 1 ms) 352 ms: pajlada::Settings::Setting<$>::getValue() const (133 times, avg 2 ms) 346 ms: pajlada::Signals::Signal<$>::getActiveBodies() (123 times, avg 2 ms) 345 ms: std::vector<$>::size() const (512 times, avg 0 ms) 345 ms: std::unique_ptr<$>::~unique_ptr() (256 times, avg 1 ms) 334 ms: std::__allocated_ptr<$> std::__allocate_guarded<$>(std::allocator<$>&) (311 times, avg 1 ms) 329 ms: std::vector<$>::max_size() const (461 times, avg 0 ms) 326 ms: std::__shared_ptr<$>::__shared_ptr(std::__shared_ptr<$>&&) (402 times, avg 0 ms) 325 ms: std::_Vector_base<$>::_M_get_Tp_allocator() const (447 times, avg 0 ms) 323 ms: std::__allocated_ptr<$>::~__allocated_ptr() (317 times, avg 1 ms) 319 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (142 times, avg 2 ms) 313 ms: std::function<$>::~function() (429 times, avg 0 ms) 311 ms: std::function<$>::function(std::function<$> const&) (220 times, avg 1 ms) 308 ms: boost::asio::detail::completion_handler<$>::do_complete(void*, boost... (116 times, avg 2 ms) 304 ms: __gnu_cxx::__normal_iterator<$> std::__copy_move_a<$>(__gnu_cxx::__n... (205 times, avg 1 ms) 302 ms: QtPrivate::QFunctorSlotObject<$>::impl(int, QtPrivate::QSlotObjectBa... (228 times, avg 1 ms) 301 ms: pajlada::Signals::Signal<$>::connect(std::function<$>) (137 times, avg 2 ms) 301 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (127 times, avg 2 ms) 299 ms: std::_Vector_base<$>::_Vector_impl_data::_Vector_impl_data() (406 times, avg 0 ms) 295 ms: __gnu_cxx::__aligned_buffer<$>::_M_ptr() (385 times, avg 0 ms) 289 ms: std::_Sp_counted_base<$>::_M_release() (165 times, avg 1 ms) 287 ms: std::__shared_ptr<$>::__shared_ptr(std::__weak_ptr<$> const&, std::n... (331 times, avg 0 ms) 285 ms: std::vector<$>::_M_erase(__gnu_cxx::__normal_iterator<$>) (168 times, avg 1 ms) **** Expensive headers: 128910 ms: :/src/widgets/BaseWidget.hpp (included 124 times, avg 1039 ms), included via: SettingsDialog.cpp.o SettingsDialog.hpp BaseWindow.hpp (4247 ms) BaseWidget.cpp.o (4209 ms) LoginDialog.cpp.o LoginDialog.hpp (4135 ms) InputCompletionPopup.cpp.o InputCompletionPopup.hpp BasePopup.hpp BaseWindow.hpp (4050 ms) ColorPickerDialog.cpp.o ColorPickerDialog.hpp BasePopup.hpp BaseWindow.hpp (4045 ms) DraggablePopup.cpp.o DraggablePopup.hpp BaseWindow.hpp (4006 ms) NotebookButton.cpp.o NotebookButton.hpp Button.hpp (3995 ms) EffectLabel.cpp.o EffectLabel.hpp Button.hpp (3988 ms) AccountSwitchPopup.cpp.o AccountSwitchPopup.hpp BaseWindow.hpp (3945 ms) SplitHeader.cpp.o SplitHeader.hpp (3771 ms) DebugPopup.cpp.o DebugPopup.hpp BasePopup.hpp BaseWindow.hpp (3769 ms) ... 81396 ms: :/src/singletons/Settings.hpp (included 86 times, avg 946 ms), included via: Settings.cpp.o (5043 ms) Paths.cpp.o (3770 ms) Updates.cpp.o (2113 ms) LoggingChannel.cpp.o (2007 ms) ColorProvider.cpp.o (1920 ms) SoundController.cpp.o (1861 ms) FilterSet.cpp.o (1838 ms) NuulsUploader.cpp.o (1819 ms) SeventvEventAPI.cpp.o SeventvEventAPI.hpp BasicPubSubClient.hpp (1815 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp (1758 ms) Logging.cpp.o (1721 ms) ... 77696 ms: :/src/widgets/BaseWindow.hpp (included 51 times, avg 1523 ms), included via: SettingsDialog.cpp.o SettingsDialog.hpp (4354 ms) DraggablePopup.cpp.o DraggablePopup.hpp (4095 ms) InputCompletionPopup.cpp.o InputCompletionPopup.hpp BasePopup.hpp (4072 ms) ColorPickerDialog.cpp.o ColorPickerDialog.hpp BasePopup.hpp (4068 ms) AccountSwitchPopup.cpp.o AccountSwitchPopup.hpp (4033 ms) BaseWindow.cpp.o (3858 ms) Window.cpp.o Window.hpp (3800 ms) DebugPopup.cpp.o DebugPopup.hpp BasePopup.hpp (3794 ms) FramelessEmbedWindow.cpp.o FramelessEmbedWindow.hpp (3747 ms) SelectChannelDialog.cpp.o SelectChannelDialog.hpp (3732 ms) NotificationPopup.cpp.o NotificationPopup.hpp (3699 ms) ... 76441 ms: :/src/common/ChatterinoSetting.hpp (included 128 times, avg 597 ms), included via: Fonts.cpp.o Fonts.hpp (3247 ms) TwitchAccountManager.cpp.o TwitchAccountManager.hpp (2837 ms) NotificationController.cpp.o NotificationController.hpp (2834 ms) BaseSettings.cpp.o BaseSettings.hpp (2805 ms) ChatterinoSetting.cpp.o (2786 ms) Theme.cpp.o Theme.hpp (2786 ms) Label.cpp.o Label.hpp Fonts.hpp (2673 ms) Settings.cpp.o Settings.hpp BaseSettings.hpp (2582 ms) Paths.cpp.o Settings.hpp BaseSettings.hpp (1204 ms) BadgePredicate.cpp.o TwitchBadge.hpp MessageElement.hpp Fonts.hpp (1160 ms) MessageElement.cpp.o MessageElement.hpp Fonts.hpp (1067 ms) ... 70389 ms: :/src/debug/AssertInGuiThread.hpp (included 116 times, avg 606 ms), included via: ModerationActionModel.cpp.o ModerationActionModel.hpp SignalVectorModel.hpp SignalVector.hpp (3944 ms) CommandModel.cpp.o CommandModel.hpp SignalVectorModel.hpp SignalVector.hpp (3614 ms) FilterModel.cpp.o FilterModel.hpp SignalVectorModel.hpp SignalVector.hpp (3536 ms) UserHighlightModel.cpp.o UserHighlightModel.hpp SignalVectorModel.hpp SignalVector.hpp (3460 ms) Irc2.cpp.o Irc2.hpp SignalVector.hpp (3425 ms) IrcConnectionEditor.cpp.o IrcConnectionEditor.hpp Irc2.hpp SignalVector.hpp (3403 ms) NotificationModel.cpp.o NotificationModel.hpp SignalVectorModel.hpp SignalVector.hpp (3343 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp SignalVectorModel.hpp SignalVector.hpp (3281 ms) HotkeyController.cpp.o HotkeyController.hpp SignalVector.hpp (3257 ms) HighlightModel.cpp.o HighlightModel.hpp SignalVectorModel.hpp SignalVector.hpp (3256 ms) HighlightBlacklistModel.cpp.o HighlightBlacklistModel.hpp SignalVectorModel.hpp SignalVector.hpp (3217 ms) ... 69510 ms: :/src/common/Channel.hpp (included 113 times, avg 615 ms), included via: IrcChannel2.cpp.o IrcChannel2.hpp (3535 ms) Channel.cpp.o (3477 ms) Debugging.cpp.o (3405 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp (3379 ms) Split.cpp.o Split.hpp (1935 ms) TwitchChannel.cpp.o TwitchChannel.hpp (1916 ms) RecentMessagesApi.cpp.o (1903 ms) LuaUtilities.cpp.o (1856 ms) Paths.cpp.o Settings.hpp (1652 ms) Settings.cpp.o Settings.hpp (1559 ms) ChannelChatters.cpp.o (729 ms) ... 69382 ms: :/src/Application.hpp (included 91 times, avg 762 ms), included via: GeneralPageView.cpp.o GeneralPageView.hpp (3916 ms) Plugin.cpp.o Plugin.hpp (3806 ms) LuaAPI.cpp.o (3704 ms) RunGui.cpp.o (3654 ms) Application.cpp.o (3566 ms) IgnoreController.cpp.o (2477 ms) Shoutout.cpp.o (2407 ms) ShieldMode.cpp.o (2352 ms) ChatSettings.cpp.o (2118 ms) PluginController.cpp.o PluginController.hpp Plugin.hpp (2059 ms) ScrollbarHighlight.cpp.o (1963 ms) ... 62083 ms: /usr/include/qt/QtCore/QCoreApplication (included 57 times, avg 1089 ms), included via: ModerationActionModel.cpp.o ModerationActionModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3519 ms) CommandModel.cpp.o CommandModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3370 ms) FilterModel.cpp.o FilterModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3257 ms) Irc2.cpp.o Irc2.hpp SignalVector.hpp AssertInGuiThread.hpp (3187 ms) IrcConnectionEditor.cpp.o IrcConnectionEditor.hpp Irc2.hpp SignalVector.hpp AssertInGuiThread.hpp (3155 ms) NotificationModel.cpp.o NotificationModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3060 ms) UserHighlightModel.cpp.o UserHighlightModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3060 ms) HotkeyController.cpp.o HotkeyController.hpp SignalVector.hpp AssertInGuiThread.hpp (3008 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (3002 ms) HighlightModel.cpp.o HighlightModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (2997 ms) HotkeyModel.cpp.o HotkeyModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp (2994 ms) ... 61871 ms: :/src/singletons/NativeMessaging.hpp (included 92 times, avg 672 ms), included via: GeneralPageView.cpp.o GeneralPageView.hpp Application.hpp (3524 ms) Plugin.cpp.o Plugin.hpp Application.hpp (3457 ms) RunGui.cpp.o Application.hpp (3343 ms) LuaAPI.cpp.o Application.hpp (3326 ms) Application.cpp.o Application.hpp (3220 ms) BrowserExtension.cpp.o (3173 ms) NativeMessaging.cpp.o (2840 ms) IgnoreController.cpp.o Application.hpp (2120 ms) Shoutout.cpp.o Application.hpp (2020 ms) ShieldMode.cpp.o Application.hpp (1976 ms) ChatSettings.cpp.o Application.hpp (1825 ms) ... 61622 ms: :/src/widgets/settingspages/SettingsPage.hpp (included 17 times, avg 3624 ms), included via: ModerationPage.cpp.o ModerationPage.hpp (4986 ms) CommandPage.cpp.o CommandPage.hpp (4831 ms) HighlightingPage.cpp.o HighlightingPage.hpp (4759 ms) AccountsPage.cpp.o AccountsPage.hpp (4737 ms) KeyboardSettingsPage.cpp.o KeyboardSettingsPage.hpp (4710 ms) SettingsPage.cpp.o (4700 ms) FiltersPage.cpp.o FiltersPage.hpp (4592 ms) IgnoresPage.cpp.o IgnoresPage.hpp (4543 ms) NotificationPage.cpp.o NotificationPage.hpp (4477 ms) ExternalToolsPage.cpp.o ExternalToolsPage.hpp (4436 ms) GeneralPage.cpp.o GeneralPage.hpp (4388 ms) ... 59115 ms: :/src/controllers/accounts/AccountController.hpp (included 28 times, avg 2111 ms), included via: AccountController.cpp.o (5651 ms) Application.cpp.o (3001 ms) IgnoreController.cpp.o (2945 ms) TwitchAccount.cpp.o (2853 ms) ShieldMode.cpp.o (2836 ms) MessageBuilder.cpp.o (2833 ms) TwitchIrcServer.cpp.o (2666 ms) ChatSettings.cpp.o (2491 ms) Shoutout.cpp.o (2479 ms) CompletionModel.cpp.o (2475 ms) IgnorePhrase.cpp.o (2474 ms) ... 58606 ms: /usr/include/qt/QtCore/QThread (included 143 times, avg 409 ms), included via: GeneralPageView.cpp.o GeneralPageView.hpp Application.hpp NativeMessaging.hpp (1828 ms) IgnoreController.cpp.o Application.hpp NativeMessaging.hpp (1691 ms) Plugin.cpp.o Plugin.hpp Application.hpp NativeMessaging.hpp (1644 ms) LuaAPI.cpp.o Application.hpp NativeMessaging.hpp (1568 ms) PluginController.cpp.o PluginController.hpp Plugin.hpp Application.hpp NativeMessaging.hpp (1563 ms) Application.cpp.o Application.hpp NativeMessaging.hpp (1555 ms) ShieldMode.cpp.o Application.hpp NativeMessaging.hpp (1521 ms) ScrollbarHighlight.cpp.o Application.hpp NativeMessaging.hpp (1509 ms) BrowserExtension.cpp.o NativeMessaging.hpp (1484 ms) RunGui.cpp.o Application.hpp NativeMessaging.hpp (1470 ms) Shoutout.cpp.o Application.hpp NativeMessaging.hpp (1402 ms) ... 58356 ms: :/src/common/SignalVectorModel.hpp (included 28 times, avg 2084 ms), included via: ModerationActionModel.cpp.o ModerationActionModel.hpp (5050 ms) CommandModel.cpp.o CommandModel.hpp (4386 ms) NotificationModel.cpp.o NotificationModel.hpp (4363 ms) FilterModel.cpp.o FilterModel.hpp (4245 ms) UserHighlightModel.cpp.o UserHighlightModel.hpp (4168 ms) HighlightModel.cpp.o HighlightModel.hpp (4117 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp (4078 ms) HighlightBlacklistModel.cpp.o HighlightBlacklistModel.hpp (3994 ms) AccountModel.cpp.o AccountModel.hpp (3971 ms) HotkeyModel.cpp.o HotkeyModel.hpp (3912 ms) IgnoreModel.cpp.o IgnoreModel.hpp (3877 ms) ... 56989 ms: :/src/providers/twitch/TwitchAccountManager.hpp (included 29 times, avg 1965 ms), included via: TwitchAccountManager.cpp.o (6726 ms) TwitchIrcServer.cpp.o AccountController.hpp (2593 ms) IgnoreController.cpp.o AccountController.hpp (2570 ms) Application.cpp.o AccountController.hpp (2559 ms) ShieldMode.cpp.o AccountController.hpp (2516 ms) MessageBuilder.cpp.o AccountController.hpp (2456 ms) TwitchAccount.cpp.o AccountController.hpp (2403 ms) EmotePopup.cpp.o AccountController.hpp (2399 ms) UserInfoPopup.cpp.o AccountController.hpp (2289 ms) LoginDialog.cpp.o AccountController.hpp (2288 ms) AccountController.cpp.o AccountController.hpp (2283 ms) ... 54240 ms: /usr/include/qt/QtCore/QJsonObject (included 120 times, avg 452 ms), included via: BttvLiveUpdateMessages.cpp.o BttvLiveUpdateMessages.hpp (3847 ms) SplitContainer.cpp.o SplitContainer.hpp WindowDescriptors.hpp (3722 ms) BttvLiveUpdates.cpp.o BttvLiveUpdates.hpp BttvLiveUpdateMessages.hpp (3642 ms) WindowManager.cpp.o WindowManager.hpp SplitContainer.hpp WindowDescriptors.hpp (3452 ms) Args.cpp.o Args.hpp WindowDescriptors.hpp (3436 ms) WindowDescriptors.cpp.o WindowDescriptors.hpp (3330 ms) ChannelPoints.cpp.o ChannelPoints.hpp (2737 ms) ChatModeratorAction.cpp.o ChatModeratorAction.hpp (2347 ms) main.cpp.o Args.hpp WindowDescriptors.hpp (1983 ms) Dispatch.cpp.o Dispatch.hpp Subscription.hpp QHash (1738 ms) Subscription.cpp.o Subscription.hpp QHash (1523 ms) ... 41773 ms: :/src/messages/LimitedQueue.hpp (included 114 times, avg 366 ms), included via: Scrollbar.cpp.o Scrollbar.hpp (1721 ms) ChannelView.cpp.o ChannelView.hpp (1718 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp Channel.hpp (575 ms) ColorProvider.cpp.o Settings.hpp Channel.hpp (531 ms) IrcChannel2.cpp.o IrcChannel2.hpp Channel.hpp (519 ms) Split.cpp.o Split.hpp Channel.hpp (516 ms) TwitchChannel.cpp.o TwitchChannel.hpp Channel.hpp (514 ms) Channel.cpp.o Channel.hpp (487 ms) LuaUtilities.cpp.o Channel.hpp (473 ms) BaseWindow.cpp.o Settings.hpp Channel.hpp (468 ms) SelectChannelFiltersDialog.cpp.o Settings.hpp Channel.hpp (464 ms) ... 36401 ms: :/src/common/Common.hpp (included 64 times, avg 568 ms), included via: MessageLayoutContainer.cpp.o MessageLayoutContainer.hpp (4541 ms) AbstractIrcServer.cpp.o AbstractIrcServer.hpp (4010 ms) NotebookTab.cpp.o NotebookTab.hpp (3871 ms) MessageLayout.cpp.o MessageLayout.hpp (3774 ms) IrcServer.cpp.o IrcServer.hpp AbstractIrcServer.hpp (3356 ms) Image.cpp.o Image.hpp (1878 ms) ImageSet.cpp.o Image.hpp (1762 ms) TooltipEntryWidget.cpp.o TooltipEntryWidget.hpp Image.hpp (1630 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp AbstractIrcServer.hpp (730 ms) SeventvEmotes.cpp.o Image.hpp (671 ms) LinkResolver.cpp.o Image.hpp (625 ms) ... 34650 ms: :/src/controllers/filters/lang/Types.hpp (included 17 times, avg 2038 ms), included via: Tokenizer.cpp.o Tokenizer.hpp (3439 ms) Types.cpp.o (3370 ms) UnaryOperation.cpp.o UnaryOperation.hpp Expression.hpp Tokenizer.hpp (3277 ms) Filter.cpp.o Filter.hpp Expression.hpp Tokenizer.hpp (3261 ms) FilterRecord.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp Tokenizer.hpp (3101 ms) Expression.cpp.o Expression.hpp Tokenizer.hpp (2973 ms) BinaryOperation.cpp.o BinaryOperation.hpp Expression.hpp Tokenizer.hpp (2830 ms) RegexExpression.cpp.o RegexExpression.hpp Expression.hpp Tokenizer.hpp (2812 ms) ListExpression.cpp.o ListExpression.hpp Expression.hpp Tokenizer.hpp (2789 ms) ValueExpression.cpp.o ValueExpression.hpp Expression.hpp Tokenizer.hpp (2770 ms) FilterParser.cpp.o FilterParser.hpp Expression.hpp Tokenizer.hpp (2748 ms) ... 32346 ms: :/src/messages/Image.hpp (included 25 times, avg 1293 ms), included via: Image.cpp.o (4921 ms) TooltipEntryWidget.cpp.o TooltipEntryWidget.hpp (4716 ms) ImageSet.cpp.o (2822 ms) LinkResolver.cpp.o (1766 ms) TwitchEmotes.cpp.o (1706 ms) BttvEmotes.cpp.o (1698 ms) SeventvEmotes.cpp.o (1684 ms) FfzEmotes.cpp.o (1656 ms) ChannelPointReward.cpp.o (1483 ms) InputCompletionItem.cpp.o (1214 ms) TwitchBadges.cpp.o (1206 ms) ... 32304 ms: :/src/controllers/filters/lang/Tokenizer.hpp (included 17 times, avg 1900 ms), included via: Tokenizer.cpp.o (3490 ms) UnaryOperation.cpp.o UnaryOperation.hpp Expression.hpp (3331 ms) Filter.cpp.o Filter.hpp Expression.hpp (3319 ms) FilterRecord.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp (3156 ms) Expression.cpp.o Expression.hpp (3067 ms) ListExpression.cpp.o ListExpression.hpp Expression.hpp (2890 ms) BinaryOperation.cpp.o BinaryOperation.hpp Expression.hpp (2876 ms) RegexExpression.cpp.o RegexExpression.hpp Expression.hpp (2867 ms) ValueExpression.cpp.o ValueExpression.hpp Expression.hpp (2822 ms) FilterParser.cpp.o FilterParser.hpp Expression.hpp (2802 ms) FilterSet.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp (1053 ms) ... 31336 ms: :/src/widgets/splits/Split.hpp (included 25 times, avg 1253 ms), included via: Split.cpp.o (5929 ms) SwitchSplitItem.cpp.o (2068 ms) QuickSwitcherPopup.cpp.o (1977 ms) NotebookButton.cpp.o (1954 ms) StreamLink.cpp.o (1849 ms) StreamView.cpp.o (1816 ms) NewPopupItem.cpp.o (1622 ms) WindowManager.cpp.o (1581 ms) StreamerMode.cpp.o (1578 ms) NewTabItem.cpp.o (1568 ms) SplitOverlay.cpp.o (1567 ms) ... 29712 ms: :/src/controllers/filters/lang/expressions/Expression.hpp (included 15 times, avg 1980 ms), included via: UnaryOperation.cpp.o UnaryOperation.hpp (3390 ms) Filter.cpp.o Filter.hpp (3385 ms) FilterRecord.cpp.o FilterRecord.hpp Filter.hpp (3214 ms) Expression.cpp.o (3123 ms) ListExpression.cpp.o ListExpression.hpp (3012 ms) BinaryOperation.cpp.o BinaryOperation.hpp (2925 ms) RegexExpression.cpp.o RegexExpression.hpp (2924 ms) ValueExpression.cpp.o ValueExpression.hpp (2876 ms) FilterParser.cpp.o FilterParser.hpp (2860 ms) FilterSet.cpp.o FilterRecord.hpp Filter.hpp (1120 ms) SelectChannelFiltersDialog.cpp.o FilterRecord.hpp Filter.hpp (379 ms) ... 29201 ms: :/src/BaseSettings.hpp (included 89 times, avg 328 ms), included via: BaseSettings.cpp.o (2832 ms) Settings.cpp.o Settings.hpp (2611 ms) Paths.cpp.o Settings.hpp (1241 ms) BaseWidget.cpp.o (827 ms) BaseWindow.cpp.o Settings.hpp (721 ms) Scrollbar.cpp.o Settings.hpp (715 ms) LoggingChannel.cpp.o Settings.hpp (646 ms) NotificationModel.cpp.o Settings.hpp (634 ms) AttachedWindow.cpp.o Settings.hpp (630 ms) SoundController.cpp.o Settings.hpp (621 ms) HotkeyController.cpp.o Settings.hpp (605 ms) ... 28201 ms: :/src/widgets/BasePopup.hpp (included 14 times, avg 2014 ms), included via: ColorPickerDialog.cpp.o ColorPickerDialog.hpp (4146 ms) InputCompletionPopup.cpp.o InputCompletionPopup.hpp (4123 ms) DebugPopup.cpp.o DebugPopup.hpp (3840 ms) BasePopup.cpp.o (3614 ms) EmotePopup.cpp.o EmotePopup.hpp (3495 ms) QuickSwitcherPopup.cpp.o QuickSwitcherPopup.hpp (3473 ms) QualityPopup.cpp.o QualityPopup.hpp (3236 ms) SearchPopup.cpp.o SearchPopup.hpp (2107 ms) AboutPage.cpp.o (119 ms) Split.cpp.o QualityPopup.hpp (10 ms) StreamLink.cpp.o QualityPopup.hpp (9 ms) ... 28064 ms: :/src/providers/bttv/BttvLiveUpdates.hpp (included 4 times, avg 7016 ms), included via: BttvLiveUpdates.cpp.o (10866 ms) TwitchIrcServer.cpp.o (5979 ms) TwitchChannel.cpp.o (5679 ms) Application.cpp.o (5539 ms) 27998 ms: /usr/include/qt/QtCore/QRegularExpression (included 77 times, avg 363 ms), included via: Twitch.cpp.o Twitch.hpp (3120 ms) TrimRegExpValidator.cpp.o TrimRegExpValidator.hpp (2933 ms) RegExpItemDelegate.cpp.o RegExpItemDelegate.hpp (2736 ms) RegexPredicate.cpp.o RegexPredicate.hpp (2179 ms) FuzzyConvert.cpp.o (1891 ms) MessageBuilder.cpp.o MessageBuilder.hpp (1522 ms) SharedMessageBuilder.cpp.o SharedMessageBuilder.hpp MessageBuilder.hpp (1414 ms) HighlightPhrase.cpp.o HighlightPhrase.hpp (1384 ms) IrcCommands.cpp.o MessageBuilder.hpp (1287 ms) IgnorePhrase.cpp.o IgnorePhrase.hpp (1275 ms) TwitchEmotes.cpp.o TwitchEmotes.hpp (1255 ms) ... 27364 ms: :/src/singletons/Fonts.hpp (included 42 times, avg 651 ms), included via: Fonts.cpp.o (4358 ms) Label.cpp.o Label.hpp (3568 ms) BadgePredicate.cpp.o TwitchBadge.hpp MessageElement.hpp (2196 ms) MessageElement.cpp.o MessageElement.hpp (1873 ms) TwitchBadge.cpp.o TwitchBadge.hpp MessageElement.hpp (1819 ms) SubtierPredicate.cpp.o TwitchBadge.hpp MessageElement.hpp (1813 ms) Message.cpp.o MessageElement.hpp (865 ms) IrcChannel2.cpp.o MessageElement.hpp (742 ms) UpdateDialog.cpp.o Label.hpp (734 ms) SearchPopup.cpp.o MessageElement.hpp (725 ms) NewPopupItem.cpp.o (707 ms) ... 26602 ms: /usr/include/qt/QtCore/QLoggingCategory (included 82 times, avg 324 ms), included via: NetworkConfigurationProvider.cpp.o NetworkConfigurationProvider.hpp QLogging.hpp (3590 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp QLogging.hpp (3434 ms) QLogging.cpp.o QLogging.hpp (2931 ms) SeventvEventAPI.cpp.o SeventvEventAPI.hpp BasicPubSubClient.hpp QLogging.hpp (2755 ms) Benchmark.cpp.o QLogging.hpp (1814 ms) PubSubManager.cpp.o PubSubManager.hpp PubSubWebsocket.hpp ChatterinoWebSocketppLogger.hpp QLogging.hpp (1676 ms) TwitchHelpers.cpp.o QLogging.hpp (1626 ms) Env.cpp.o QLogging.hpp (1502 ms) PubSubClient.cpp.o PubSubClient.hpp PubSubWebsocket.hpp ChatterinoWebSocketppLogger.hpp QLogging.hpp (1356 ms) SoundController.cpp.o QLogging.hpp (985 ms) BaseWidget.cpp.o QLogging.hpp (274 ms) ... 26545 ms: :/src/common/QLogging.hpp (included 81 times, avg 327 ms), included via: NetworkConfigurationProvider.cpp.o NetworkConfigurationProvider.hpp (3590 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp (3435 ms) QLogging.cpp.o (2936 ms) SeventvEventAPI.cpp.o SeventvEventAPI.hpp BasicPubSubClient.hpp (2756 ms) Benchmark.cpp.o (1815 ms) PubSubManager.cpp.o PubSubManager.hpp PubSubWebsocket.hpp ChatterinoWebSocketppLogger.hpp (1676 ms) TwitchHelpers.cpp.o (1626 ms) Env.cpp.o (1503 ms) PubSubClient.cpp.o PubSubClient.hpp PubSubWebsocket.hpp ChatterinoWebSocketppLogger.hpp (1357 ms) SoundController.cpp.o (985 ms) BaseWidget.cpp.o (275 ms) ... 25955 ms: :/src/providers/twitch/TwitchChannel.hpp (included 26 times, avg 998 ms), included via: TwitchChannel.cpp.o (5876 ms) LiveController.cpp.o (2294 ms) GeneralPage.cpp.o (2001 ms) Toasts.cpp.o (1968 ms) Filter.cpp.o (1869 ms) SeventvEmotes.cpp.o (1866 ms) RecentMessagesApi.cpp.o (1759 ms) BttvEmotes.cpp.o (1680 ms) FfzEmotes.cpp.o (1540 ms) CompletionModel.cpp.o (628 ms) ChatSettings.cpp.o (525 ms) ... 25686 ms: :/src/common/CompletionModel.hpp (included 113 times, avg 227 ms), included via: CompletionModel.cpp.o (3070 ms) Channel.cpp.o Channel.hpp (2880 ms) Debugging.cpp.o Channel.hpp (2852 ms) IrcChannel2.cpp.o IrcChannel2.hpp Channel.hpp (2848 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp Channel.hpp (2649 ms) Split.cpp.o Split.hpp Channel.hpp (1298 ms) TwitchChannel.cpp.o TwitchChannel.hpp Channel.hpp (1269 ms) RecentMessagesApi.cpp.o Channel.hpp (1266 ms) LuaUtilities.cpp.o Channel.hpp (1264 ms) Paths.cpp.o Settings.hpp Channel.hpp (1141 ms) Settings.cpp.o Settings.hpp Channel.hpp (1076 ms) ... 25394 ms: :/src/widgets/listview/GenericListItem.hpp (included 13 times, avg 1953 ms), included via: NewPopupItem.cpp.o NewPopupItem.hpp AbstractSwitcherItem.hpp (4104 ms) GenericListModel.cpp.o GenericListModel.hpp (3845 ms) InputCompletionItem.cpp.o InputCompletionItem.hpp (3793 ms) SwitchSplitItem.cpp.o SwitchSplitItem.hpp AbstractSwitcherItem.hpp (3441 ms) GenericListItem.cpp.o (3406 ms) QuickSwitcherModel.cpp.o QuickSwitcherModel.hpp GenericListModel.hpp (3208 ms) NewTabItem.cpp.o NewTabItem.hpp AbstractSwitcherItem.hpp (3109 ms) InputCompletionPopup.cpp.o InputCompletionPopup.hpp GenericListModel.hpp (171 ms) QuickSwitcherPopup.cpp.o QuickSwitcherPopup.hpp QuickSwitcherModel.hpp GenericListModel.hpp (146 ms) Window.cpp.o QuickSwitcherPopup.hpp QuickSwitcherModel.hpp GenericListModel.hpp (65 ms) GenericItemDelegate.cpp.o (50 ms) ... 24412 ms: /usr/include/qt/QtWidgets/QCheckBox (included 22 times, avg 1109 ms), included via: KeyboardSettingsPage.cpp.o KeyboardSettingsPage.hpp SettingsPage.hpp (2126 ms) CommandPage.cpp.o CommandPage.hpp SettingsPage.hpp (2102 ms) HighlightingPage.cpp.o HighlightingPage.hpp SettingsPage.hpp (2044 ms) FiltersPage.cpp.o FiltersPage.hpp SettingsPage.hpp (1956 ms) ExternalToolsPage.cpp.o ExternalToolsPage.hpp SettingsPage.hpp (1903 ms) NotificationPage.cpp.o NotificationPage.hpp SettingsPage.hpp (1893 ms) SettingsPage.cpp.o SettingsPage.hpp (1886 ms) IgnoresPage.cpp.o IgnoresPage.hpp SettingsPage.hpp (1866 ms) AccountsPage.cpp.o AccountsPage.hpp SettingsPage.hpp (1769 ms) ModerationPage.cpp.o ModerationPage.hpp SettingsPage.hpp (1730 ms) GeneralPage.cpp.o GeneralPage.hpp SettingsPage.hpp (1722 ms) ... 22911 ms: :/src/common/WindowDescriptors.hpp (included 51 times, avg 449 ms), included via: SplitContainer.cpp.o SplitContainer.hpp (3854 ms) WindowManager.cpp.o WindowManager.hpp SplitContainer.hpp (3618 ms) Args.cpp.o Args.hpp (3570 ms) WindowDescriptors.cpp.o (3453 ms) main.cpp.o Args.hpp (2053 ms) FramelessEmbedWindow.cpp.o Args.hpp (397 ms) Application.cpp.o Args.hpp (353 ms) TooltipWidget.cpp.o WindowManager.hpp SplitContainer.hpp (335 ms) Fonts.cpp.o WindowManager.hpp SplitContainer.hpp (320 ms) GeneralPageView.cpp.o GeneralPageView.hpp WindowManager.hpp SplitContainer.hpp (310 ms) RunGui.cpp.o Args.hpp (307 ms) ... 20956 ms: :/src/messages/MessageElement.hpp (included 24 times, avg 873 ms), included via: MessageElement.cpp.o (4075 ms) TwitchBadge.cpp.o TwitchBadge.hpp (3978 ms) BadgePredicate.cpp.o TwitchBadge.hpp (2276 ms) SubtierPredicate.cpp.o TwitchBadge.hpp (1884 ms) Message.cpp.o (958 ms) IrcChannel2.cpp.o (855 ms) SearchPopup.cpp.o (807 ms) IrcServer.cpp.o (781 ms) WindowManager.cpp.o (749 ms) Filter.cpp.o TwitchBadge.hpp (699 ms) MessageLayout.cpp.o (689 ms) ... 20813 ms: :/src/util/RapidjsonHelpers.hpp (included 103 times, avg 202 ms), included via: Command.cpp.o Command.hpp (2111 ms) HighlightPhrase.cpp.o HighlightPhrase.hpp (2080 ms) ChannelLog.cpp.o ChannelLog.hpp (1981 ms) HighlightBadge.cpp.o HighlightBadge.hpp (1951 ms) UserDataController.cpp.o UserDataController.hpp UserData.hpp (1926 ms) ModerationAction.cpp.o ModerationAction.hpp (1781 ms) RapidjsonHelpers.cpp.o (1760 ms) TwitchUser.cpp.o TwitchUser.hpp (1671 ms) IgnorePhrase.cpp.o IgnorePhrase.hpp (409 ms) Irc2.cpp.o (371 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp ChannelLog.hpp (361 ms) ... 20536 ms: :/src/util/RapidJsonSerializeQString.hpp (included 131 times, avg 156 ms), included via: Command.cpp.o Command.hpp RapidjsonHelpers.hpp (2108 ms) HighlightPhrase.cpp.o HighlightPhrase.hpp RapidjsonHelpers.hpp (2077 ms) ChannelLog.cpp.o ChannelLog.hpp RapidjsonHelpers.hpp (1979 ms) HighlightBadge.cpp.o HighlightBadge.hpp RapidjsonHelpers.hpp (1947 ms) UserDataController.cpp.o UserDataController.hpp UserData.hpp RapidjsonHelpers.hpp (1924 ms) ModerationAction.cpp.o ModerationAction.hpp RapidjsonHelpers.hpp (1778 ms) RapidjsonHelpers.cpp.o RapidjsonHelpers.hpp (1757 ms) TwitchUser.cpp.o TwitchUser.hpp RapidjsonHelpers.hpp (1669 ms) IgnorePhrase.cpp.o IgnorePhrase.hpp RapidjsonHelpers.hpp (400 ms) Irc2.cpp.o RapidjsonHelpers.hpp (369 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp ChannelLog.hpp RapidjsonHelpers.hpp (357 ms) ... 20524 ms: :/src/common/NetworkRequest.hpp (included 33 times, avg 621 ms), included via: NetworkRequest.cpp.o (3146 ms) IvrApi.cpp.o IvrApi.hpp (3133 ms) FfzEmotes.cpp.o (1782 ms) Updates.cpp.o (1334 ms) Helix.cpp.o Helix.hpp (1309 ms) SeventvEmotes.cpp.o (1288 ms) ChatterinoBadges.cpp.o (1282 ms) FfzBadges.cpp.o (1212 ms) BttvEmotes.cpp.o (1192 ms) SeventvBadges.cpp.o (1177 ms) TwitchUser.cpp.o Helix.hpp (1155 ms) ... 20427 ms: :/src/widgets/splits/SplitContainer.hpp (included 46 times, avg 444 ms), included via: SplitContainer.cpp.o (4495 ms) WindowManager.cpp.o WindowManager.hpp (4245 ms) GeneralPageView.cpp.o GeneralPageView.hpp WindowManager.hpp (751 ms) HighlightModel.cpp.o WindowManager.hpp (512 ms) Args.cpp.o WindowManager.hpp (499 ms) SearchPopup.cpp.o WindowManager.hpp (491 ms) TooltipWidget.cpp.o WindowManager.hpp (483 ms) Fonts.cpp.o WindowManager.hpp (448 ms) SettingsPage.cpp.o WindowManager.hpp (418 ms) GifTimer.cpp.o WindowManager.hpp (403 ms) NicknamesPage.cpp.o WindowManager.hpp (358 ms) ... 20002 ms: /usr/include/boost/variant.hpp (included 38 times, avg 526 ms), included via: LayoutHelper.cpp.o LayoutHelper.hpp (2235 ms) TwitchEmotes.cpp.o Image.hpp (925 ms) BttvEmotes.cpp.o Image.hpp (892 ms) Emotes.cpp.o Emotes.hpp Emojis.hpp (884 ms) MessageLayoutElement.cpp.o Image.hpp (850 ms) Image.cpp.o Image.hpp (824 ms) LinkResolver.cpp.o Image.hpp (807 ms) FfzEmotes.cpp.o Image.hpp (781 ms) InputCompletionItem.cpp.o Image.hpp (776 ms) Emojis.cpp.o Emojis.hpp (764 ms) ImageSet.cpp.o Image.hpp (756 ms) ... 18970 ms: :/src/widgets/helper/Button.hpp (included 26 times, avg 729 ms), included via: NotebookButton.cpp.o NotebookButton.hpp (4336 ms) EffectLabel.cpp.o EffectLabel.hpp (4287 ms) TitlebarButton.cpp.o TitlebarButton.hpp (4048 ms) Button.cpp.o (3772 ms) NotebookTab.cpp.o NotebookTab.hpp (517 ms) InitUpdateButton.cpp.o (307 ms) ReplyThreadPopup.cpp.o (197 ms) SettingsDialog.cpp.o (157 ms) DraggablePopup.cpp.o (150 ms) moc_Button.cpp (143 ms) SelectChannelDialog.cpp.o NotebookTab.hpp (127 ms) ... 18878 ms: :/src/singletons/Theme.hpp (included 41 times, avg 460 ms), included via: Theme.cpp.o (4271 ms) MessageColor.cpp.o (2721 ms) NotebookButton.cpp.o (1164 ms) ScrollbarHighlight.cpp.o (1042 ms) GenericListView.cpp.o (896 ms) ColorPickerDialog.cpp.o (877 ms) TitlebarButton.cpp.o (851 ms) DraggablePopup.cpp.o (846 ms) Button.cpp.o (778 ms) QuickSwitcherPopup.cpp.o (742 ms) SplitOverlay.cpp.o (721 ms) ... 18367 ms: :/src/widgets/Window.hpp (included 23 times, avg 798 ms), included via: Window.cpp.o (6162 ms) WindowDescriptors.cpp.o (2535 ms) QualityPopup.cpp.o (2092 ms) Args.cpp.o (2079 ms) NotificationController.cpp.o (1612 ms) FiltersPage.cpp.o (1422 ms) moc_Window.cpp (1354 ms) IrcMessageBuilder.cpp.o (966 ms) StreamerMode.cpp.o (30 ms) Application.cpp.o (22 ms) TwitchChannel.cpp.o (12 ms) ... 17992 ms: :/src/singletons/WindowManager.hpp (included 43 times, avg 418 ms), included via: WindowManager.cpp.o (4406 ms) GeneralPageView.cpp.o GeneralPageView.hpp (830 ms) HighlightModel.cpp.o (575 ms) Args.cpp.o (568 ms) TooltipWidget.cpp.o (544 ms) SearchPopup.cpp.o (525 ms) Fonts.cpp.o (487 ms) SettingsPage.cpp.o (483 ms) GifTimer.cpp.o (445 ms) NicknamesPage.cpp.o (414 ms) StreamerMode.cpp.o (413 ms) ... 17288 ms: :/src/providers/irc/AbstractIrcServer.hpp (included 33 times, avg 523 ms), included via: AbstractIrcServer.cpp.o (4436 ms) IrcServer.cpp.o IrcServer.hpp (3770 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp (1209 ms) IrcCommands.cpp.o IrcServer.hpp (708 ms) NewTabItem.cpp.o TwitchIrcServer.hpp (560 ms) Channel.cpp.o IrcServer.hpp (546 ms) NativeMessaging.cpp.o TwitchIrcServer.hpp (479 ms) IrcChannel2.cpp.o IrcServer.hpp (478 ms) Filter.cpp.o TwitchIrcServer.hpp (459 ms) Irc2.cpp.o IrcServer.hpp (407 ms) NewPopupItem.cpp.o TwitchIrcServer.hpp (406 ms) ... 16074 ms: :/src/providers/twitch/TwitchIrcServer.hpp (included 28 times, avg 574 ms), included via: TwitchIrcServer.cpp.o (5084 ms) NewTabItem.cpp.o (1233 ms) NativeMessaging.cpp.o (1179 ms) NewPopupItem.cpp.o (1065 ms) StreamerMode.cpp.o (866 ms) NotificationController.cpp.o (785 ms) LuaAPI.cpp.o (713 ms) FramelessEmbedWindow.cpp.o (701 ms) Window.cpp.o (574 ms) Filter.cpp.o (502 ms) CompletionModel.cpp.o (456 ms) ... 15323 ms: :/src/providers/twitch/PubSubManager.hpp (included 5 times, avg 3064 ms), included via: PubSubManager.cpp.o (9730 ms) Window.cpp.o (5188 ms) TwitchChannel.cpp.o (184 ms) Application.cpp.o (110 ms) TwitchIrcServer.cpp.o (108 ms) 14667 ms: /usr/include/c++/13.1.1/bits/unique_ptr.h (included 250 times, avg 58 ms), included via: ChannelPredicate.hpp MessagePredicate.hpp memory (707 ms) RecentMessagesApi.hpp ForwardDecl.hpp memory (691 ms) AuthorPredicate.hpp MessagePredicate.hpp memory (666 ms) BadgePredicate.hpp MessagePredicate.hpp memory (662 ms) InitUpdateButton.hpp memory (643 ms) SearchPopup.hpp ForwardDecl.hpp memory (638 ms) RegexPredicate.hpp MessagePredicate.hpp memory (604 ms) MessageThread.hpp signals2.hpp deconstruct.hpp shared_ptr.hpp shared_ptr.hpp shared_count.hpp sp_counted_impl.hpp memory (602 ms) SubstringPredicate.hpp MessagePredicate.hpp memory (596 ms) ChannelView.hpp LimitedQueue.hpp LimitedQueueSnapshot.hpp circular_buffer.hpp circular_buffer_fwd.hpp memory (573 ms) IrcMessageHandler.hpp LimitedQueueSnapshot.hpp circular_buffer.hpp circular_buffer_fwd.hpp memory (511 ms) ... 13199 ms: /usr/include/c++/13.1.1/bits/shared_ptr.h (included 250 times, avg 52 ms), included via: IrcConnection2.hpp ExponentialBackoff.hpp chrono (119 ms) Emotes.hpp Emojis.hpp ConcurrentMap.hpp QMutex qmutex.h chrono (119 ms) Channel.hpp CompletionModel.hpp QAbstractListModel qabstractitemmodel.h qvariant.h qhash.h chrono (106 ms) HotkeyModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp QCoreApplication qcoreapplication.h qobject.h chrono (104 ms) ModerationActionModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp QCoreApplication qcoreapplication.h qobject.h chrono (100 ms) SplitContainer.hpp WindowDescriptors.hpp QJsonObject qjsonobject.h qjsonvalue.h qcborvalue.h qcborcommon.h qdebug.h qtextstream.h qiodevice.h qobject.h chrono (97 ms) NotificationModel.hpp SignalVectorModel.hpp SignalVector.hpp AssertInGuiThread.hpp QCoreApplication qcoreapplication.h qobject.h chrono (91 ms) MessageLayoutContainer.hpp Common.hpp QWidget qwidget.h qobject.h chrono (88 ms) Emojis.hpp ConcurrentMap.hpp QMutex qmutex.h chrono (85 ms) LayoutHelper.hpp variant.hpp variant.hpp type_index.hpp stl_type_index.hpp hash.hpp memory (81 ms) TwitchIrcServer.hpp Channel.hpp CompletionModel.hpp QAbstractListModel qabstractitemmodel.h qvariant.h qhash.h chrono (80 ms) ... 12657 ms: :/src/providers/twitch/api/Helix.hpp (included 18 times, avg 703 ms), included via: Helix.cpp.o (3843 ms) TwitchUser.cpp.o (2135 ms) ChatSettings.cpp.o (706 ms) Shoutout.cpp.o (702 ms) ShieldMode.cpp.o (689 ms) LiveController.cpp.o (587 ms) TwitchAccountManager.cpp.o (586 ms) NotificationController.cpp.o (583 ms) TwitchMessageBuilder.cpp.o (468 ms) Toasts.cpp.o (425 ms) TwitchIrcServer.cpp.o (302 ms) ... done in 2.3s. ```
Results from Release build CMake command: ``` cmake -DCMAKE_BUILD_TYPE=Release -DUSE_PRECOMPILED_HEADERS=ON -DBUILD_WITH_QTKEYCHAIN=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=YES -DCHATTERINO_PLUGINS=YES -DSANITIZE_MEMORY=YES -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=-ftime-trace -DCMAKE_CXX_FLAGS=-ftime-trace .. ``` ```Analyzing build trace from 'thingy_file_release'... **** Time summary: Compilation (534 times): Parsing (frontend): 545.3 s Codegen & opts (backend): 557.1 s **** Files that took longest to parse (compiler frontend): 14919 ms: src//CMakeFiles/chatterino-lib.dir/Application.cpp.o 14316 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubManager.cpp.o 13887 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchIrcServer.cpp.o 13071 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchChannel.cpp.o 13043 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvLiveUpdates.cpp.o 11137 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEventAPI.cpp.o 9109 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/CommandController.cpp.o 9058 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubClient.cpp.o 8834 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/eventapi/Client.cpp.o 6307 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/UserInfoPopup.cpp.o 6285 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/Split.cpp.o 6112 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/ChannelView.cpp.o 5623 ms: src//CMakeFiles/chatterino-lib.dir/singletons/WindowManager.cpp.o 5309 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPage.cpp.o 5071 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchMessageBuilder.cpp.o 4723 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Window.cpp.o 4634 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EmotePopup.cpp.o 4346 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitHeader.cpp.o 4307 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitContainer.cpp.o 4286 ms: src//CMakeFiles/chatterino-lib-version.dir/common/Version.cpp.o 4219 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/api/Helix.cpp.o 4209 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/SearchPopup.cpp.o 4209 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/IrcMessageHandler.cpp.o 4133 ms: src//CMakeFiles/chatterino-lib.dir/controllers/notifications/NotificationController.cpp.o 4122 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Notebook.cpp.o 4107 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Toasts.cpp.o 4105 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Settings.cpp.o 4089 ms: src//CMakeFiles/chatterino-lib.dir/controllers/sound/SoundController.cpp.o 4022 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvEmotes.cpp.o 3988 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/ReplyThreadPopup.cpp.o 3965 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/FiltersPage.cpp.o 3933 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitInput.cpp.o 3931 ms: src//CMakeFiles/chatterino.dir/main.cpp.o 3908 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEmotes.cpp.o 3791 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/IgnoresPage.cpp.o 3750 ms: src//CMakeFiles/chatterino-lib.dir/common/CompletionModel.cpp.o 3749 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccount.cpp.o 3747 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccountManager.cpp.o 3738 ms: src//CMakeFiles/chatterino-lib.dir/controllers/highlights/HighlightController.cpp.o 3587 ms: src//CMakeFiles/chatterino-lib.dir/util/StreamerMode.cpp.o 3578 ms: src//CMakeFiles/chatterino-lib.dir/controllers/filters/lang/Filter.cpp.o 3541 ms: src//CMakeFiles/chatterino-lib.dir/chatterino-lib_autogen/mocs_compilation.cpp.o 3487 ms: src//CMakeFiles/chatterino-lib.dir/controllers/twitch/LiveController.cpp.o 3484 ms: src//CMakeFiles/chatterino-lib.dir/chatterino-lib_autogen/7BV4YJK25R/qrc_resources_autogenerated.cpp.o 3474 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/InputCompletionPopup.cpp.o 3471 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/ModerationPage.cpp.o 3464 ms: src//CMakeFiles/chatterino-lib.dir/controllers/ignores/IgnorePhrase.cpp.o 3417 ms: src//CMakeFiles/chatterino-lib.dir/cmake_pch.hxx.json 3396 ms: src//CMakeFiles/chatterino-lib.dir/messages/MessageBuilder.cpp.o 3377 ms: src//CMakeFiles/chatterino-lib.dir/providers/RecentMessagesApi.cpp.o **** Files that took longest to codegen (compiler backend): 34361 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubManager.cpp.o 33603 ms: src//CMakeFiles/chatterino-lib.dir/providers/bttv/BttvLiveUpdates.cpp.o 32473 ms: src//CMakeFiles/chatterino-lib.dir/controllers/sound/SoundController.cpp.o 32185 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEventAPI.cpp.o 24068 ms: src//CMakeFiles/chatterino-lib.dir/controllers/commands/CommandController.cpp.o 14927 ms: src//CMakeFiles/chatterino-lib.dir/singletons/Settings.cpp.o 14276 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/api/Helix.cpp.o 13767 ms: src//CMakeFiles/chatterino-lib.dir/Application.cpp.o 12300 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/eventapi/Client.cpp.o 11660 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/PubSubClient.cpp.o 10805 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchChannel.cpp.o 8985 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPage.cpp.o 8766 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/ChannelView.cpp.o 7316 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/UserInfoPopup.cpp.o 7210 ms: src//CMakeFiles/chatterino-lib.dir/controllers/hotkeys/HotkeyController.cpp.o 6897 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccountManager.cpp.o 6626 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchMessageBuilder.cpp.o 6123 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EditHotkeyDialog.cpp.o 5866 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/HighlightingPage.cpp.o 5291 ms: src//CMakeFiles/chatterino-lib.dir/controllers/hotkeys/Hotkey.cpp.o 5291 ms: src//CMakeFiles/chatterino-lib.dir/singletons/WindowManager.cpp.o 5214 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Window.cpp.o 5130 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/ModerationPage.cpp.o 5127 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/Split.cpp.o 5018 ms: src//CMakeFiles/chatterino-lib.dir/providers/emoji/Emojis.cpp.o 4972 ms: src//CMakeFiles/chatterino-lib.dir/widgets/Notebook.cpp.o 4804 ms: src//CMakeFiles/chatterino-lib.dir/controllers/highlights/HighlightController.cpp.o 4799 ms: src//CMakeFiles/chatterino-lib.dir/controllers/hotkeys/HotkeyHelpers.cpp.o 4767 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/EmotePopup.cpp.o 4697 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/IrcMessageHandler.cpp.o 4224 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchIrcServer.cpp.o 4178 ms: src//CMakeFiles/chatterino-lib.dir/controllers/notifications/NotificationController.cpp.o 4168 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchAccount.cpp.o 3915 ms: src//CMakeFiles/chatterino-lib.dir/providers/irc/Irc2.cpp.o 3627 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitHeader.cpp.o 3388 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitContainer.cpp.o 3298 ms: src//CMakeFiles/chatterino-lib.dir/widgets/dialogs/ReplyThreadPopup.cpp.o 3002 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/GeneralPageView.cpp.o 2978 ms: src//CMakeFiles/chatterino-lib.dir/providers/seventv/SeventvEmotes.cpp.o 2975 ms: src//CMakeFiles/chatterino-lib.dir/messages/Image.cpp.o 2906 ms: src//CMakeFiles/chatterino-lib.dir/controllers/accounts/AccountController.cpp.o 2892 ms: src//CMakeFiles/chatterino-lib.dir/messages/MessageBuilder.cpp.o 2811 ms: src//CMakeFiles/chatterino-lib.dir/widgets/helper/SearchPopup.cpp.o 2795 ms: src//CMakeFiles/chatterino-lib.dir/chatterino-lib_autogen/mocs_compilation.cpp.o 2766 ms: src//CMakeFiles/chatterino-lib.dir/widgets/splits/SplitInput.cpp.o 2730 ms: src//CMakeFiles/chatterino-lib.dir/widgets/settingspages/FiltersPage.cpp.o 2709 ms: src//CMakeFiles/chatterino-lib.dir/common/Channel.cpp.o 2698 ms: src//CMakeFiles/chatterino-lib.dir/messages/MessageElement.cpp.o 2496 ms: src//CMakeFiles/chatterino-lib.dir/providers/twitch/TwitchBadges.cpp.o 2473 ms: src//CMakeFiles/chatterino-lib.dir/providers/ffz/FfzEmotes.cpp.o **** Templates that took longest to instantiate: 4329 ms: websocketpp::client::get_connection (4 times, avg 1082 ms) 4083 ms: boost::asio::basic_stream_socket::basic_stream... (8 times, avg 510 ms) 4078 ms: boost::asio::basic_socket::basic_socket, boost::signals2::detail::for... (62 times, avg 62 ms) 3851 ms: websocketpp::client::get_connection (2 times, avg 1925 ms) 3682 ms: chatterino::BasicPubSubManager::connect (2 times, avg 1480 ms) 2853 ms: chatterino::BasicPubSubManager, boost::signals2:... (62 times, avg 45 ms) 2822 ms: std::vector, boost::signals2:... (62 times, avg 45 ms) 2577 ms: std::unordered_map (50 times, avg 51 ms) 2556 ms: pajlada::Settings::Setting (126 times, avg 20 ms) 2461 ms: websocketpp::connection::send (4 times, avg 615 ms) 2458 ms: boost::apply_visitor (126 times, avg 18 ms) 2356 ms: boost::asio::ssl::detail::io_op, boost::detail... (62 times, avg 37 ms) 2309 ms: std::vector::vector (133 times, avg 17 ms) 2283 ms: std::unique_ptr>> (89 times, avg 25 ms) 2275 ms: websocketpp::transport::asio::endpoint (97 times, avg 22 ms) 2144 ms: websocketpp::endpoint::__shared_count (11023 times, avg 1 ms) 16085 ms: std::vector<$> (3989 times, avg 4 ms) 15224 ms: std::__or_<$> (5992 times, avg 2 ms) 14020 ms: std::optional<$> (875 times, avg 16 ms) 13234 ms: std::vector<$>::emplace_back<$> (628 times, avg 21 ms) 12679 ms: std::unique_ptr<$> (514 times, avg 24 ms) 12302 ms: boost::asio::async_initiate<$> (103 times, avg 119 ms) 12280 ms: boost::asio::detail::completion_handler_async_result<$>::initiate<$> (103 times, avg 119 ms) 11750 ms: std::unordered_map<$> (409 times, avg 28 ms) 11552 ms: std::make_shared<$> (362 times, avg 31 ms) 11452 ms: std::shared_ptr<$>::shared_ptr<$> (468 times, avg 24 ms) 11427 ms: std::__shared_ptr<$>::__shared_ptr<$> (464 times, avg 24 ms) 11051 ms: pajlada::Signals::Signal<$> (1680 times, avg 6 ms) 10766 ms: std::__shared_count<$>::__shared_count<$> (459 times, avg 23 ms) 10138 ms: std::function<$>::function<$> (882 times, avg 11 ms) 10036 ms: std::__uniq_ptr_data<$> (514 times, avg 19 ms) 9933 ms: std::__uniq_ptr_impl<$> (514 times, avg 19 ms) 9731 ms: boost::mpl::apply2<$> (3179 times, avg 3 ms) 9465 ms: std::_Hashtable<$> (464 times, avg 20 ms) 9361 ms: std::vector<$>::_M_realloc_insert<$> (776 times, avg 12 ms) 9089 ms: pajlada::Settings::Setting<$> (663 times, avg 13 ms) 8782 ms: std::_Vector_base<$> (3971 times, avg 2 ms) 8722 ms: boost::mpl::apply_wrap2<$> (2881 times, avg 3 ms) 8698 ms: chatterino::ChatterinoSetting<$> (644 times, avg 13 ms) 8502 ms: boost::mpl::iter_fold_if<$> (1192 times, avg 7 ms) 8220 ms: std::vector<$>::push_back (321 times, avg 25 ms) 8214 ms: boost::asio::ssl::detail::async_io<$> (48 times, avg 171 ms) 8172 ms: boost::mpl::iter_fold_if<$>::result_ (1192 times, avg 6 ms) 8152 ms: std::_Destroy<$> (1236 times, avg 6 ms) 8075 ms: boost::mpl::aux::iter_fold_if_impl<$> (1192 times, avg 6 ms) 7933 ms: std::_Sp_counted_ptr_inplace<$>::_Sp_counted_ptr_inplace<$> (362 times, avg 21 ms) 7865 ms: std::shared_ptr<$> (1520 times, avg 5 ms) 7721 ms: pajlada::Signals::Signal<$>::connect (137 times, avg 56 ms) 7578 ms: boost::mpl::and_<$> (1419 times, avg 5 ms) 7551 ms: boost::mpl::aux::nested_type_wknd<$> (1464 times, avg 5 ms) 7249 ms: chatterino::BasicPubSubManager<$>::BasicPubSubManager (2 times, avg 3624 ms) 7188 ms: boost::mpl::aux::and_impl<$> (1312 times, avg 5 ms) 7127 ms: boost::enable_if<$> (1342 times, avg 5 ms) 7115 ms: boost::mpl::aux::iter_fold_if_forward_step<$> (1988 times, avg 3 ms) 6910 ms: boost::mpl::find_if<$> (920 times, avg 7 ms) 6836 ms: chatterino::BasicPubSubManager<$>::onConnectionOpen (2 times, avg 3418 ms) 6689 ms: boost::variant<$> (136 times, avg 49 ms) 6496 ms: std::vector<$>::~vector (763 times, avg 8 ms) 6479 ms: std::is_trivially_destructible<$> (1118 times, avg 5 ms) 6190 ms: magic_enum::detail::is_flags_enum<$> (11 times, avg 562 ms) 6184 ms: std::__not_<$> (1713 times, avg 3 ms) 6174 ms: boost::mpl::or_<$> (887 times, avg 6 ms) 6075 ms: boost::mpl::aux::iter_fold_if_pred<$>::apply<$> (1823 times, avg 3 ms) 6057 ms: std::allocator_traits<$>::construct<$> (1582 times, avg 3 ms) 6010 ms: std::tuple<$> (706 times, avg 8 ms) **** Functions that took longest to compile: 1476 ms: __cxx_global_var_init.12 (:/src/controllers/hotkeys/HotkeyHelpers.cpp) 1374 ms: chatterino::CommandController::initialize(chatterino::Settings&, cha... (:/src/controllers/commands/CommandController.cpp) 1373 ms: __cxx_global_var_init.12 (:/src/controllers/hotkeys/Hotkey.cpp) 1343 ms: chatterino::Settings::Settings(QString const&) (:/src/singletons/Settings.cpp) 1198 ms: __cxx_global_var_init.12 (:/src/widgets/dialogs/EditHotkeyDialog.cpp) 1095 ms: chatterino::GeneralPage::initLayout(chatterino::GeneralPageView&) (:/src/widgets/settingspages/GeneralPage.cpp) 837 ms: chatterino::HotkeyController::addDefaults(std::set::_M_invoke(std::_Any_data const&, chatteri... (106 times, avg 26 ms) 2575 ms: std::_Function_handler<$>::_M_manager(std::_Any_data&, std::_Any_dat... (797 times, avg 3 ms) 2137 ms: std::__shared_ptr<$>::~__shared_ptr() (544 times, avg 3 ms) 2069 ms: pajlada::Signals::Signal<$>::connect(std::function<$>) (137 times, avg 15 ms) 2016 ms: std::_Function_handler<$>::_M_invoke(std::_Any_data const&, QStringL... (48 times, avg 42 ms) 1954 ms: std::vector<$>::~vector() (413 times, avg 4 ms) 1552 ms: QtPrivate::QFunctorSlotObject<$>::impl(int, QtPrivate::QSlotObjectBa... (229 times, avg 6 ms) 1507 ms: pajlada::Settings::Setting<$>::getValue() const (133 times, avg 11 ms) 1112 ms: std::vector<$>::_M_erase(__gnu_cxx::__normal_iterator<$>) (143 times, avg 7 ms) 1023 ms: QList<$>::detach_helper_grow(int, int) (72 times, avg 14 ms) 1003 ms: boost::asio::detail::completion_handler<$>::do_complete(void*, boost... (116 times, avg 8 ms) 988 ms: std::_Sp_counted_ptr_inplace<$>::_M_get_deleter(std::type_info const&) (318 times, avg 3 ms) 971 ms: std::_Function_handler<$>::_M_invoke(std::_Any_data const&, std::vec... (80 times, avg 12 ms) 965 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (142 times, avg 6 ms) 891 ms: void boost::asio::detail::executor_function::complete<$>(boost::asio... (97 times, avg 9 ms) 882 ms: void std::vector<$>::_M_realloc_insert<$>(__gnu_cxx::__normal_iterat... (125 times, avg 7 ms) 839 ms: std::_Sp_counted_ptr_inplace<$>::_M_dispose() (318 times, avg 2 ms) 837 ms: chatterino::HotkeyController::addDefaults(std::set<$>&) (1 times, avg 837 ms) 785 ms: pajlada::Settings::Setting<$>::connect(std::function<$>, bool) (23 times, avg 34 ms) 781 ms: void pajlada::Settings::Setting<$>::connect<$>(std::function<$>, paj... (26 times, avg 30 ms) 764 ms: QList<$>::detach_helper(int) (91 times, avg 8 ms) 754 ms: pajlada::Signals::Signal<$>::getActiveBodies() (121 times, avg 6 ms) 728 ms: pajlada::Signals::detail::CallbackBody<$>::~CallbackBody() (137 times, avg 5 ms) 649 ms: void boost::asio::execution::detail::any_executor_base::execute<$>(b... (57 times, avg 11 ms) 625 ms: std::_Function_handler<$>::_M_invoke(std::_Any_data const&) (150 times, avg 4 ms) 623 ms: non-virtual thunk to boost::wrapexcept<$>::~wrapexcept() (49 times, avg 12 ms) 550 ms: std::_Sp_counted_ptr_inplace<$>::_M_destroy() (318 times, avg 1 ms) 546 ms: std::_Sp_counted_ptr_inplace<$>::~_Sp_counted_ptr_inplace() (318 times, avg 1 ms) 519 ms: QList<$>::~QList() (94 times, avg 5 ms) 517 ms: void boost::asio::detail::strand_service::dispatch<$>(boost::asio::d... (73 times, avg 7 ms) 510 ms: std::_Sp_counted_base<$>::_M_release_last_use_cold() (165 times, avg 3 ms) 433 ms: std::_Function_base::_Base_manager<$>::_M_manager(std::_Any_data&, s... (86 times, avg 5 ms) 424 ms: websocketpp::connection<$>::write_frame() (5 times, avg 84 ms) 410 ms: std::_Function_handler<$>::_M_invoke(std::_Any_data const&, QJsonObj... (27 times, avg 15 ms) 404 ms: boost::asio::detail::wait_handler<$>::do_complete(void*, boost::asio... (34 times, avg 11 ms) 392 ms: pajlada::Signals::Signal<$>::~Signal() (74 times, avg 5 ms) 389 ms: QList<$>::QList(std::initializer_list<$>) (43 times, avg 9 ms) 385 ms: pajlada::Signals::Connection::connect(std::weak_ptr<$>) (61 times, avg 6 ms) 383 ms: boost::asio::detail::executor_function::impl<$>::ptr::reset() (62 times, avg 6 ms) 361 ms: boost::asio::detail::reactive_socket_send_op<$>::do_complete(void*, ... (27 times, avg 13 ms) 348 ms: boost::asio::detail::rewrapped_handler<$>::~rewrapped_handler() (68 times, avg 5 ms) 344 ms: void boost::asio::execution::detail::any_executor_base::execute<$>(b... (32 times, avg 10 ms) 340 ms: pajlada::Deserialize<$>::get(rapidjson::GenericValue<$> const&, bool*) (27 times, avg 12 ms) 340 ms: boost::wrapexcept<$>::~wrapexcept() (49 times, avg 6 ms) 340 ms: std::_Hashtable<$>::_M_rehash_aux(unsigned long, std::integral_const... (52 times, avg 6 ms) 338 ms: pajlada::Signals::Connection::Connection(std::weak_ptr<$> const&) (61 times, avg 5 ms) 335 ms: std::_Hashtable<$>::_M_insert_unique_node(unsigned long, unsigned lo... (52 times, avg 6 ms) 332 ms: pajlada::Signals::Signal<$>::invoke(chatterino::SignalVectorItemEven... (43 times, avg 7 ms) 332 ms: boost::asio::detail::reactive_socket_recv_op<$>::do_complete(void*, ... (27 times, avg 12 ms) 327 ms: QMap<$>::detach_helper() (70 times, avg 4 ms) **** Expensive headers: 49717 ms: :/src/common/Channel.hpp (included 113 times, avg 439 ms), included via: TwitchIrcServer.cpp.o TwitchIrcServer.hpp (687 ms) Split.cpp.o Split.hpp (646 ms) StreamerMode.cpp.o TwitchIrcServer.hpp (635 ms) FilterModel.cpp.o Settings.hpp (628 ms) Channel.cpp.o (610 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp Settings.hpp (605 ms) NewPopupItem.cpp.o TwitchIrcServer.hpp (599 ms) NativeMessaging.cpp.o TwitchIrcServer.hpp (594 ms) NuulsUploader.cpp.o Settings.hpp (590 ms) RecentMessagesApi.cpp.o (581 ms) UserInfoPopup.cpp.o (557 ms) ... 44285 ms: :/src/singletons/Settings.hpp (included 86 times, avg 514 ms), included via: BaseWindow.cpp.o (970 ms) main.cpp.o (955 ms) NuulsUploader.cpp.o (946 ms) Settings.cpp.o (934 ms) Paths.cpp.o (873 ms) AttachedWindow.cpp.o (857 ms) BttvLiveUpdates.cpp.o BttvLiveUpdates.hpp BasicPubSubManager.hpp BasicPubSubClient.hpp (824 ms) FilterModel.cpp.o (816 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp (814 ms) GifTimer.cpp.o (807 ms) Logging.cpp.o (805 ms) ... 43478 ms: :/src/controllers/accounts/AccountController.hpp (included 28 times, avg 1552 ms), included via: AccountSwitchWidget.cpp.o (2190 ms) CommandController.cpp.o (2084 ms) IgnoresPage.cpp.o (2078 ms) IgnoreController.cpp.o (2039 ms) AccountsPage.cpp.o (1977 ms) AccountController.cpp.o (1956 ms) IgnorePhrase.cpp.o (1925 ms) ShieldMode.cpp.o (1908 ms) InputCompletionPopup.cpp.o (1907 ms) CompletionModel.cpp.o (1887 ms) IrcMessageHandler.cpp.o (1881 ms) ... 42976 ms: :/src/providers/twitch/TwitchAccountManager.hpp (included 29 times, avg 1481 ms), included via: CommandController.cpp.o AccountController.hpp (2073 ms) AccountSwitchWidget.cpp.o AccountController.hpp (2032 ms) IgnoresPage.cpp.o AccountController.hpp (1992 ms) TwitchAccountManager.cpp.o (1989 ms) IgnoreController.cpp.o AccountController.hpp (1950 ms) AccountsPage.cpp.o AccountController.hpp (1848 ms) IgnorePhrase.cpp.o AccountController.hpp (1846 ms) AccountController.cpp.o AccountController.hpp (1827 ms) InputCompletionPopup.cpp.o AccountController.hpp (1819 ms) ShieldMode.cpp.o AccountController.hpp (1789 ms) UserInfoPopup.cpp.o AccountController.hpp (1788 ms) ... 39169 ms: :/src/messages/LimitedQueue.hpp (included 114 times, avg 343 ms), included via: StreamerMode.cpp.o TwitchIrcServer.hpp Channel.hpp (505 ms) FilterModel.cpp.o Settings.hpp Channel.hpp (500 ms) Client.cpp.o Client.hpp BasicPubSubClient.hpp Settings.hpp Channel.hpp (466 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp Channel.hpp (464 ms) SplitContainer.cpp.o ChannelView.hpp (454 ms) NuulsUploader.cpp.o Settings.hpp Channel.hpp (452 ms) Scrollbar.cpp.o Scrollbar.hpp (445 ms) SeventvEmotes.cpp.o TwitchChannel.hpp Channel.hpp (433 ms) BttvLiveUpdates.cpp.o BttvLiveUpdates.hpp BasicPubSubManager.hpp BasicPubSubClient.hpp Settings.hpp Channel.hpp (433 ms) NotebookTab.cpp.o Settings.hpp Channel.hpp (431 ms) UserInfoPopup.cpp.o Channel.hpp (427 ms) ... 29511 ms: :/src/widgets/splits/Split.hpp (included 25 times, avg 1180 ms), included via: Split.cpp.o (2589 ms) SwitchSplitItem.cpp.o (2218 ms) WindowManager.cpp.o (2180 ms) NotebookButton.cpp.o (2098 ms) FramelessEmbedWindow.cpp.o (1870 ms) SplitOverlay.cpp.o (1824 ms) StreamView.cpp.o (1804 ms) AttachedWindow.cpp.o (1771 ms) NewPopupItem.cpp.o (1701 ms) QuickSwitcherPopup.cpp.o (1662 ms) NewTabItem.cpp.o (1637 ms) ... 24439 ms: :/src/providers/bttv/BttvLiveUpdates.hpp (included 4 times, avg 6109 ms), included via: BttvLiveUpdates.cpp.o (7007 ms) TwitchIrcServer.cpp.o (6545 ms) Application.cpp.o (5680 ms) TwitchChannel.cpp.o (5206 ms) 23676 ms: :/src/providers/twitch/TwitchChannel.hpp (included 26 times, avg 910 ms), included via: Toasts.cpp.o (2502 ms) GeneralPage.cpp.o (2381 ms) LiveController.cpp.o (2294 ms) TwitchChannel.cpp.o (2215 ms) Filter.cpp.o (2122 ms) RecentMessagesApi.cpp.o (1840 ms) SeventvEmotes.cpp.o (1830 ms) BttvEmotes.cpp.o (1770 ms) FfzEmotes.cpp.o (1310 ms) Shoutout.cpp.o (525 ms) TwitchMessageBuilder.cpp.o (521 ms) ... 15072 ms: /usr/include/boost/variant.hpp (included 38 times, avg 396 ms), included via: BaseWindow.cpp.o TooltipWidget.hpp TooltipEntryWidget.hpp Image.hpp (721 ms) InputCompletionItem.cpp.o Image.hpp (721 ms) BttvEmotes.cpp.o Image.hpp (686 ms) TwitchEmotes.cpp.o Image.hpp (684 ms) MessageElement.cpp.o Image.hpp (656 ms) TooltipWidget.cpp.o TooltipWidget.hpp TooltipEntryWidget.hpp Image.hpp (627 ms) SeventvEmotes.cpp.o Image.hpp (625 ms) GeneralPageView.cpp.o GeneralPageView.hpp (617 ms) TooltipEntryWidget.cpp.o TooltipEntryWidget.hpp Image.hpp (614 ms) TwitchBadges.cpp.o Image.hpp (598 ms) MessageLayoutElement.cpp.o Image.hpp (598 ms) ... 13641 ms: :/src/messages/Image.hpp (included 25 times, avg 545 ms), included via: TooltipEntryWidget.cpp.o TooltipEntryWidget.hpp (906 ms) InputCompletionItem.cpp.o (865 ms) BaseWindow.cpp.o TooltipWidget.hpp TooltipEntryWidget.hpp (865 ms) TooltipWidget.cpp.o TooltipWidget.hpp TooltipEntryWidget.hpp (856 ms) Image.cpp.o (845 ms) BttvEmotes.cpp.o (807 ms) TwitchEmotes.cpp.o (781 ms) MessageElement.cpp.o (758 ms) LinkResolver.cpp.o (745 ms) TwitchBadges.cpp.o (744 ms) SeventvEmotes.cpp.o (726 ms) ... 12272 ms: :/src/widgets/Window.hpp (included 23 times, avg 533 ms), included via: Window.cpp.o (1965 ms) QualityPopup.cpp.o (1797 ms) WindowDescriptors.cpp.o (1716 ms) FiltersPage.cpp.o (1691 ms) Args.cpp.o (1616 ms) NotificationController.cpp.o (1346 ms) IrcMessageBuilder.cpp.o (1075 ms) moc_Window.cpp (899 ms) NewPopupItem.cpp.o (30 ms) TwitchMessageBuilder.cpp.o (25 ms) SplitContainer.cpp.o (13 ms) ... 9306 ms: :/src/providers/twitch/TwitchIrcServer.hpp (included 28 times, avg 332 ms), included via: StreamerMode.cpp.o (993 ms) TwitchIrcServer.cpp.o (944 ms) NewPopupItem.cpp.o (838 ms) NativeMessaging.cpp.o (830 ms) FramelessEmbedWindow.cpp.o (806 ms) NewTabItem.cpp.o (744 ms) LuaAPI.cpp.o (693 ms) Window.cpp.o (640 ms) NotificationController.cpp.o (479 ms) UserInfoPopup.cpp.o (212 ms) GeneralPage.cpp.o (197 ms) ... 8810 ms: /usr/include/boost/bind/bind.hpp (included 63 times, avg 139 ms), included via: SwitchSplitItem.cpp.o Split.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (226 ms) Filter.cpp.o TwitchChannel.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (200 ms) Toasts.cpp.o TwitchChannel.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (199 ms) LiveController.cpp.o TwitchChannel.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (198 ms) Split.cpp.o Split.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (192 ms) HighlightController.cpp.o AccountController.hpp TwitchAccountManager.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (182 ms) WindowManager.cpp.o Split.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (182 ms) Window.cpp.o Window.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (172 ms) IgnoreController.cpp.o AccountController.hpp TwitchAccountManager.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (172 ms) CommandController.cpp.o AccountController.hpp TwitchAccountManager.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (171 ms) LoginDialog.cpp.o AccountController.hpp TwitchAccountManager.hpp signals2.hpp signal.hpp connection.hpp slot.hpp (171 ms) ... 8391 ms: :/src/singletons/WindowManager.hpp (included 43 times, avg 195 ms), included via: SettingsPage.cpp.o (430 ms) WindowManager.cpp.o (353 ms) GeneralPageView.cpp.o GeneralPageView.hpp (317 ms) QualityPopup.cpp.o (316 ms) TooltipWidget.cpp.o (259 ms) StreamLink.cpp.o (251 ms) BaseWindow.cpp.o (250 ms) SwitchSplitItem.cpp.o (243 ms) UserInfoPopup.cpp.o (235 ms) Scrollbar.cpp.o (231 ms) Image.cpp.o (218 ms) ... 6844 ms: :/src/widgets/splits/SplitContainer.hpp (included 46 times, avg 148 ms), included via: SplitContainer.cpp.o (420 ms) SettingsPage.cpp.o WindowManager.hpp (357 ms) WindowManager.cpp.o WindowManager.hpp (280 ms) GeneralPageView.cpp.o GeneralPageView.hpp WindowManager.hpp (252 ms) QualityPopup.cpp.o WindowManager.hpp (232 ms) SwitchSplitItem.cpp.o WindowManager.hpp (189 ms) BaseWindow.cpp.o WindowManager.hpp (187 ms) TooltipWidget.cpp.o WindowManager.hpp (177 ms) Image.cpp.o WindowManager.hpp (176 ms) MessageLayout.cpp.o WindowManager.hpp (176 ms) StreamLink.cpp.o WindowManager.hpp (165 ms) ... 6522 ms: :/src/providers/twitch/PubSubManager.hpp (included 4 times, avg 1630 ms), included via: PubSubManager.cpp.o (6113 ms) TwitchIrcServer.cpp.o (169 ms) TwitchChannel.cpp.o (146 ms) Application.cpp.o (93 ms) 6412 ms: :/src/common/WindowDescriptors.hpp (included 51 times, avg 125 ms), included via: main.cpp.o Args.hpp (1957 ms) SplitContainer.cpp.o SplitContainer.hpp (302 ms) SettingsPage.cpp.o WindowManager.hpp SplitContainer.hpp (253 ms) WindowDescriptors.cpp.o (224 ms) WindowManager.cpp.o WindowManager.hpp SplitContainer.hpp (188 ms) Application.cpp.o Args.hpp (185 ms) Args.cpp.o Args.hpp (179 ms) GeneralPageView.cpp.o GeneralPageView.hpp WindowManager.hpp SplitContainer.hpp (159 ms) FramelessEmbedWindow.cpp.o Args.hpp (157 ms) QualityPopup.cpp.o WindowManager.hpp SplitContainer.hpp (154 ms) RunGui.cpp.o Args.hpp (152 ms) ... 6404 ms: :/src/providers/twitch/api/Helix.hpp (included 18 times, avg 355 ms), included via: Helix.cpp.o (699 ms) TwitchUser.cpp.o (643 ms) NotificationController.cpp.o (474 ms) TwitchAccountManager.cpp.o (416 ms) Toasts.cpp.o (414 ms) LiveController.cpp.o (406 ms) ChatSettings.cpp.o (398 ms) ShieldMode.cpp.o (366 ms) CommandController.cpp.o (347 ms) Shoutout.cpp.o (331 ms) TwitchBadges.cpp.o (302 ms) ... 5976 ms: :/src/common/SignalVectorModel.hpp (included 28 times, avg 213 ms), included via: HotkeyModel.cpp.o HotkeyModel.hpp (361 ms) NicknamesPage.cpp.o NicknamesModel.hpp (358 ms) MutedChannelModel.cpp.o MutedChannelModel.hpp (351 ms) UserHighlightModel.cpp.o UserHighlightModel.hpp (338 ms) AccountModel.cpp.o AccountModel.hpp (330 ms) FiltersPage.cpp.o FilterModel.hpp (328 ms) ChannelLoggingModel.cpp.o ChannelLoggingModel.hpp (326 ms) HighlightModel.cpp.o HighlightModel.hpp (325 ms) HighlightingPage.cpp.o BadgeHighlightModel.hpp (305 ms) HighlightBlacklistModel.cpp.o HighlightBlacklistModel.hpp (294 ms) FilterModel.cpp.o FilterModel.hpp (278 ms) ... 5680 ms: :/src/providers/seventv/SeventvEventAPI.hpp (included 4 times, avg 1420 ms), included via: SeventvEventAPI.cpp.o (5594 ms) TwitchIrcServer.cpp.o (30 ms) TwitchChannel.cpp.o (28 ms) Application.cpp.o (26 ms) 5679 ms: :/src/providers/seventv/eventapi/Client.hpp (included 2 times, avg 2839 ms), included via: Client.cpp.o (5589 ms) SeventvEventAPI.cpp.o (90 ms) 5590 ms: :/src/BaseSettings.hpp (included 89 times, avg 62 ms), included via: main.cpp.o Settings.hpp (325 ms) Settings.cpp.o Settings.hpp (185 ms) Paths.cpp.o Settings.hpp (164 ms) BaseWindow.cpp.o Settings.hpp (164 ms) ResizingTextEdit.cpp.o Settings.hpp (149 ms) ChatterinoSetting.cpp.o (148 ms) AttachedWindow.cpp.o Settings.hpp (146 ms) BaseWidget.cpp.o (144 ms) Credentials.cpp.o Settings.hpp (141 ms) BaseSettings.cpp.o (139 ms) GifTimer.cpp.o Settings.hpp (136 ms) ... 5026 ms: :/src/providers/twitch/PubSubClient.hpp (included 2 times, avg 2513 ms), included via: PubSubClient.cpp.o (5022 ms) PubSubManager.cpp.o (4 ms) 4986 ms: :/src/messages/MessageThread.hpp (included 10 times, avg 498 ms), included via: LoggingChannel.cpp.o (1794 ms) MessageThread.cpp.o (1743 ms) SplitInput.cpp.o (1399 ms) CommandController.cpp.o (11 ms) ReplyThreadPopup.cpp.o (7 ms) Split.cpp.o (6 ms) TwitchChannel.cpp.o (6 ms) IrcMessageHandler.cpp.o (6 ms) TwitchMessageBuilder.cpp.o (5 ms) ChannelView.cpp.o (4 ms) 4414 ms: /usr/include/qt/QtConcurrent/QtConcurrent (included 5 times, avg 882 ms), included via: Irc2.cpp.o (1009 ms) NetworkRequest.cpp.o (885 ms) NetworkPrivate.cpp.o (854 ms) ModerationPage.cpp.o (851 ms) RunGui.cpp.o (813 ms) 3839 ms: :/src/widgets/BaseWidget.hpp (included 124 times, avg 30 ms), included via: SplitHeader.cpp.o SplitHeader.hpp (106 ms) SplitOverlay.cpp.o SplitOverlay.hpp (100 ms) UserInfoPopup.cpp.o UserInfoPopup.hpp DraggablePopup.hpp BaseWindow.hpp (99 ms) DraggablePopup.cpp.o DraggablePopup.hpp BaseWindow.hpp (99 ms) EmotePopup.cpp.o EmotePopup.hpp BasePopup.hpp BaseWindow.hpp (96 ms) NotebookTab.cpp.o NotebookTab.hpp Button.hpp (86 ms) ColorPickerDialog.cpp.o ColorPickerDialog.hpp BasePopup.hpp BaseWindow.hpp (84 ms) BaseWindow.cpp.o BaseWindow.hpp (79 ms) NotificationPopup.cpp.o NotificationPopup.hpp BaseWindow.hpp (79 ms) ReplyThreadPopup.cpp.o ReplyThreadPopup.hpp DraggablePopup.hpp BaseWindow.hpp (77 ms) Window.cpp.o Window.hpp BaseWindow.hpp (76 ms) ... 3749 ms: :/src/providers/irc/IrcChannel2.hpp (included 8 times, avg 468 ms), included via: IrcChannel2.cpp.o (569 ms) Irc2.cpp.o (564 ms) IrcCommands.cpp.o (550 ms) IrcServer.cpp.o (549 ms) WindowManager.cpp.o (547 ms) SelectChannelDialog.cpp.o (462 ms) CommandController.cpp.o (409 ms) Channel.cpp.o (97 ms) 3540 ms: :/src/providers/irc/AbstractIrcServer.hpp (included 33 times, avg 107 ms), included via: AbstractIrcServer.cpp.o (221 ms) IrcServer.cpp.o IrcServer.hpp (208 ms) StreamerMode.cpp.o TwitchIrcServer.hpp (182 ms) IrcCommands.cpp.o IrcServer.hpp (182 ms) Channel.cpp.o IrcServer.hpp (175 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp (150 ms) FramelessEmbedWindow.cpp.o TwitchIrcServer.hpp (147 ms) GeneralPage.cpp.o TwitchIrcServer.hpp (133 ms) WindowManager.cpp.o IrcServer.hpp (125 ms) NativeMessaging.cpp.o TwitchIrcServer.hpp (122 ms) Irc2.cpp.o IrcServer.hpp (122 ms) ... 3500 ms: :/src/common/Common.hpp (included 64 times, avg 54 ms), included via: MessageLayoutContainer.cpp.o MessageLayoutContainer.hpp (132 ms) AccountSwitchWidget.cpp.o (111 ms) ResizingTextEdit.cpp.o (93 ms) Channel.cpp.o IrcServer.hpp AbstractIrcServer.hpp (88 ms) TwitchBadges.cpp.o Image.hpp (83 ms) IrcCommands.cpp.o IrcServer.hpp AbstractIrcServer.hpp (80 ms) Emojis.cpp.o Image.hpp (77 ms) InputCompletionItem.cpp.o Image.hpp (74 ms) ChannelPointReward.cpp.o Image.hpp (73 ms) ImageSet.cpp.o Image.hpp (69 ms) StreamerMode.cpp.o TwitchIrcServer.hpp AbstractIrcServer.hpp (69 ms) ... 3455 ms: :/src/widgets/TooltipEntryWidget.hpp (included 7 times, avg 493 ms), included via: TooltipEntryWidget.cpp.o (928 ms) BaseWindow.cpp.o TooltipWidget.hpp (875 ms) TooltipWidget.cpp.o TooltipWidget.hpp (870 ms) moc_TooltipEntryWidget.cpp (677 ms) Split.cpp.o TooltipWidget.hpp (65 ms) SplitHeader.cpp.o TooltipWidget.hpp (35 ms) ChannelView.cpp.o TooltipWidget.hpp (1 ms) 3449 ms: :/src/common/NetworkRequest.hpp (included 33 times, avg 104 ms), included via: NetworkRequest.cpp.o (325 ms) NuulsUploader.cpp.o (294 ms) LinkResolver.cpp.o (277 ms) Helix.cpp.o Helix.hpp (243 ms) TwitchUser.cpp.o Helix.hpp (193 ms) IvrApi.cpp.o IvrApi.hpp (183 ms) Toasts.cpp.o (181 ms) Updates.cpp.o (147 ms) LoginDialog.cpp.o (143 ms) TwitchBadges.cpp.o (126 ms) BttvEmotes.cpp.o (125 ms) ... 3422 ms: :/src/common/CompletionModel.hpp (included 113 times, avg 30 ms), included via: CompletionModel.cpp.o (96 ms) Debugging.cpp.o Channel.hpp (75 ms) TwitchIrcServer.cpp.o TwitchIrcServer.hpp Channel.hpp (73 ms) MessageLayoutContainer.cpp.o Settings.hpp Channel.hpp (73 ms) Channel.cpp.o Channel.hpp (70 ms) IrcCommands.cpp.o IrcChannel2.hpp Channel.hpp (69 ms) NativeMessaging.cpp.o TwitchIrcServer.hpp Channel.hpp (67 ms) StreamView.cpp.o Channel.hpp (60 ms) NotificationModel.cpp.o Settings.hpp Channel.hpp (59 ms) RecentMessagesApi.cpp.o Channel.hpp (56 ms) Split.cpp.o Split.hpp Channel.hpp (56 ms) ... 3291 ms: :/src/providers/emoji/Emojis.hpp (included 16 times, avg 205 ms), included via: Emojis.cpp.o (714 ms) Emotes.cpp.o Emotes.hpp (675 ms) MessageLayout.cpp.o Emotes.hpp (618 ms) IrcMessageBuilder.cpp.o Emotes.hpp (532 ms) Channel.cpp.o Emotes.hpp (511 ms) Application.cpp.o Emotes.hpp (50 ms) EmotePopup.cpp.o Emotes.hpp (31 ms) CompletionModel.cpp.o Emotes.hpp (28 ms) TwitchAccount.cpp.o Emotes.hpp (27 ms) InputCompletionPopup.cpp.o Emotes.hpp (27 ms) Image.cpp.o Emotes.hpp (25 ms) ... 3236 ms: :/src/messages/Message.hpp (included 39 times, avg 82 ms), included via: Message.cpp.o (290 ms) RegexPredicate.cpp.o (278 ms) BadgePredicate.cpp.o (247 ms) AuthorPredicate.cpp.o (211 ms) MessageFlagsPredicate.cpp.o MessageFlagsPredicate.hpp (200 ms) LoggingChannel.cpp.o (195 ms) SubtierPredicate.cpp.o (175 ms) SubstringPredicate.cpp.o (173 ms) ChannelPredicate.cpp.o (164 ms) MessageLayoutContainer.cpp.o (114 ms) Channel.cpp.o (113 ms) ... 3065 ms: :/src/widgets/helper/ChannelView.hpp (included 14 times, avg 218 ms), included via: ChannelView.cpp.o (626 ms) SplitContainer.cpp.o (597 ms) StreamView.cpp.o (308 ms) NotificationPopup.cpp.o (230 ms) CommandController.cpp.o (173 ms) moc_ChannelView.cpp (149 ms) Scrollbar.cpp.o (145 ms) SearchPopup.cpp.o (143 ms) ReplyThreadPopup.cpp.o (137 ms) Notebook.cpp.o (125 ms) UserInfoPopup.cpp.o (123 ms) ... 3060 ms: :/src/messages/MessageElement.hpp (included 24 times, avg 127 ms), included via: TwitchBadge.cpp.o TwitchBadge.hpp (351 ms) MessageElement.cpp.o (310 ms) WindowManager.cpp.o (202 ms) SubtierPredicate.cpp.o TwitchBadge.hpp (187 ms) HighlightBadge.cpp.o TwitchBadge.hpp (177 ms) Message.cpp.o (167 ms) BadgePredicate.cpp.o TwitchBadge.hpp (153 ms) Filter.cpp.o TwitchBadge.hpp (134 ms) IrcChannel2.cpp.o (133 ms) MessageLayoutContainer.cpp.o (129 ms) MessageLayout.cpp.o (125 ms) ... 3014 ms: :/src/common/Args.hpp (included 7 times, avg 430 ms), included via: main.cpp.o (2052 ms) Application.cpp.o (219 ms) Args.cpp.o (202 ms) FramelessEmbedWindow.cpp.o (177 ms) RunGui.cpp.o (175 ms) SettingsDialog.cpp.o (168 ms) WindowManager.cpp.o (18 ms) 3006 ms: :/src/controllers/filters/lang/Tokenizer.hpp (included 17 times, avg 176 ms), included via: FilterRecord.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp (282 ms) FilterParser.cpp.o FilterParser.hpp Expression.hpp (269 ms) SelectChannelFiltersDialog.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp (250 ms) Filter.cpp.o Filter.hpp Expression.hpp (226 ms) ListExpression.cpp.o ListExpression.hpp Expression.hpp (220 ms) ValueExpression.cpp.o ValueExpression.hpp Expression.hpp (190 ms) RegexExpression.cpp.o RegexExpression.hpp Expression.hpp (190 ms) UnaryOperation.cpp.o UnaryOperation.hpp Expression.hpp (183 ms) Tokenizer.cpp.o (182 ms) Expression.cpp.o Expression.hpp (173 ms) ChannelFilterEditorDialog.cpp.o (172 ms) ... 2981 ms: :/src/singletons/Emotes.hpp (included 15 times, avg 198 ms), included via: Emotes.cpp.o (785 ms) MessageLayout.cpp.o (669 ms) Channel.cpp.o (583 ms) IrcMessageBuilder.cpp.o (568 ms) Image.cpp.o (91 ms) Application.cpp.o (53 ms) MessageBuilder.cpp.o (40 ms) MessageElement.cpp.o (39 ms) EmotePopup.cpp.o (32 ms) CompletionModel.cpp.o (29 ms) InputCompletionPopup.cpp.o (29 ms) ... 2882 ms: :/build/src/CMakeFiles/chatterino-lib.dir/cmake_pch.hxx (included 1 times, avg 2882 ms), included via: cmake_pch.hxx.json (2882 ms) 2854 ms: :/src/messages/Emote.hpp (included 42 times, avg 67 ms), included via: TwitchAccount.cpp.o TwitchAccount.hpp (239 ms) Emojis.cpp.o (220 ms) Emote.cpp.o (203 ms) InputCompletionItem.cpp.o (191 ms) MessageLayoutElement.cpp.o (167 ms) InputCompletionPopup.cpp.o (107 ms) AccountSwitchWidget.cpp.o TwitchAccount.hpp (102 ms) BadgeHighlightModel.cpp.o (102 ms) ChannelView.cpp.o (99 ms) CompletionModel.cpp.o (95 ms) EmotePopup.cpp.o (95 ms) ... 2746 ms: :/src/providers/twitch/TwitchAccount.hpp (included 28 times, avg 98 ms), included via: TwitchAccount.cpp.o (367 ms) AccountSwitchWidget.cpp.o (268 ms) AccountController.cpp.o (177 ms) Window.cpp.o (163 ms) LoginDialog.cpp.o (137 ms) SplitHeader.cpp.o (125 ms) ReplyThreadPopup.cpp.o (116 ms) HighlightController.cpp.o (116 ms) TwitchAccountManager.cpp.o (100 ms) UserInfoPopup.cpp.o (89 ms) IgnoresPage.cpp.o (83 ms) ... 2712 ms: :/src/controllers/filters/lang/expressions/Expression.hpp (included 15 times, avg 180 ms), included via: FilterRecord.cpp.o FilterRecord.hpp Filter.hpp (288 ms) FilterParser.cpp.o FilterParser.hpp (273 ms) SelectChannelFiltersDialog.cpp.o FilterRecord.hpp Filter.hpp (253 ms) Filter.cpp.o Filter.hpp (229 ms) ListExpression.cpp.o ListExpression.hpp (225 ms) ValueExpression.cpp.o ValueExpression.hpp (198 ms) RegexExpression.cpp.o RegexExpression.hpp (194 ms) UnaryOperation.cpp.o UnaryOperation.hpp (188 ms) Expression.cpp.o (176 ms) BinaryOperation.cpp.o BinaryOperation.hpp (172 ms) FilterSet.cpp.o FilterRecord.hpp Filter.hpp (165 ms) ... 2693 ms: :/lib/miniaudio/miniaudio.h (included 2 times, avg 1346 ms), included via: SoundController.cpp.o (2596 ms) Application.cpp.o (96 ms) 2538 ms: :/lib/magic_enum/include/magic_enum.hpp (included 21 times, avg 120 ms), included via: Dispatch.cpp.o Dispatch.hpp Subscription.hpp (276 ms) Message.cpp.o Message.hpp Subscription.hpp (276 ms) AutoMod.cpp.o AutoMod.hpp (244 ms) Base.cpp.o Base.hpp (222 ms) LuaUtilities.cpp.o LuaUtilities.hpp (186 ms) Subscription.cpp.o Subscription.hpp (181 ms) ChatModeratorAction.cpp.o ChatModeratorAction.hpp (168 ms) ChannelPoints.cpp.o ChannelPoints.hpp (162 ms) Whisper.cpp.o Whisper.hpp (161 ms) Helix.cpp.o (81 ms) Plugin.cpp.o (63 ms) ... 2522 ms: :/src/controllers/hotkeys/HotkeyController.hpp (included 19 times, avg 132 ms), included via: KeyboardSettingsPage.cpp.o (347 ms) HotkeyController.cpp.o (330 ms) SelectChannelDialog.cpp.o (281 ms) Notebook.cpp.o (246 ms) GeneralPage.cpp.o (220 ms) SearchPopup.cpp.o (151 ms) NotebookTab.cpp.o (149 ms) EditHotkeyDialog.cpp.o (146 ms) BaseWidget.cpp.o (131 ms) Hotkey.cpp.o (109 ms) SplitInput.cpp.o (63 ms) ... 2438 ms: :/src/widgets/BaseWindow.hpp (included 51 times, avg 47 ms), included via: DraggablePopup.cpp.o DraggablePopup.hpp (160 ms) UserInfoPopup.cpp.o UserInfoPopup.hpp DraggablePopup.hpp (149 ms) NotificationPopup.cpp.o NotificationPopup.hpp (129 ms) BaseWindow.cpp.o (115 ms) ColorPickerDialog.cpp.o ColorPickerDialog.hpp BasePopup.hpp (113 ms) EmotePopup.cpp.o EmotePopup.hpp BasePopup.hpp (112 ms) AccountSwitchPopup.cpp.o AccountSwitchPopup.hpp (105 ms) ReplyThreadPopup.cpp.o ReplyThreadPopup.hpp DraggablePopup.hpp (105 ms) SearchPopup.cpp.o SearchPopup.hpp BasePopup.hpp (101 ms) Window.cpp.o Window.hpp (101 ms) WelcomeDialog.cpp.o WelcomeDialog.hpp (100 ms) ... 2308 ms: :/src/widgets/Notebook.hpp (included 93 times, avg 24 ms), included via: main.cpp.o Settings.hpp (68 ms) Notebook.cpp.o (61 ms) NicknamesPage.cpp.o Settings.hpp (46 ms) Updates.cpp.o Settings.hpp (45 ms) IgnoreController.cpp.o Settings.hpp (44 ms) UserHighlightModel.cpp.o Settings.hpp (41 ms) Settings.cpp.o Settings.hpp (39 ms) LinkResolver.cpp.o Settings.hpp (39 ms) IgnorePhrase.cpp.o Settings.hpp (39 ms) IgnoresPage.cpp.o Settings.hpp (38 ms) FilterSet.cpp.o Settings.hpp (37 ms) ... 2271 ms: :/src/controllers/filters/lang/Types.hpp (included 17 times, avg 133 ms), included via: FilterParser.cpp.o FilterParser.hpp Expression.hpp Tokenizer.hpp (223 ms) FilterRecord.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp Tokenizer.hpp (200 ms) ListExpression.cpp.o ListExpression.hpp Expression.hpp Tokenizer.hpp (169 ms) Filter.cpp.o Filter.hpp Expression.hpp Tokenizer.hpp (162 ms) ValueExpression.cpp.o ValueExpression.hpp Expression.hpp Tokenizer.hpp (148 ms) SelectChannelFiltersDialog.cpp.o FilterRecord.hpp Filter.hpp Expression.hpp Tokenizer.hpp (147 ms) UnaryOperation.cpp.o UnaryOperation.hpp Expression.hpp Tokenizer.hpp (143 ms) RegexExpression.cpp.o RegexExpression.hpp Expression.hpp Tokenizer.hpp (140 ms) Tokenizer.cpp.o Tokenizer.hpp (138 ms) Types.cpp.o (134 ms) ChannelFilterEditorDialog.cpp.o Tokenizer.hpp (129 ms) ... 2091 ms: :/src/controllers/commands/CommandController.hpp (included 13 times, avg 160 ms), included via: LuaAPI.cpp.o (393 ms) CommandController.cpp.o (312 ms) CommandPage.cpp.o (267 ms) SplitInput.cpp.o (213 ms) SettingsDialog.cpp.o (142 ms) Plugin.cpp.o (140 ms) PluginController.cpp.o (116 ms) UserInfoPopup.cpp.o (106 ms) Split.cpp.o (91 ms) CompletionModel.cpp.o (83 ms) SplitHeader.cpp.o (78 ms) ... done in 0.8s. ```
Nerixyz commented 1 year ago

I edited the PCH to speed up some header-only libraries (debug, no cache; about 4min30s down to 3min45s).

Diff ```diff diff --git a/src/PrecompiledHeader.hpp b/src/PrecompiledHeader.hpp index a4a45395..f6ad33f1 100644 --- a/src/PrecompiledHeader.hpp +++ b/src/PrecompiledHeader.hpp @@ -1,8 +1,10 @@ #ifdef __cplusplus +# include # include # include # include # include +# include # include # include # include @@ -12,40 +14,29 @@ # include # include # include -# include # include # include # include # include -# include # include # include # include # include # include -# include -# include # include # include # include # include # include # include -# include -# include -# include # include -# include # include # include # include # include # include -# include -# include # include # include -# include # include # include # include @@ -58,7 +49,6 @@ # include # include # include -# include # include # include # include @@ -74,7 +64,6 @@ # include # include # include -# include # include # include # include @@ -92,31 +81,17 @@ # include # include # include -# include # include # include # include # include # include -# include # include # include # include # include # include # include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include # include # include # include ```

Headers using websocketpp and boost/asio still really stand out. They're taking much longer to include (avg. 20-25s on my machine) and can't be added to the PCH, because they include Windows.h (this causes funny compilation errors). Maybe these headers should use PIMPL or similar, so only the translation unit would need to include these header-only libraries? The next most expensive headers for me were wintoastlib.h (11s) and windows.ui.notifications.h (7s).

leon-richardt commented 1 year ago

I realize this may not be super helpful but here's a link to an article by one of the Blender devs on common techniques to improve C++ build times: https://devtalk.blender.org/t/speed-up-c-compilation/30508