Anonymous | Login | Signup for a new account | 2024-04-17 21:18 UTC |
My View | View Issues | Change Log | Roadmap | Doomseeker Issue Support Ranking | Rules | My Account |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0003625 | Doomseeker | UI | public | 2019-03-31 22:18 | 2019-07-30 10:13 | ||||
Reporter | WubTheCaptain | ||||||||
Assigned To | Pol M | ||||||||
Priority | normal | Severity | tweak | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | Debian GNU/Linux | OS Version | buster/sid | |||||
Product Version | 1.2 | ||||||||
Target Version | 1.3 | Fixed in Version | 1.3 | ||||||
Summary | 0003625: Servers with lots of (big) WADs may take a long time to display the WADs column tooltip on server browser | ||||||||
Description | 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. | ||||||||
Steps To Reproduce | Attempt to find or host some server with a big WAD list like this (I had everything downloaded):Quote from [TSPG 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:
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/ | ||||||||
Additional Information | Qt 5 (5.11.3+dfsg1-1). | ||||||||
Attached Files | 0001-output-addr-0003625.log [^] (7,676 bytes) 2019-04-30 18:35 doomseeker.ini [^] (7,230 bytes) 2019-04-30 18:37 | ||||||||
Relationships | ||||||||||||||||
|
Notes | |
(0020481) Pol M (developer) 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 (developer) 2019-04-14 08:07 |
pr merged |
(0020557) WubTheCaptain (reporter) 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:
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 (reporter) 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 (reporter) 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 (reporter) 2019-04-30 09:10 |
Quote from WubTheCaptain I also didn't find this to play a significant role, only a hardly noticeable change if anything. |
(0020561) WubTheCaptain (reporter) 2019-04-30 09:26 |
More testing:
|
(0020562) Pol M (developer) 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:
|
(0020563) WubTheCaptain (reporter) 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 (reporter) 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 (reporter) 2019-04-30 19:03 |
Quote from WubTheCaptain 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 (reporter) 2019-04-30 19:06 |
Quote from Pol M 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 (reporter) 2019-04-30 19:07 |
Quote from WubTheCaptain FYI, short WAD lists were as low as 7 ms for tooltip draw. 0–1 ms with WAD paths disabled, of course. |
(0020569) WubTheCaptain (reporter) 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 (reporter) 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.
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 (developer) 2019-04-30 19:48 |
Quote from Wub 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 We pretty much cannot do anything in that aspect :/ Quote from Wub 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 (developer) 2019-04-30 19:51 |
Quote from Wub 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 (reporter) 2019-04-30 19:57 edited on: 2019-04-30 19:59 |
Quote from Pol M Quoting OP: Quote$ find /home/wub/.local/share/games/doom/pwad/ -type f | wc -l 2051 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 (reporter) 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 (reporter) 2019-04-30 20:10 |
Quote from WubTheCaptain And in reverse, having all WADs missing for "Legendary's Complex Clusterfuck Server" increased the tooltip delay to 173–182 ms. |
(0020577) Pol M (developer) 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 (reporter) 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 (reporter) 2019-07-22 09:16 |
Resolving per 0003638:0020904 and child issues. |
This issue is already marked as resolved. If you feel that is not the case, please reopen it and explain why. |
|
Supporters: | No one explicitly supports this issue yet. |
Opponents: | No one explicitly opposes this issue yet. |
Issue History | |||
Date Modified | Username | Field | Change |
2019-03-31 22:18 | WubTheCaptain | New Issue | |
2019-03-31 22:33 | WubTheCaptain | Summary | Servers 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:33 | WubTheCaptain | Summary | Servers 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:37 | Pol M | Assigned To | => Pol M |
2019-04-01 20:37 | Pol M | Status | new => assigned |
2019-04-02 20:19 | WubTheCaptain | Priority | none => normal |
2019-04-08 22:36 | Pol M | Note Added: 0020481 | |
2019-04-08 22:39 | Pol M | Note Edited: 0020481 | View Revisions |
2019-04-13 13:54 | Pol M | Note Edited: 0020481 | View Revisions |
2019-04-13 13:58 | Pol M | Status | assigned => needs review |
2019-04-14 08:07 | Zalewa | Note Added: 0020490 | |
2019-04-14 08:07 | Zalewa | Status | needs review => needs testing |
2019-04-30 07:51 | WubTheCaptain | Target Version | => 1.3 |
2019-04-30 08:15 | WubTheCaptain | Note Added: 0020557 | |
2019-04-30 08:15 | WubTheCaptain | Status | needs testing => needs review |
2019-04-30 09:03 | WubTheCaptain | Note Added: 0020558 | |
2019-04-30 09:04 | WubTheCaptain | Note Edited: 0020558 | View Revisions |
2019-04-30 09:04 | WubTheCaptain | Note Edited: 0020558 | View Revisions |
2019-04-30 09:07 | WubTheCaptain | Note Edited: 0020558 | View Revisions |
2019-04-30 09:08 | WubTheCaptain | Note Added: 0020559 | |
2019-04-30 09:09 | WubTheCaptain | OS | => Debian GNU/Linux |
2019-04-30 09:09 | WubTheCaptain | OS Version | => buster/sid |
2019-04-30 09:10 | WubTheCaptain | Note Added: 0020560 | |
2019-04-30 09:11 | WubTheCaptain | Status | needs review => confirmed |
2019-04-30 09:26 | WubTheCaptain | Note Added: 0020561 | |
2019-04-30 16:58 | Pol M | Note Added: 0020562 | |
2019-04-30 17:00 | Pol M | Status | confirmed => feedback |
2019-04-30 17:07 | Pol M | Note Edited: 0020562 | View Revisions |
2019-04-30 18:35 | WubTheCaptain | Note Added: 0020563 | |
2019-04-30 18:35 | WubTheCaptain | Status | feedback => assigned |
2019-04-30 18:35 | WubTheCaptain | File Added: 0001-output-addr-0003625.log | |
2019-04-30 18:36 | WubTheCaptain | Note Edited: 0020563 | View Revisions |
2019-04-30 18:37 | WubTheCaptain | File Added: doomseeker.ini | |
2019-04-30 18:37 | WubTheCaptain | Note Added: 0020564 | |
2019-04-30 19:03 | WubTheCaptain | Note Added: 0020565 | |
2019-04-30 19:06 | WubTheCaptain | Note Added: 0020566 | |
2019-04-30 19:07 | WubTheCaptain | Note Added: 0020567 | |
2019-04-30 19:33 | WubTheCaptain | Note Added: 0020569 | |
2019-04-30 19:35 | WubTheCaptain | Note Edited: 0020569 | View Revisions |
2019-04-30 19:44 | WubTheCaptain | Note Added: 0020570 | |
2019-04-30 19:44 | WubTheCaptain | Note Edited: 0020570 | View Revisions |
2019-04-30 19:44 | WubTheCaptain | Note Edited: 0020570 | View Revisions |
2019-04-30 19:48 | WubTheCaptain | Note Edited: 0020570 | View Revisions |
2019-04-30 19:48 | Pol M | Note Added: 0020571 | |
2019-04-30 19:51 | Pol M | Note Added: 0020572 | |
2019-04-30 19:54 | WubTheCaptain | Note Edited: 0020570 | View Revisions |
2019-04-30 19:57 | WubTheCaptain | Note Added: 0020573 | |
2019-04-30 19:59 | WubTheCaptain | Note Edited: 0020573 | View Revisions |
2019-04-30 20:05 | WubTheCaptain | Note Added: 0020574 | |
2019-04-30 20:10 | WubTheCaptain | Note Added: 0020575 | |
2019-04-30 20:25 | Pol M | Note Added: 0020577 | |
2019-04-30 20:39 | Pol M | Relationship added | parent of 0003638 |
2019-04-30 20:43 | WubTheCaptain | Note Added: 0020578 | |
2019-04-30 20:44 | WubTheCaptain | Status | assigned => needs testing |
2019-04-30 20:45 | WubTheCaptain | Note Edited: 0020578 | View Revisions |
2019-04-30 20:46 | WubTheCaptain | Note Edited: 0020578 | View Revisions |
2019-04-30 20:50 | WubTheCaptain | Fixed in Version | => 1.3 |
2019-04-30 21:12 | WubTheCaptain | Relationship added | parent of 0003639 |
2019-04-30 21:22 | WubTheCaptain | Relationship added | parent of 0003640 |
2019-07-22 09:16 | WubTheCaptain | Note Added: 0020905 | |
2019-07-22 09:16 | WubTheCaptain | Status | needs testing => resolved |
2019-07-22 09:16 | WubTheCaptain | Resolution | open => fixed |
2019-07-30 10:13 | WubTheCaptain | Status | resolved => closed |
Copyright © 2000 - 2024 MantisBT Team |