MantisBT - Doomseeker
View Issue Details
0003625DoomseekerUIpublic2019-03-31 22:182019-07-30 10:13
WubTheCaptain 
Pol M 
normaltweakalways
closedfixed 
Debian GNU/Linuxbuster/sid
1.2 
1.31.3 
0003625: Servers with lots of (big) WADs may take a long time to display the WADs column tooltip on server browser
We check the existence of WADs by filename from IWAD and PWAD paths in real-time every time we check the WADs column tooltip. I've perceived some lag and unreasonable variance in tooltip delay, depending on the size of the WAD list (or size of WAD files, unknown to OP which); large WAD lists tend to be slower than small ones by a noticeable delay.

My best guess is there's some 200–700 ms difference easily noticeable by the eye in common worst case scenarios. This is not ideal, for what's supposed to be creating a list from a fast file system access to read if a file exists.
Attempt to find or host some server with a big WAD list like this (I had everything downloaded):

Quote from [TSPG
Painkiller: Customized Complex Clusterfuck lexicon 122 + Epic2 - 3 lives]
/usr/bin/zandronum -connect 149.56.242.162:10678 -iwad /home/wub/.local/share/games/doom/DOOM2.WAD 
-file /home/wub/.local/share/games/doom/pwad/skulltag_content-3.0-beta01.pk3 -file /home/wub/.local/share/games/doom/pwad/bulletpuff_fix.wad 
-file /home/wub/.local/share/games/doom/pwad/epic2fix.wad -file /home/wub/.local/share/games/doom/pwad/lexicon-alpha-build-122.pk3 
-file /home/wub/.local/share/games/doom/pwad/complex-doom.v26a2.pk3 -file /home/wub/.local/share/games/doom/pwad/lca-v1.5.9.6.pk3 
-file /home/wub/.local/share/games/doom/pwad/lca-ark-1.7.5.pk3 -file /home/wub/.local/share/games/doom/pwad/randommons-v1.2.4-server.only.pk3 
-file /home/wub/.local/share/games/doom/pwad/complex-dust-v1.7.pk3 -file /home/wub/.local/share/games/doom/pwad/lca-djb-v4.3.13.pk3 
-file /home/wub/.local/share/games/doom/pwad/hem-custom-cf-v3.0.pk3 -file /home/wub/.local/share/games/doom/pwad/insanelca-custom-v1.2.1.pk3 
-file /home/wub/.local/share/games/doom/pwad/complex-dust-clusterfuck-v3.0.pk3 -file /home/wub/.local/share/games/doom/pwad/complex-doom-justammo.lca-rm-hem_v1.wad 
-file /home/wub/.local/share/games/doom/pwad/hpbar-v16b.pk3 -file /home/wub/.local/share/games/doom/pwad/complex-cf-patch-v3.0.pk3 
-file /home/wub/.local/share/games/doom/pwad/chaoslite-cf-v1.1.5.pk3 -file /home/wub/.local/share/games/doom/pwad/txs-v1.0early.pk3 
-file /home/wub/.local/share/games/doom/pwad/complex-clusterweaponsv1.4.4.1.pk3 -file /home/wub/.local/share/games/doom/pwad/kazumiscomplextouhoupack-alpha-ver.0.2.pk3 
-file /home/wub/.local/share/games/doom/pwad/nemesis_hellsmith001.pk3 -file /home/wub/.local/share/games/doom/pwad/cf_txs_cw_patch1.2.2_custom_complete.pk3 
-file /home/wub/.local/share/games/doom/pwad/complexlcazan3soundpatch.wad -file /home/wub/.local/share/games/doom/pwad/ComplexBrightmaps.pk3 
-file /home/wub/.local/share/games/doom/pwad/lexicon-miscdata-alpha-build-122.pk3 -file /home/wub/.local/share/games/doom/pwad/lexicon-hubmusfix122.wad 
-file /home/wub/.local/share/games/doom/pwad/lcademoexploit-v2.pk3 -file /home/wub/.local/share/games/doom/pwad/custom-skinpack1.0.pk3 
-file /home/wub/.local/share/games/doom/pwad/NewTextColours_260.pk3 -file /home/wub/.local/share/games/doom/pwad/evecdsp-v3c.wad 
+cl_hidecountry 0


