codelite icon indicating copy to clipboard operation
codelite copied to clipboard

high cpu load

Open sss123next opened this issue 3 years ago • 3 comments

100% cpu load and hanged ui during/after compilation

(gdb) where
#0  0x00000008047f6a3b in  () at /usr/local/lib/libpcre2-8.so.0
#1  0x00000008047e8d1f in pcre2_match_8 () at /usr/local/lib/libpcre2-8.so.0
#2  0x0000000801614c1e in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#3  0x0000000801615cf7 in wxRegEx::Matches(wxString const&, int) const ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#4  0x0000000802c1b7e2 in Compiler::IsMatchesPattern(Compiler::CmpInfoPattern&, Compiler::eSeverity, wxString const&, Compiler::PatternMatch*) const () at /usr/local/lib/codelite/libplugin.so
#5  0x0000000802c1ba14 in Compiler::Matches(wxString const&, Compiler::PatternMatch*) ()
    at /usr/local/lib/codelite/libplugin.so
#6  0x0000000000433904 in  ()
#7  0x0000000000431eb9 in  ()
#8  0x00000008016acbb2 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#9  0x00000008016ac8c1 in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#10 0x00000008016ac756 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/local/lib/libwx_baseu-3.1.so.6
#11 0x00000008016ac3a8 in wxEvtHandler::ProcessPendingEvents() () at /usr/local/lib/libwx_baseu-3.1.so.6
#12 0x0000000801586c9f in wxAppConsoleBase::ProcessPendingEvents() ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#13 0x0000000801bf9163 in wxApp::DoIdle() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#14 0x0000000801bfa313 in  () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#15 0x0000000800999e40 in g_main_context_dispatch () at /usr/local/lib/libglib-2.0.so.0
#16 0x000000080099a1aa in  () at /usr/local/lib/libglib-2.0.so.0
#17 0x000000080099a4fa in g_main_loop_run () at /usr/local/lib/libglib-2.0.so.0
#18 0x0000000801039c1b in gtk_main () at /usr/local/lib/libgtk-3.so.0
#19 0x0000000801c0ec35 in wxGUIEventLoop::DoRun() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#20 0x00000008015c4db2 in wxEventLoopBase::Run() () at /usr/local/lib/libwx_baseu-3.1.so.6
#21 0x00000008015862cc in wxAppConsoleBase::MainLoop() () at /usr/local/lib/libwx_baseu-3.1.so.6
#22 0x00000008015fb259 in wxEntry(int&, wchar_t**) () at /usr/local/lib/libwx_baseu-3.1.so.6
#23 0x0000000000474d00 in  ()
#24 0x0000000000423b55 in  ()
#25 0x00000008007cd000 in  ()
#26 0x0000000000000000 in  ()
(gdb) where
#0  0x000000080379e7eb in memcpy () at /lib/libc.so.7
#1  0x00000008047f9415 in  () at /usr/local/lib/libpcre2-8.so.0
#2  0x00000008047e8d1f in pcre2_match_8 () at /usr/local/lib/libpcre2-8.so.0
#3  0x0000000801614c1e in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#4  0x0000000801615cf7 in wxRegEx::Matches(wxString const&, int) const ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#5  0x0000000802c1b7e2 in Compiler::IsMatchesPattern(Compiler::CmpInfoPattern&, Compiler::eSeverity, wxString const&, Compiler::PatternMatch*) const () at /usr/local/lib/codelite/libplugin.so
#6  0x0000000802c1ba14 in Compiler::Matches(wxString const&, Compiler::PatternMatch*) ()
    at /usr/local/lib/codelite/libplugin.so
#7  0x0000000000433904 in  ()
#8  0x0000000000431eb9 in  ()
#9  0x00000008016acbb2 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#10 0x00000008016ac8c1 in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#11 0x00000008016ac756 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/local/lib/libwx_baseu-3.1.so.6
#12 0x00000008016ac3a8 in wxEvtHandler::ProcessPendingEvents() () at /usr/local/lib/libwx_baseu-3.1.so.6
#13 0x0000000801586c9f in wxAppConsoleBase::ProcessPendingEvents() ()
    at /usr/local/lib/libwx_baseu-3.1.so.6
