Author Topic: Find in Files doesn't disappear in large project blocking use while search is on  (Read 880 times)

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
On support look for find_dialog_doesnt_disappear.tar.xz

Find in Files doesn't disappear in large project blocking after search is triggered. As a result I can't use SlickEdit while a search is ongoing.

See the README files and the video recordings in the package.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 6271
  • Hero Points: 484
This performance problem has been fixed for 26.0.1 (joe porrka found this first). This issue has to do with exclude processing being too slow. If you remove the excludes, you won't see this performance problem.

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
Thanks Clark! Is there a timeline for when 26.0.1 is released?

I'd be interested in getting an installer before the release so I can use this fix as well as the smart open fix, just like you did for the build window output issue I reported.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 6271
  • Hero Points: 484
Our plan is to get 26.0.1 out very soon. Either this week or next week.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 6271
  • Hero Points: 484
Download 26.0.1 and give it a try. It should be much better. For v27 we plan to put the exclusion code on a thread where possible.

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
It still seems like a problem to me with 26.0.1 on Linux x64.

See attached screenshot, where I wrote:

After 1 min, 4 seconds Find in Files window went blank (but didn't disappear) when search results started getting printed.

To get rid of it I had to Ctrl-F again and then click the x. If I click 'x' on the blank window it doesn't disappear, have to get it back with Ctrl-F and then click the 'x'

When I make the excludes edit box blank, it still took 1 min 7 seconds before search started and I get a blank "Find in Files" when search results start getting shown

My search is for '*' in all files in my project (16462 files), with "look in subfolders", "regular expressions Perl" and "List current context" checked.

When I remove the checks on regex, "list current context" and "look in subfolders", same problem.

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 6271
  • Hero Points: 484
Here's how long it takes for SlickEdit to process your excludes on my machine

26.0.1: 5.8 seconds
26.0.0: 3 minutes 8 seconds

How long does 26.0.0 take for you? It should be quite a bit slower.

Maybe your machine is much slower than mine. This is processor intensive (not disk intensive).

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
The numbers I gave in my last post are with my proprietary project. I will remeasure with the Qt project I submitted on 26.0.0 and 26.0.1 and get back to you. I will also remeasure with my proprietary project and 26.0.0

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
Times measure from clicking "Find" until dialog disappears

I did these measurements one after the other:

Proprietary project, no excludes, 26.0.0.6a: 47 seconds
Proprietary project, no excludes, 26.0.1.0: 59 seconds
Proprietary project, with excludes of <Default Excludes>;*.log, 26.0.1.0: 53 seconds
Proprietary project, with excludes of <Default Excludes>;*.log, 26.0.0.6a: 1 minute 9 seconds
Proprietary project, with excludes of <Default Excludes>;*.log, 25.0.2.0: 38 seconds, actual search after dialog disappears seems to take longer though, didn't measure this, (tagging in background in parallel due to SE version switch)
Proprietary project, no excludes, 25.0.2.0: 54 seconds, actual search after dialog disappears seems to take longer though, didn't measure this, (tagging in background in parallel due to SE version switch)

So got worse with 26.0.1 and no excludes vs 26.0.0. 25.0.2.0 had best time for dialog to disappear, but search itself seems to take longer (but at least I can use SE during this search).

Will move to the Qt project I provided you and do these measurements on 26.0.0, 26.0.1 and 25.0.2.

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
I have 8 cpu cores with these specs:

vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
stepping        : 2
microcode       : 0x44
cpu MHz         : 2297.339
cache size      : 46080 KB

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
With the qt5 project searching for "fork" with "Match case" and "Whole word" and:

Exclude Files box is EMPTY

With 26.0.1 it took 5 minutes 20 seconds for find in files dialog to disappear.

And the "Exclude files" box is blank, no excludes. Why?
« Last Edit: December 14, 2021, 04:42:16 pm by rowbearto »

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
Maybe you should try using my user.cfg.xml?

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
I tried to see what SE is doing during this time, so I attached with gdb and took 2 back traces shown below.

Looks like it is writing to some debug file?

#3  0x0000000001fca31b in cmDebugWriter_DebugFile::writeFile(cmROStringT<char, 1, 30> const&, cmDebugFlags, int, cmROStringT<char, 1, 30> const&, char const*, unsigned long long) ()

Code: [Select]
(gdb) bt
#0  0x00007fdcd6ba777d in open64 () from /lib64/libc.so.6
#1  0x00007fdcd6b33490 in __GI__IO_file_fopen () from /lib64/libc.so.6
#2  0x00007fdcd6b26c14 in __fopen_internal () from /lib64/libc.so.6
#3  0x0000000001fca31b in cmDebugWriter_DebugFile::writeFile(cmROStringT<char, 1, 30> const&, cmDebugFlags, int, cmROStringT<char, 1, 30> const&, char const*, unsigned long long) ()
#4  0x0000000001fcdb32 in cmDebug::~cmDebug() ()
#5  0x0000000001fd4ac7 in dfprintf ()
#6  0x00000000007d0e81 in pdsay_op() ()
#7  0x00000000007af8f1 in pmethod_op() ()
#8  0x0000000000603552 in run_proc(int) ()
#9  0x0000000000603899 in run_proc_immediate2(m_s*, int, int, VSARGTYPE const*, int, int) [clone .isra.423] ()
#10 0x0000000000603a67 in run_proc_immediate(int, int, VSARGTYPE const*, int, int) ()
#11 0x0000000000838813 in se_call_event(filewindow_t*, unsigned int, int, int, VSARGTYPE const*, int) ()
#12 0x00007fdcddb0cc03 in QObject::event(QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#13 0x00007fdcddeb986c in QWidget::event(QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#14 0x00007fdcdde6adac in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#15 0x00007fdcdde71523 in QApplication::notify(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#16 0x00007fdcddaf5a7d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#17 0x00007fdcddaf8695 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#18 0x00007fdcddb21633 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#19 0x00007fdcd63c4099 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#20 0x00007fdcd63c43f8 in ?? () from /lib64/libglib-2.0.so.0
#21 0x00007fdcd63c44ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#22 0x00007fdcddb21784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#23 0x00007fdcddf06d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#24 0x00007fdcddaf424f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#25 0x00007fdcddaf4555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#26 0x00007fdcddaf9599 in QCoreApplication::exec() ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#27 0x00000000004c26fc in vmain(int, char**) ()
#28 0x0000000001b46599 in xmain ()
#29 0x0000000000467a69 in main ()

Code: [Select]
gdb) bt
#0  0x00007fdcd6ba777d in open64 () from /lib64/libc.so.6
#1  0x00007fdcd6b33490 in __GI__IO_file_fopen () from /lib64/libc.so.6
#2  0x00007fdcd6b26c14 in __fopen_internal () from /lib64/libc.so.6
#3  0x0000000001fca31b in cmDebugWriter_DebugFile::writeFile(cmROStringT<char, 1, 30> const&, cmDebugFlags, int, cmROStringT<char, 1, 30> const&, char const*, unsigned long long) ()
#4  0x0000000001fcdb32 in cmDebug::~cmDebug() ()
#5  0x0000000001fd4ac7 in dfprintf ()
#6  0x00000000007d0e81 in pdsay_op() ()
#7  0x00000000007af8f1 in pmethod_op() ()
#8  0x0000000000603552 in run_proc(int) ()
#9  0x0000000000603899 in run_proc_immediate2(m_s*, int, int, VSARGTYPE const*, int, int) [clone .isra.423] ()
#10 0x0000000000603a67 in run_proc_immediate(int, int, VSARGTYPE const*, int, int) ()
#11 0x0000000000838813 in se_call_event(filewindow_t*, unsigned int, int, int, VSARGTYPE const*, int) ()
#12 0x00007fdcddb0cc03 in QObject::event(QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#13 0x00007fdcddeb986c in QWidget::event(QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#14 0x00007fdcdde6adac in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#15 0x00007fdcdde71523 in QApplication::notify(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#16 0x00007fdcddaf5a7d in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#17 0x00007fdcddaf8695 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#18 0x00007fdcddb21633 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#19 0x00007fdcd63c4099 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#20 0x00007fdcd63c43f8 in ?? () from /lib64/libglib-2.0.so.0
#21 0x00007fdcd63c44ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#22 0x00007fdcddb21784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#23 0x00007fdcddf06d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#24 0x00007fdcddaf424f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#25 0x00007fdcddaf4555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#26 0x00007fdcddaf9599 in QCoreApplication::exec() ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#27 0x00000000004c26fc in vmain(int, char**) ()
#28 0x0000000001b46599 in xmain ()
#29 0x0000000000467a69 in main ()