Then find or host a minimalistic server with a small WAD list (at least one PWAD), such as this one:

Quote from Polygame Brutal Final Doom: Plutonia Experiment server
/usr/bin/zandronum -connect 195.148.126.162:10266 -iwad /home/wub/.local/share/games/doom/PLUTONIA.WAD 
-file /home/wub/.local/share/games/doom/pwad/brutalv20b.pk3 -file /home/wub/.local/share/games/doom/pwad/brutal19-tormaraw.pk3 
+cl_hidecountry 0


In the server browser window, on "WADs" column use mouse hover to display the tooltip of WADs running on the server. Compare the perceived latency of both servers until the tooltip is displayed with filenames (or "MISSING").

Doomseeker was configured to check the following file paths for IWAD and PWAD files, non-recursively:

  1. /home/wub/.local/share/games/doom
  2. /usr/share/games/doom
  3. /home/wub/.local/share/games/doom/pwad


All of these are on a fast solid-state disk (SSD). Path 0000003 has 2052 files in it, totalling 46 GB of downloaded WADs. (Unsure how much exaggerated this issue could be if the files resided on a spinning hard drive.)

Lastly, I'd like to demonstrate the disk access on the file system isn't slow; any filesystem caching is statistically insignificant as a best guess:

$ time ls -1 $(cat /tmp/foo.txt)
/home/wub/.local/share/games/doom/pwad/ComplexBrightmaps.pk3
/home/wub/.local/share/games/doom/pwad/NewTextColours_260.pk3
/home/wub/.local/share/games/doom/pwad/bulletpuff_fix.wad
/home/wub/.local/share/games/doom/pwad/cf_txs_cw_patch1.2.2_custom_complete.pk3
/home/wub/.local/share/games/doom/pwad/chaoslite-cf-v1.1.5.pk3
/home/wub/.local/share/games/doom/pwad/complex-cf-patch-v3.0.pk3
/home/wub/.local/share/games/doom/pwad/complex-clusterweaponsv1.4.4.1.pk3
/home/wub/.local/share/games/doom/pwad/complex-doom-justammo.lca-rm-hem_v1.wad
/home/wub/.local/share/games/doom/pwad/complex-doom.v26a2.pk3
/home/wub/.local/share/games/doom/pwad/complex-dust-clusterfuck-v3.0.pk3
/home/wub/.local/share/games/doom/pwad/complex-dust-v1.7.pk3
/home/wub/.local/share/games/doom/pwad/complexlcazan3soundpatch.wad
/home/wub/.local/share/games/doom/pwad/custom-skinpack1.0.pk3
/home/wub/.local/share/games/doom/pwad/epic2fix.wad
/home/wub/.local/share/games/doom/pwad/evecdsp-v3c.wad
/home/wub/.local/share/games/doom/pwad/hem-custom-cf-v3.0.pk3
/home/wub/.local/share/games/doom/pwad/hpbar-v16b.pk3
/home/wub/.local/share/games/doom/pwad/insanelca-custom-v1.2.1.pk3
/home/wub/.local/share/games/doom/pwad/kazumiscomplextouhoupack-alpha-ver.0.2.pk3
/home/wub/.local/share/games/doom/pwad/lca-ark-1.7.5.pk3
/home/wub/.local/share/games/doom/pwad/lca-djb-v4.3.13.pk3
/home/wub/.local/share/games/doom/pwad/lca-v1.5.9.6.pk3
/home/wub/.local/share/games/doom/pwad/lcademoexploit-v2.pk3
/home/wub/.local/share/games/doom/pwad/lexicon-alpha-build-122.pk3
/home/wub/.local/share/games/doom/pwad/lexicon-hubmusfix122.wad
/home/wub/.local/share/games/doom/pwad/lexicon-miscdata-alpha-build-122.pk3
/home/wub/.local/share/games/doom/pwad/nemesis_hellsmith001.pk3
/home/wub/.local/share/games/doom/pwad/randommons-v1.2.4-server.only.pk3
/home/wub/.local/share/games/doom/pwad/skulltag_content-3.0-beta01.pk3
/home/wub/.local/share/games/doom/pwad/txs-v1.0early.pk3
    0m00.00s real     0m00.00s user     0m00.00s system