#14 0x0000000801bf9163 in wxApp::DoIdle() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#15 0x0000000801bfa313 in  () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#16 0x0000000800999e40 in g_main_context_dispatch () at /usr/local/lib/libglib-2.0.so.0
#17 0x000000080099a1aa in  () at /usr/local/lib/libglib-2.0.so.0
#18 0x000000080099a4fa in g_main_loop_run () at /usr/local/lib/libglib-2.0.so.0
#19 0x0000000801039c1b in gtk_main () at /usr/local/lib/libgtk-3.so.0
#20 0x0000000801c0ec35 in wxGUIEventLoop::DoRun() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#21 0x00000008015c4db2 in wxEventLoopBase::Run() () at /usr/local/lib/libwx_baseu-3.1.so.6
#22 0x00000008015862cc in wxAppConsoleBase::MainLoop() () at /usr/local/lib/libwx_baseu-3.1.so.6
#23 0x00000008015fb259 in wxEntry(int&, wchar_t**) () at /usr/local/lib/libwx_baseu-3.1.so.6
#24 0x0000000000474d00 in  ()
#25 0x0000000000423b55 in  ()
#26 0x00000008007cd000 in  ()
#27 0x0000000000000000 in  ()

Thread 12 (LWP 100206 of process 36560):
#0  0x000000080379deba in _select () at /lib/libc.so.7
#1  0x00000008035cbe52 in  () at /lib/libthr.so.3
#2  0x0000000802ffec8e in UnixProcess::ReadAll(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, int) () at /usr/local/lib/codelite/liblibcodelite.so
#3  0x0000000802fff469 in  () at /usr/local/lib/codelite/liblibcodelite.so
#4  0x00000008035c9132 in  () at /lib/libthr.so.3
#5  0x0000000000000000 in  ()

Thread 11 (LWP 100190 of process 36560):
#0  0x00000008035d79ec in  () at /lib/libthr.so.3
#1  0x00000008035cb040 in  () at /lib/libthr.so.3
#2  0x00000008035d4f4b in  () at /lib/libthr.so.3
#3  0x00000008016888e4 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#4  0x0000000803001417 in wxMessageQueue<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::ReceiveTimeout(long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x0000000802fff158 in  () at /usr/local/lib/codelite/liblibcodelite.so
#6  0x00000008035c9132 in  () at /lib/libthr.so.3
#7  0x0000000000000000 in  ()

Thread 10 (LWP 100464 of process 36560):
#0  0x000000080379deba in _select () at /lib/libc.so.7
#1  0x00000008035cbe52 in  () at /lib/libthr.so.3
#2  0x0000000802ffec8e in UnixProcess::ReadAll(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, int) () at /usr/local/lib/codelite/liblibcodelite.so
#3  0x0000000802fff469 in  () at /usr/local/lib/codelite/liblibcodelite.so
#4  0x00000008035c9132 in  () at /lib/libthr.so.3
#5  0x0000000000000000 in  ()

Thread 9 (LWP 100456 of process 36560):
#0  0x00000008035d79ec in  () at /lib/libthr.so.3
#1  0x00000008035cb040 in  () at /lib/libthr.so.3
#2  0x00000008035d4f4b in  () at /lib/libthr.so.3
#3  0x00000008016888e4 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#4  0x0000000803001417 in wxMessageQueue<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::ReceiveTimeout(long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x0000000802fff158 in  () at /usr/local/lib/codelite/liblibcodelite.so
#6  0x00000008035c9132 in  () at /lib/libthr.so.3
#7  0x0000000000000000 in  ()