Clark

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 6271
  • Hero Points: 484
Maybe you should try using my user.cfg.xml?
I used your user.cfg.xml

rowbearto

  • Senior Community Member
  • Posts: 2162
  • Hero Points: 132
IGNORE THIS POST

The stack dumps I showed before were after Find in Files disappeared.

Here are stack dumps while find in files still there:

Code: [Select]
(gdb) bt
#0  0x00007fdcd6babc3d in poll () from /lib64/libc.so.6
#1  0x00007fdcd63c437c in ?? () from /lib64/libglib-2.0.so.0
#2  0x00007fdcd63c44ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fdcddb21784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#4  0x00007fdcddf06d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#5  0x00007fdcddaf424f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#6  0x00007fdcddaf4555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#7  0x00007fdcddaf9599 in QCoreApplication::exec() ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#8  0x00000000004c26fc in vmain(int, char**) ()
#9  0x0000000001b46599 in xmain ()
#10 0x0000000000467a69 in main ()
(gdb) cont

Code: [Select]
gdb) bt
#0  0x00007fdcd6babc3d in poll () from /lib64/libc.so.6
#1  0x00007fdcd63c437c in ?? () from /lib64/libglib-2.0.so.0
#2  0x00007fdcd63c44ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007fdcddb21784 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#4  0x00007fdcddf06d66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtGui.so.4
#5  0x00007fdcddaf424f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#6  0x00007fdcddaf4555 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#7  0x00007fdcddaf9599 in QCoreApplication::exec() ()
   from /home/rbresali/pen/slickedit/se_26000100_linux64/bin/libQtCore.so.4
#8  0x00000000004c26fc in vmain(int, char**) ()
#9  0x0000000001b46599 in xmain ()
#10 0x0000000000467a69 in main ()
« Last Edit: December 14, 2021, 05:00:12 pm by rowbearto »