$ time find /home/wub/.local/share/games/doom/pwad/ -type f
# ...
    0m00.01s real     0m00.00s user     0m00.01s system


$ find /home/wub/.local/share/games/doom/pwad/ -type f | wc -l
2051


$ du -sh /home/wub/.local/share/games/doom/pwad/
46G     /home/wub/.local/share/games/doom/pwad/
Qt 5 (5.11.3+dfsg1-1).
No tags attached.
parent of 0003638closed Pol M Cache files checked on PathFinder::findFile to allow for a more efficient multi-file search 
parent of 0003639closed Pol M Adding the path from Wadseeker's general settings to Doomseeker's File Paths hurts WAD tooltip performance 
parent of 0003640closed Pol M Server::wadPathFinder() adds the binary directory unnecessarily on non-Windows operating system, causes WAD tooltip slowdown 
log 0001-output-addr-0003625.log (7,676) 2019-04-30 18:35
https://zandronum.com/tracker/file_download.php?file_id=2468&type=bug
? doomseeker.ini (7,230) 2019-04-30 18:37
https://zandronum.com/tracker/file_download.php?file_id=2469&type=bug
Issue History
2019-03-31 22:18WubTheCaptainNew Issue
2019-03-31 22:33WubTheCaptainSummaryServers with lots of (big) WADs displayed in the server browser may take a long time to display the WADs column tooltip => Servers with lots of (big) WADs may take a long time to display the WADs column tooltip in server browser
2019-03-31 22:33WubTheCaptainSummaryServers with lots of (big) WADs may take a long time to display the WADs column tooltip in server browser => Servers with lots of (big) WADs may take a long time to display the WADs column tooltip on server browser
2019-04-01 20:37Pol MAssigned To => Pol M
2019-04-01 20:37Pol MStatusnew => assigned
2019-04-02 20:19WubTheCaptainPrioritynone => normal
2019-04-08 22:36Pol MNote Added: 0020481
2019-04-08 22:39Pol MNote Edited: 0020481bug_revision_view_page.php?bugnote_id=20481#r12467
2019-04-13 13:54Pol MNote Edited: 0020481bug_revision_view_page.php?bugnote_id=20481#r12473
2019-04-13 13:58Pol MStatusassigned => needs review
2019-04-14 08:07ZalewaNote Added: 0020490
2019-04-14 08:07ZalewaStatusneeds review => needs testing
2019-04-30 07:51WubTheCaptainTarget Version => 1.3
2019-04-30 08:15WubTheCaptainNote Added: 0020557
2019-04-30 08:15WubTheCaptainStatusneeds testing => needs review
2019-04-30 09:03WubTheCaptainNote Added: 0020558
2019-04-30 09:04WubTheCaptainNote Edited: 0020558bug_revision_view_page.php?bugnote_id=20558#r12505
2019-04-30 09:04WubTheCaptainNote Edited: 0020558bug_revision_view_page.php?bugnote_id=20558#r12506
2019-04-30 09:07WubTheCaptainNote Edited: 0020558bug_revision_view_page.php?bugnote_id=20558#r12507
2019-04-30 09:08WubTheCaptainNote Added: 0020559
2019-04-30 09:09WubTheCaptainOS => Debian GNU/Linux
2019-04-30 09:09WubTheCaptainOS Version => buster/sid
2019-04-30 09:10WubTheCaptainNote Added: 0020560
2019-04-30 09:11WubTheCaptainStatusneeds review => confirmed
2019-04-30 09:26WubTheCaptainNote Added: 0020561
2019-04-30 16:58Pol MNote Added: 0020562
2019-04-30 17:00Pol MStatusconfirmed => feedback
2019-04-30 17:07Pol MNote Edited: 0020562bug_revision_view_page.php?bugnote_id=20562#r12509
2019-04-30 18:35WubTheCaptainNote Added: 0020563
2019-04-30 18:35WubTheCaptainStatusfeedback => assigned
2019-04-30 18:35WubTheCaptainFile Added: 0001-output-addr-0003625.log
2019-04-30 18:36WubTheCaptainNote Edited: 0020563bug_revision_view_page.php?bugnote_id=20563#r12511
2019-04-30 18:37WubTheCaptainFile Added: doomseeker.ini
2019-04-30 18:37WubTheCaptainNote Added: 0020564
2019-04-30 19:03WubTheCaptainNote Added: 0020565
2019-04-30 19:06WubTheCaptainNote Added: 0020566
2019-04-30 19:07WubTheCaptainNote Added: 0020567
2019-04-30 19:33WubTheCaptainNote Added: 0020569
2019-04-30 19:35WubTheCaptainNote Edited: 0020569bug_revision_view_page.php?bugnote_id=20569#r12513
2019-04-30 19:44WubTheCaptainNote Added: 0020570
2019-04-30 19:44WubTheCaptainNote Edited: 0020570bug_revision_view_page.php?bugnote_id=20570#r12515
2019-04-30 19:44WubTheCaptainNote Edited: 0020570bug_revision_view_page.php?bugnote_id=20570#r12516
2019-04-30 19:48WubTheCaptainNote Edited: 0020570bug_revision_view_page.php?bugnote_id=20570#r12517
2019-04-30 19:48Pol MNote Added: 0020571
2019-04-30 19:51Pol MNote Added: 0020572
2019-04-30 19:54WubTheCaptainNote Edited: 0020570bug_revision_view_page.php?bugnote_id=20570#r12518
2019-04-30 19:57WubTheCaptainNote Added: 0020573
2019-04-30 19:59WubTheCaptainNote Edited: 0020573bug_revision_view_page.php?bugnote_id=20573#r12520
2019-04-30 20:05WubTheCaptainNote Added: 0020574
2019-04-30 20:10WubTheCaptainNote Added: 0020575
2019-04-30 20:25Pol MNote Added: 0020577
2019-04-30 20:39Pol MRelationship addedparent of 0003638
2019-04-30 20:43WubTheCaptainNote Added: 0020578
2019-04-30 20:44WubTheCaptainStatusassigned => needs testing
2019-04-30 20:45WubTheCaptainNote Edited: 0020578bug_revision_view_page.php?bugnote_id=20578#r12522
2019-04-30 20:46WubTheCaptainNote Edited: 0020578bug_revision_view_page.php?bugnote_id=20578#r12523
2019-04-30 20:50WubTheCaptainFixed in Version => 1.3
2019-04-30 21:12WubTheCaptainRelationship addedparent of 0003639
2019-04-30 21:22WubTheCaptainRelationship addedparent of 0003640
2019-07-22 09:16WubTheCaptainNote Added: 0020905
2019-07-22 09:16WubTheCaptainStatusneeds testing => resolved
2019-07-22 09:16WubTheCaptainResolutionopen => fixed
2019-07-30 10:13WubTheCaptainStatusresolved => closed