Thread 8 (LWP 101155 of process 36560):
#0  0x000000080379deba in _select () at /lib/libc.so.7
#1  0x00000008035cbe52 in  () at /lib/libthr.so.3
#2  0x0000000802fa6eb7 in clSocketBase::SelectReadMS(long) () at /usr/local/lib/codelite/liblibcodelite.so
#3  0x0000000802faad61 in clSocketAsyncThread::BufferLoop(wxSharedPtr<clSocketBase>) () at /usr/local/lib/codelite/liblibcodelite.so
#4  0x0000000802fa9d51 in clSocketAsyncThread::ClientMain() () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x0000000802fa9959 in clSocketAsyncThread::Entry() () at /usr/local/lib/codelite/liblibcodelite.so
#6  0x000000080168a249 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#7  0x00000008035c9132 in  () at /lib/libthr.so.3
#8  0x0000000000000000 in  ()

Thread 7 (LWP 100244 of process 36560):
#0  0x000000080372e99a in _nanosleep () at /lib/libc.so.7
#1  0x00000008035cba9c in  () at /lib/libthr.so.3
#2  0x0000000801691be7 in wxMilliSleep(unsigned long) () at /usr/local/lib/libwx_baseu-3.1.so.6
#3  0x0000000803003b7a in ZombieReaperPOSIX::Entry() () at /usr/local/lib/codelite/liblibcodelite.so
#4  0x000000080168a249 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#5  0x00000008035c9132 in  () at /lib/libthr.so.3
#6  0x0000000000000000 in  ()

Thread 6 (LWP 100274 of process 36560):
#0  0x00000008035d79ec in  () at /lib/libthr.so.3
#1  0x00000008035cb040 in  () at /lib/libthr.so.3
#2  0x00000008035d4f4b in  () at /lib/libthr.so.3
#3  0x0000000803533222 in std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) () at /usr/lib/libc++.so.1
#4  0x00000008030fb834 in WorkerThread::Entry() () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x000000080168a249 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#6  0x00000008035c9132 in  () at /lib/libthr.so.3
#7  0x0000000000000000 in  ()

Thread 5 (LWP 100884 of process 36560):
#0  0x000000080379deba in _select () at /lib/libc.so.7
#1  0x00000008035cbe52 in  () at /lib/libthr.so.3
#2  0x0000000802fa73e9 in clSocketBase::SelectRead(long) () at /usr/local/lib/codelite/liblibcodelite.so
#3  0x0000000802fad4d5 in clSocketServer::WaitForNewConnectionRaw(long) () at /usr/local/lib/codelite/liblibcodelite.so
#4  0x0000000802fad475 in clSocketServer::WaitForNewConnection(long) () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x00000000006d3fda in  ()
#6  0x000000080168a249 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#7  0x00000008035c9132 in  () at /lib/libthr.so.3
#8  0x0000000000000000 in  ()

Thread 4 (LWP 100482 of process 36560):
#0  0x00000008035d79ec in  () at /lib/libthr.so.3
#1  0x00000008035cb040 in  () at /lib/libthr.so.3
#2  0x00000008035d4f4b in  () at /lib/libthr.so.3
#3  0x0000000803533222 in std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) () at /usr/lib/libc++.so.1
#4  0x00000008030fb834 in WorkerThread::Entry() () at /usr/local/lib/codelite/liblibcodelite.so
#5  0x000000080168a249 in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#6  0x00000008035c9132 in  () at /lib/libthr.so.3
#7  0x0000000000000000 in  ()

Thread 3 (LWP 101091 of process 36560 "gmain"):
#0  0x000000080374138a in _poll () at /lib/libc.so.7
#1  0x00000008035cbbc6 in  () at /lib/libthr.so.3
#2  0x000000080099a152 in  () at /usr/local/lib/libglib-2.0.so.0
#3  0x000000080099a256 in g_main_context_iteration () at /usr/local/lib/libglib-2.0.so.0
#4  0x000000080099bcf1 in  () at /usr/local/lib/libglib-2.0.so.0
#5  0x00000008009c51a8 in  () at /usr/local/lib/libglib-2.0.so.0
#6  0x00000008035c9132 in  () at /lib/libthr.so.3
#7  0x0000000000000000 in  ()