Notes
(0020481)
Pol M   
2019-04-08 22:36   
(edited on: 2019-04-13 13:54)
Today I've done quite a bit of tinkering and I've found that Server::wadPathFinder() adds the binary dir. In windows this makes sense, in linux, not at all (/usr/bin is a horrible place for wads).
Here's the difference between having said directories and not having them:
doc

pr

(0020490)
Zalewa   
2019-04-14 08:07   
pr merged
(0020557)
WubTheCaptain   
2019-04-30 08:15   
I don't think this is still fully resolved yet. I can hardly notice any big difference, the issue in described in OP still persists (using an SSD).
I saw some code somewhere which handled generating the WAD list, and it didn't seem all so efficient. I forgot where that was.
There's lots of things going on in pathfinder adding delays:
  1. Aliases
  2. Case insensitive filesystem search
  3. Case sensitive filesystem search
  4. Recursive search
  5. etc.

The code is kind of difficult to follow in my experience. Not sure if PathFind::findGameFile plays any role here and if it's recursive or not.
Please make sure to test with ~/.local/share/games/doom and ~/.local/share/games/doom/pwad directories to reproduce the environment.
(0020558)
WubTheCaptain   
2019-04-30 09:03   
(edited on: 2019-04-30 09:07)
PathFind::findGameFile seems to be a culprit just as I guessed?

If I set Zandronum binary to /tmp/zandronum (doesn't exist), the WAD tooltip doesn't lag with "Tell me where my WADs are located" enabled.

If I set it to /usr/bin/zandronum, the tooltip delay is noticeable again.

A short list of WAD aliases (defaults + 1) don't seem to make much of a difference to the tooltip delay.

(0020559)
WubTheCaptain   
2019-04-30 09:08   
And just fyi, the tooltips are instant regardless of anything with "Tell me where my WADs are located" disabled (as expected and hinted by the tooltip of that option).
(0020560)
WubTheCaptain   
2019-04-30 09:10   
Quote from WubTheCaptain
Please make sure to test with ~/.local/share/games/doom and ~/.local/share/games/doom/pwad directories to reproduce the environment.


I also didn't find this to play a significant role, only a hardly noticeable change if anything.
(0020561)
WubTheCaptain   
2019-04-30 09:26   
More testing:

  • /usr/bin/zandronum.doesnotexist doesn't lag
  • /usr/bin/zandronum lags
(0020562)
Pol M   
2019-04-30 16:58   
(edited on: 2019-04-30 17:07)
Okay, I've tested for about half an hour to see what could be the problem, but I'm unable to reproduce what you're saying:
I'm getting times in my hard drive (Not an SSD, it is slower) of around 20-25ms on "[TSPG] Britsteel: Complex Infinite Clusterfuck (No Slaughtermaps Allowed) Updated!" and moving my mouse on the pwads column is butter-smooth.

Changing the Zandronum path causes absolutely no effect in the paths checked, and the performance is the same.

I've checked if the problem could be caused by a testing server, but it does not seem to be the case, because while those are a little slower because we check the testing directory (we should), These servers are rather small and simply give me around 6-12ms

I've also checked the difference between having the pwads downloaded or without them (I substituted my main wad directory with a dir containing random files) and the results are basically the same.

Maybe you could help me here with some output in your machine? (you can censor out things if you feel like, at least keep the relevant info)
Commit
To get the source you can:

hg clonehttps://Pol_M@bitbucket.org/Pol_M/doomseeker [^]
cd doomseeker
hg update output-addr-0003625


(0020563)
WubTheCaptain   
2019-04-30 18:35   
(edited on: 2019-04-30 18:36)
I'm attaching 0001-output-addr-0003625.log, around 109 ms consistent on my setup (SSD) from one attempt of "[TSPG] Britsteel: Complex Infinite Clusterfuck (No Slaughtermaps Allowed) Updated!". It's still a lot higher than your 25ms.

I still notice the issue significantly over 100ms, perhaps due to painting/drawing time.

(0020564)
WubTheCaptain   
2019-04-30 18:37   
doomseeker.ini config file attached as well, matching the config used to create 0001-output-addr-0003625.log.
(0020565)
WubTheCaptain   
2019-04-30 19:03   
Quote from WubTheCaptain
I still notice the issue significantly over 100ms, perhaps due to painting/drawing time.


Okay. When the mouse cursor hovers over the tooltip (often accidentally), there's a delay before that tooltip is closed. Only then on next cursor movement the new tooltip is created. If the next server and its WAD column happens to be under the tooltip, that can be perceived as "lag" (because the tooltip position is static and doesn't move with the cursor).

The server browser needs to finish drawing the previous tooltip(s) which can take 100 ms+ before it can start drawing the one under your cursor (in reverse of above, cursor going up and tooltip is below), if you moved the cursor fast enough.

I have graphics "tearing". Free AMDGPU drivers create delay, sometimes in a frame multiple tooltips can overlap on top of each other when done in quick succession. Can also be perceived as lag.

I can definitely understand you can't reproduce this issue well with 25 ms draw times, but with > 100 ms to paint just one tooltip the problems stacks up. It could get a lot worse too.

Oddly enough, this issue is a lot more pronounced on drdteam.debian.org 1.2 release builds on Debian GNU/Linux than my local source builds with or without your patches.
(0020566)
WubTheCaptain   
2019-04-30 19:06   
Quote from Pol M
Changing the Zandronum path causes absolutely no effect in the paths checked, and the performance is the same.


Very odd indeed, I can only reproduce this issue with DRDTeam's 1.2 release builds for Debian. I don't have the issue with local source builds.
(0020567)
WubTheCaptain   
2019-04-30 19:07   
Quote from WubTheCaptain
I'm attaching 0001-output-addr-0003625.log, around 109 ms consistent on my setup (SSD) from one attempt of "[TSPG] Britsteel: Complex Infinite Clusterfuck (No Slaughtermaps Allowed) Updated!". It's still a lot higher than your 25ms.