Thread 2 (LWP 101090 of process 36560 "pool-spawner"):
#0  0x00000008035d79ec in  () at /lib/libthr.so.3
#1  0x00000008035cb040 in  () at /lib/libthr.so.3
#2  0x00000008035d4f4b in  () at /lib/libthr.so.3
#3  0x00000008009eee85 in g_cond_wait () at /usr/local/lib/libglib-2.0.so.0
#4  0x0000000800965585 in  () at /usr/local/lib/libglib-2.0.so.0
#5  0x00000008009c5788 in  () at /usr/local/lib/libglib-2.0.so.0
#6  0x00000008009c51a8 in  () at /usr/local/lib/libglib-2.0.so.0
#7  0x00000008035c9132 in  () at /lib/libthr.so.3
#8  0x0000000000000000 in  ()

Thread 1 (LWP 101350 of process 36560):
#0  0x000000080379e7eb in memcpy () at /lib/libc.so.7
#1  0x00000008047f9415 in  () at /usr/local/lib/libpcre2-8.so.0
#2  0x00000008047e8d1f in pcre2_match_8 () at /usr/local/lib/libpcre2-8.so.0
#3  0x0000000801614c1e in  () at /usr/local/lib/libwx_baseu-3.1.so.6
#4  0x0000000801615cf7 in wxRegEx::Matches(wxString const&, int) const () at /usr/local/lib/libwx_baseu-3.1.so.6
#5  0x0000000802c1b7e2 in Compiler::IsMatchesPattern(Compiler::CmpInfoPattern&, Compiler::eSeverity, wxString const&, Compiler::PatternMatch*) const () at /usr/local/lib/codelite/libplugin.so
#6  0x0000000802c1ba14 in Compiler::Matches(wxString const&, Compiler::PatternMatch*) () at /usr/local/lib/codelite/libplugin.so
#7  0x0000000000433904 in  ()
#8  0x0000000000431eb9 in  ()
#9  0x00000008016acbb2 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /usr/local/lib/libwx_baseu-3.1.so.6
#10 0x00000008016ac8c1 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/local/lib/libwx_baseu-3.1.so.6
#11 0x00000008016ac756 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/local/lib/libwx_baseu-3.1.so.6
#12 0x00000008016ac3a8 in wxEvtHandler::ProcessPendingEvents() () at /usr/local/lib/libwx_baseu-3.1.so.6
#13 0x0000000801586c9f in wxAppConsoleBase::ProcessPendingEvents() () at /usr/local/lib/libwx_baseu-3.1.so.6
#14 0x0000000801bf9163 in wxApp::DoIdle() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#15 0x0000000801bfa313 in  () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#16 0x0000000800999e40 in g_main_context_dispatch () at /usr/local/lib/libglib-2.0.so.0
#17 0x000000080099a1aa in  () at /usr/local/lib/libglib-2.0.so.0
#18 0x000000080099a4fa in g_main_loop_run () at /usr/local/lib/libglib-2.0.so.0
#19 0x0000000801039c1b in gtk_main () at /usr/local/lib/libgtk-3.so.0
#20 0x0000000801c0ec35 in wxGUIEventLoop::DoRun() () at /usr/local/lib/libwx_gtk3u_core-3.1.so.6
#21 0x00000008015c4db2 in wxEventLoopBase::Run() () at /usr/local/lib/libwx_baseu-3.1.so.6
#22 0x00000008015862cc in wxAppConsoleBase::MainLoop() () at /usr/local/lib/libwx_baseu-3.1.so.6
#23 0x00000008015fb259 in wxEntry(int&, wchar_t**) () at /usr/local/lib/libwx_baseu-3.1.so.6
#24 0x0000000000474d00 in  ()
#25 0x0000000000423b55 in  ()
#26 0x00000008007cd000 in  ()
#27 0x0000000000000000 in  ()

sss123next avatar Jun 16 '22 13:06 sss123next

Looks like wxRegEx is not optimized. We could try and use different regex library (e.g. std::regex)

eranif avatar Jul 23 '22 09:07 eranif

but why this processing code running in gui thread ?

sss123next avatar Jul 23 '22 19:07 sss123next

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs (within 5 days). Thank you for your contributions.

stale[bot] avatar Oct 30 '22 14:10 stale[bot]