FYI, short WAD lists were as low as 7 ms for tooltip draw. 0–1 ms with WAD paths disabled, of course.
(0020569)
WubTheCaptain   
2019-04-30 19:33   
(edited on: 2019-04-30 19:35)
"[TSPG] Painkiller: Legendary's Complex Clusterfuck Server" has upwards of 130 ms tooltip delay on my setup. I'd recommending using that as a benchmark.

Quote from Show join command line
/usr/bin/zandronum -connect 149.56.242.162:10704 -iwad /home/wub/.local/share/games/doom/DOOM2.WAD

-file /home/wub/.local/share/games/doom/pwad/skulltag_content-3.0-beta01.pk3
-file /home/wub/.local/share/games/doom/pwad/bulletpuff_fix.wad
-file /home/wub/.local/share/games/doom/pwad/compendium-v0.94-zan.pk3
-file /home/wub/.local/share/games/doom/pwad/unrealtex.pk3
-file /home/wub/.local/share/games/doom/pwad/mapsofchaos-okv2.wad
-file /home/wub/.local/share/games/doom/pwad/18-in-1v2-zandro3v2.pk3
-file /home/wub/.local/share/games/doom/pwad/zandroskins_v04.pk3
-file /home/wub/.local/share/games/doom/pwad/dustskins.pk3
-file /home/wub/.local/share/games/doom/pwad/complex-doom.v26a2.pk3
-file /home/wub/.local/share/games/doom/pwad/lca-v1.5.9.6.pk3
-file /home/wub/.local/share/games/doom/pwad/lca-ark-1.8.4.pk3
-file /home/wub/.local/share/games/doom/pwad/randommons-v1.2.4-server.only.pk3
-file /home/wub/.local/share/games/doom/pwad/complex-dust-v1.7.pk3
-file /home/wub/.local/share/games/doom/pwad/lca-djb-v4.3.12.pk3
-file /home/wub/.local/share/games/doom/pwad/insanelca-custom-v1.2-cf.1.pk3
-file /home/wub/.local/share/games/doom/pwad/hem-custom-cf-v1.30.pk3
-file /home/wub/.local/share/games/doom/pwad/complex-dust-clusterfuck-v2.30.pk3
-file /home/wub/.local/share/games/doom/pwad/complex-cf-patch-v2.30.pk3
-file /home/wub/.local/share/games/doom/pwad/rawanger-v1.4.pk3
-file /home/wub/.local/share/games/doom/pwad/cch1.15.pk3
-file /home/wub/.local/share/games/doom/pwad/xtraweapons-v2.3.pk3
-file /home/wub/.local/share/games/doom/pwad/complexlcazan3soundpatch.wad
-file /home/wub/.local/share/games/doom/pwad/ComplexBrightmaps.pk3
-file /home/wub/.local/share/games/doom/pwad/hpbar-v16.pk3
-file /home/wub/.local/share/games/doom/pwad/tntremixesv2.wad
-file /home/wub/.local/share/games/doom/pwad/trueclusterfuck-v2.30.wad
-file '/home/wub/.local/share/games/doom/pwad/cfspawners_fix_v2(nomoreperformanceissues).pk3'
-file /home/wub/.local/share/games/doom/pwad/NewTextColours_260.pk3
-file /home/wub/.local/share/games/doom/pwad/cf_fixkeyconfig.pk3


(0020570)
WubTheCaptain   
2019-04-30 19:44   
(edited on: 2019-04-30 19:54)
I also have to say I'm not entirely sure what determines the tooltip latency here.
  • OP's list is 1.3 GB and 30 PWADs @ 108 ms.
  • Legendary's Complex Clusterfuck Server is 1.1 GB and 28 PWADs @ 130 ms.

Surely one would assume more files or larger total amount of files would increase the tooltip draw delay, but apparently not always! Legendary's Complex Clusterfuck Server also gets a lower mean value for the size of WADs per file.

(0020571)
Pol M   
2019-04-30 19:48   
Quote from Wub

Very odd indeed, I can only reproduce this issue with DRDTeam's 1.2 release builds for Debian. I don't have the issue with local source builds.

This is due to the fact that commit 1 prevents Doomseeker from looking at the entirety of the exec path, aka /usr/bin in most cases. 1.2 does not include this commit. This caused 1.2 to take about 25 times more time (in my machine) to draw the tooltip (you can read more in the doc linked in comment 1).

Quote from Wub

I still notice the issue significantly over 100ms, perhaps due to painting/drawing time.

We pretty much cannot do anything in that aspect :/

Quote from Wub

with > 100 ms to paint just one tooltip the problems stacks up.

Originally with this ticket I played around with the idea of caching the files of directories already explored, allowing us to cut a lot of time in certain cases. Maybe I'll explore the concept further.
(0020572)
Pol M   
2019-04-30 19:51   
Quote from Wub

Surely one would assume more files or larger total amount of files would increase the tooltip draw delay, but apparently not always! Legendary's Complex Clusterfuck Server also gets a lower mean value for the size of WADs per file.

My best guess here is that the speed is also highly determined by the amount of wads you have stored right now. How many wads do you have?
(0020573)
WubTheCaptain   
2019-04-30 19:57   
(edited on: 2019-04-30 19:59)
Quote from Pol M
My best guess here is that the speed is also highly determined by the amount of wads you have stored right now. How many wads do you have?


Quoting OP:

Quote
$ find /home/wub/.local/share/games/doom/pwad/ -type f | wc -l
2051


$ du -sh /home/wub/.local/share/games/doom/pwad/
46G     /home/wub/.local/share/games/doom/pwad/


A bit more up-to-date:

$ find /home/wub/.local/share/games/doom/pwad/ -type f | wc -l
2076
$ du -sh /home/wub/.local/share/games/doom/pwad/
48G     /home/wub/.local/share/games/doom/pwad/


But no, the results are different (108 ms vs 130 ms) with the same amount of WADs. Which is odd.

(0020574)
WubTheCaptain   
2019-04-30 20:05   
Interesting observation: WADs marked as MISSING take longer according to this benchmark to draw the tooltip. Downloading just few more WADs dropped the tooltip time of "Clusterfuck lexicon 122" to 97 ms (down from 108 ms), and "Legendary's Complex Clusterfuck Server" to 90–100 ms (down from 130 ms).
(0020575)
WubTheCaptain   
2019-04-30 20:10   
Quote from WubTheCaptain
Interesting observation: WADs marked as MISSING take longer according to this benchmark to draw the tooltip. Downloading just few more WADs dropped the tooltip time of "Clusterfuck lexicon 122" to 97 ms (down from 108 ms), and "Legendary's Complex Clusterfuck Server" to 90–100 ms (down from 130 ms).


And in reverse, having all WADs missing for "Legendary's Complex Clusterfuck Server" increased the tooltip delay to 173–182 ms.
(0020577)
Pol M   
2019-04-30 20:25   
MISSING wads cause the searcher to iterate through all the dirs, while in the other case the file will be located in the first few dirs, making it faster.
(0020578)
WubTheCaptain   
2019-04-30 20:43   
(edited on: 2019-04-30 20:46)
Right. So by simply swapping my first WAD path to /home/wub/.local/share/games/doom/pwad and having all WADs downloaded, I dropped the tooltip delay of "Legendary's Complex Clusterfuck Server" to 70 ms. 😕

Still unsure what's up with these double dirs:

[20:34:23] Dirs:
/home/wub/.local/share/games/doom/pwad
/usr/share/games/doom
/home/wub/.local/share/games/doom
/home/wub/.local/share/games/doom/pwad
/usr/local/share/games/doom/
/usr/share/games/doom/


I get it, all this time I've been using /home/wub/.local/share/games/doom/pwad unnecessarily: "Doomseeker will automatically add this path to the file search paths." in Wadseeker's general settings.

I will have to assume the duplicate /usr/share/games/doom comes from the hardcoded list in Wadseeker (PathFinder::genericPathFinder and/or DClass<WadPathFinder> defaultPaths()).

Thanks for the help and insights, Pol M!

(0020905)
WubTheCaptain   
2019-07-22 09:16   
Resolving per 0003638:0020904 and child issues.