Syndicator

Syndicator

2M Downloads

[question] Scan Tooltips slowdown (mailbox)

tflo opened this issue · 74 comments

commented

This is not directly related to Syndicator tooltips, but it involves them as well.

But Syndicator is not the reason I am asking here, rather I have learned that you are very familiar with the API and are a very good and experienced coder.

IIRC, the problem started with the revamp of the tooltip API, around 10.0.2 or so (see also e.g this thread):

When I'm in the mailbox and retrieving mail, the more addons that add to the tooltip, the slower the retrieval.

This is more pronounced when you have a lot of single attachment mails in your inbox, and it is extreme when you have an inbox full of pet cages (e.g. after hundreds of my pet auctions have expired).

To reproduce:

Stage 1: Normal items (tolerable):

  • Have addons enabled that add info to the tooltip (and have the tooltips of those addons enabled): like TSM, Syndicator, Auctionator, Journalator, ItemVersion, Oribos Exchange, …
  • Have a good quantity of mails with attachments in your inbox, preferably one or only few attachments per mail.

Do you notice a slowdown when retrieving the mails?

Stage 2: Pet cages (unplayable):

  • As point 1 above, but now also the battle-pet-tooltip addons count, so: Have addons enabled that add info to the tooltip (and have the tooltips of those addons enabled), like TSM, Syndicator, Auctionator, Journalator, ItemVersion, Oribos Exchange, BattlePetBreedID, BattlePetCountNG, …
  • Have an inbox with many (e.g. 60 or more) mails with pet cages as attachment.

You should now get a delay of about 1.5 or 2 seconds per retrieved mail.

My current solution to this problem is to disable all tooltip additions of all eligible addons (event-triggered when I open the mailbox, restored when I close it).

This works 100% fine, but it is still a workaround, and a pretty brutal one at that. And of course I had to hardcode the toggle for each addon (just hiding the tooltips doesn't help).

So, the question of all of this:

Do you have any idea why this is happening? Is it a bugged/flawed API, or is it that every addon that adds to the tooltip is doing it the wrong way? (e.g. not properly using the current, i.e. post-10.0.2-API)

There is the noteworthy post by @Xruptor (BagSync author) at the end of the aforementioned thread, which basically says that the battle pet link is resolved at fetch time due to an API/concept flaw, and that this is the root of the problem.

The huge slowdown is indeed with pets in the inbox, but there is also a slowdown with other items, so I still suspect that this is not the whole story…

commented

Got a solution for Syndicator. Just testing it on classic now.

commented

Glad to see that this (annoying) thing has cought your interest ;)

commented

This has 2 parts:

Inventory tracking

  • The pet issue is because only way to get the battle pet information for the inventory tracking (so Bagsync, Arkinventory, Bagnon, Syndicator) or Journalator mail logging is to request the tooltip data on each mailbox refresh, so what you're seeing is the effect of opening the tooltip of every single caged battle pet on each mailbox update.
  • The attachment issue is because all inventory tracking addons are scanning all the attachments each time the mailbox refreshes, causing lots of item data loading.
commented

Some of the addons you are disabling won't be responsible for the the slowdown, BattlePetBreedID, Auctionator, ItemVersion, Oribos Exchange, BattlePetCountNG

commented

Yeah, I suspected that too, but left them in the script, as it won't hurt ;)

commented

However, to get the pet information for the logs I know that Syndicator and Journalator request the battle pet tooltip data via the tooltip APIs, and checking BagSync they do the same.

commented

Basically there's a choice:

Do you want mailbox contents tracking or not?

commented

The pet issue is because only way to get the battle pet information for the inventory tracking (so Bagsync, Arkinventory, Bagnon, Syndicator) or Journalator mail logging is to request the tooltip data on each mailbox refresh, so what you're seeing is the effect of opening the tooltip of every single caged battle pet on each mailbox update.

So, what @Xruptor had said (API flaw)

The attachment issue is because all inventory tracking addons are scanning all the attachments each time the mailbox refreshes, causing lots of item data loading.

Hence another API flow, we can't do anything against(?) There is no way to specify "tooltips but not mail scanning tooltips", right?

commented

And how accurate do you want the tracking to be? So ie. is skipping over pets acceptable?

commented

Only if you turn off all mailbox contents tracking.

commented

There's probably an optimisation I can apply to reduce the scanning though.

commented

But it would completely break if using TSM's mail UI.

commented

Or maybe not. Hmmm. Got a new idea

commented

If it doesn't work inside TSM mail, it doesn't matter, because, even with my brute-force fix (disable all TT lines from addons) TSM is still slower than Blizz mail. So, when I have the inbox full of stuff I simply do not use the TSM UI anyway.

commented

Basically there's a choice:
Do you want mailbox contents tracking or not?

What do you mean with that?

If it's having scan tooltips while retrieving mail, then ofc I do not want that.

commented

Why do scanned mails provide full TT info anyway? Wouldn't be the name/ID be enough?

commented

For pets it only supplies the pet cage ID (82800) by default, and scanning the tooltip is necessary to get the species ID.

For other attachments they don't use tooltip scanning (or at least they shouldn't), but loading all the item data for a full inbox can can take a noticeable amount of time <0.2s

commented

For pets it only supplies the pet cage ID (82800) by default, and scanning the tooltip is necessary to get the species ID.

OK

For other attachments they don't use tooltip scanning (or at least they shouldn't), but loading all the item data for a full inbox can can take a noticeable amount of time <0.2s

When having a mailbox full of items (not pets), do you notice a delay when having TT addons (TSM, Syndicator, Oribos, …) enabled?


Edit: Added TSM, as it makes an impact.

commented

Update: I've added a command

/syn c lazy_mailbox_scanning true

to get the open/close mailbox scanning that I've made in the alpha here. The lazy scanning won't be enabled by default.

commented

Ok. I've had a look at the guild bank, there isn't a way to remove the pet tooltip scanning without breaking multiple Baganator features, including the pet breed ID display.

commented

OK, another fragment of memory comes back: The symptom described was most likely in the times when you changed from Baga to Synd, which was also the time when I adapted my addon to exclude the Synd tooltips. On that day, when I noticed that the Baga tooltips were no longer excluded (bc I haven't updated my script), i also saw those doubled baga tooltips in the scan tooltips.

But … maybe better treat this as non-existant, and be sure I'll report back as soon as see it. And usually I make a screeenshot of every crap…

commented
commented

Guess I'll have to "try" it with everything else disabled and with a mailbox full of stuff…

commented

Basically the change is to only scan the mail box when you open it, and when you close it, doing nothing in the interim

commented

This sounds like something I would have expected to be like that…

Gonna try to try it…

commented

Well, it's nearly impossible to test this. As I havn't done any isolated tests with TSM XOR Syndicator before… My reports were referring to whether tooltip-adding addons were enabled (not individually).

Will try to figure out some results nevertheless…

commented

I have been mentioned in this thread. XD

The scanning of the mailbox and subsequent delay is because of the fact that ALL battlepets are shown as generic ItemID 82800. Which is just https://www.wowhead.com/item=82800/pet-cage

That gives us no details about the battlepet at all. Therefore, in order to grab the required information, each one has to be parsed as a tooltip. This not only causes a delay but the MORE battlepets in the mailbox the worse it becomes. I would like to point out that this delay is also reflected in the guild banks. Which blizzard once again treats as generic itemID 82800 when pulling slot information.

It can be somewhat reduced if the scanning is done in chunks rather then all at once. Meaning 10 at a time or something, then pause and queue up another set. Possibly adding some sort of notification for the user letting them know the status of the parses. Such a system should really only be used if an excessive amount of battlepets are found in the mailbox.

Hope this helps.

commented

Nah, I had an inbox with ~25 pets (normally this makes already a noticeable slowdown), I reloaded w/o TSM (but with Synd), and the inbox content went in OKishly. But maybe it was like that before, I do not know.

For testing, is it sufficient to just use the Blizz MailBox, or do I have to unload TSM?

commented

The more addons parse the data the more delays you will experience. This data isn't shared across addons so each one would be trying to pull it's own battlepet information by querying the server. Hence why there is such a long delay.

There are technical workaround and what not we can do, but ultimately the delay will be there in some shape or form. If anything Blizzard should at least provide us with the CreatureID or some such, which they don't. BattlePet information is generated on the fly with it's own unique codifier and link code. This actually changes each time the server is reset. That's why they aren't hardcoded like itemid for items and why they use a generic itemID of 82800 for them. They just aren't the same each time the server resets. I actually use a specially generated FakeID for them because of this.

commented

Just using the blizz mailbox is enough.

You can test against older versions of Syn which should have the slowdown.

commented

I would like to point out that this delay is also reflected in the guild banks

Yeah, this is absolutely true, forgot to mention this. Hi @Xruptor, btw :)

commented

Not yet tested the posted alpha, another thing I haven't mentioned is those Synd tooltips that appear during a mail scan like doubled with a slight offset. This is a thing that does not happen with other tt additions, only seen it with baga/synd so far.

commented

Can you screenshot the weird tooltip?

commented

No. I outcommented Synd from my tt removal and I cancelled ~15 pet auctions just to have something in the inbox, but the outlinesque thingy wasn't there. Is it safe for my DB to go back to an older Synd (like 3d or so)?

commented

Or, well, is it probable that is has been fixed in the last 3d or so?

commented

The DB will safely cope with rolling back 3d, the format hasn't changed

commented

No. I couldn't replicate it with the current version, and I rolled back to an 8 March version and couldn't either. I did have reeanbled the Synd tooltips in my addon.

But in case it helps, the facts: it was like the Baga/Synd tooltip, but with an overlay of itself, like shifted by 1px or 2px, and in bright blue. Only during the mailbox retrieval process.

Now the wonky thing: It might be that I've seen this only while I had trouble with another (tooltip-affecting) addon. Though I see no way how that could produce such an outcome… but who knows…

commented

oh, gosh, ok, found it now. Will try it tomorrow. FYI: The link to all builds is : https://legacy.curseforge.com/wow/addons/syndicator/files/all

commented

As Xruptor said, this is a limitation of the Blizzard APIs not supplying a good way to get pet information, so isn't fixable without some kind of compromise in functionality.

commented

lazy scanning

OK, this is a good thing. I'll disable all the mail scanning prevention from my addon, and enable this one (and not using TSM mail ofc). Just give me a few hours to get some pet cages in my inbox (or I will force it)…

commented

Something you may want to run is

/syn c debug_timers true

which will report the milliseconds each operation takes. Its possible one is taking abnormally long so I could focus on that and see if that fixes the issue.

image

commented

/syn c debug_timers true

will do, thanks for the info.

I've disabled my mail scan tooltip exclusions for Baga/Synd…

Screenshot of BBEdit at Mar 21, 2024 at 22_48_12

and have set lazy_mailbox_scanning to true

commented

/syn c lazy_mailbox_scanning true returns Unknown config: lazy_mailbox_scanning

commented

You'll need to update to the latest alpha build from https://legacy.curseforge.com/wow/addons/syndicator/files

commented

Oh, sorry, I lazy-updated from CF…

commented

Nope. Doesn't work, still the same. I even tried copying the substrings separately, like "'syn" and "c" and "lazy_mailbox_scanning"

commented

image
That's what I get when scanning 16 pets in the mail, and opening them all took a few seconds.
image
That's from 34 (plus 4 not pets), so an estimated 4.47ms for 100 pets, the max the mailbox will show in separate mails.
However when opening mails:
image
That's with 34 pets in the mail after opening the 4 not-pets
image
That's when reopening the mailbox.

These numbers are so small that you must have the equivalent of 335 different addons scanning the mail when opening them (assuming the max 100 in the mailbox). Which suggests there is another addon that is overdoing the scanning that has been overlooked. Bearing in mind my computer is pretty fast.

commented

I tried the 13-3-g790619a with /syn c lazy_mailbox_scanning true vs. false this morning with minor numbers of pet cages (20 or so), and, well, it felt a bit faster (all other tooltip additions from my list were toggled off). But the big slowdown comes from the sum of tooltip-adding addons, where TSM seems to be the biggest contributor. Synd alone is tolerable, but mail retrieval is still noticeably faster when toggled off.

So, if I recapitulate the thread correctly, the answer to my question is probably "it's a flaw on Blizz's end and there's not much we can do about it" (besides switching off tooltip additions at the mailbox/guildbank)

commented

I got interrupted while writing my last post and haven't seen your "What I think is happening is that yet another addon is repeatedly scanning all items in the game": If this is true, then my guess is that this is TSM.

commented

Found an optimisation for the guild bank scan that saves 1ms, so 5-6ms down to 4-5ms.

I did observe a 10-15ms scan time, which to me is too slow, hence the investigation for an optimisation. That kind of time is normal for when the item data isn't cached though.

commented

I've removed the lazy mail scan option in version 15, so for the purposes of testing stick to before 15

commented

What I think is happening is that yet another addon is repeatedly scanning all items in the game, causing the item data cache to repeatedly get wiped, causing the slowdown with all the other addons.

commented

I think it's just one add-on that isn't on that list that's causing the issue

commented

Can you test with just Syndicator on (no other add-ons whatsoever) and see if that affects performance, with and without the lazy scanning?

commented

Also, what kind of numbers was Syndicator putting out in the chat for the scan times?

commented

I copied this this morning (lazy true):

Console
caching took 0.44757300615311
summaries char 6.5923689603806
+ [Pet Cage] +
caching took 0.50854498147964
summaries char 6.54064899683
caching took 0.58462297916412
summaries char 6.2550190091133
+ [Pet Cage] +
caching took 0.52716702222824
summaries char 6.0465559959412
+ [Pet Cage] +
caching took 0.51359003782272
summaries char 5.9143400192261
+ [Pet Cage] +
caching took 0.55398499965668
summaries char 5.9852059483528
+ [Pet Cage] +
+ [Tranquil Mechanical Yeti] +
+ [Pet Cage] +
caching took 0.56951600313187
summaries char 5.7471039891243
+ [Pet Cage] +
caching took 0.58322596549988
summaries char 6.0576989650726
+ [Pet Cage] +
+ [Pet Cage] +
caching took 0.63027602434158
summaries char 6.0131820440292
+ [Pet Cage] +
+ [Pet Cage] +
caching took 0.67640495300293
summaries char 6.0649970173836
caching took 0.7168380022049
summaries char 5.822990000248
+ [Pet Cage] +
caching took 0.71235799789429
summaries char 6.3139590024948
+ [Pet Cage] +
caching took 0.66730397939682
summaries char 5.8704209923744
+ [Pet Cage] +
caching took 0.82224202156067
summaries char 5.8858100175858
+ [Pet Cage] +
10:39:13 Philip Luke says: No, sir. I don't believe so.
caching took 0.72923702001572
summaries char 5.9563050270081
+ [Pet Cage] +
+ [Pet Cage] +
caching took 0.73652499914169
summaries char 5.8229950070381
+ [Pet Cage] +
caching took 0.801265001297
summaries char 5.7819610238075
caching took 0.79223698377609
summaries char 5.8829529881477
+ [Pet Cage] +
+ [Pet Cage] +
caching took 1.3623609542847
+ [Pet Cage] +
caching took 0.61390501260757
+ [Accursed Keepsake] +
+ [Recipe: Flask of Supreme Power] +
caching took 0.60172098875046
+ [Draconium Leatherworker's Knife ] +
+ [Hexweave Bag] +
caching took 0.64447700977325
+ [Pattern: Red Mageweave Shoulders] +
+ [Cyclical Power Housing] +
caching took 0.67731100320816
+ [Burnished Inscription Bag] +
caching took 0.72203201055527
+ [Burnished Inscription Bag] +
+ [Findle's Loot-A-Rang] +
caching took 0.74595999717712
+ [Magnificent Hide Pack] +
+ [Magnificent Hide Pack] +
caching took 0.80862802267075
+ [Schematic: Lifelike Mechanical Toad] +
caching took 0.79671800136566
+ [Red Noggin Candle] +
+ [Scribe's Fastened Quill ] +
caching took 0.48216098546982
+ [Otherworldly Bag] +
+ [Otherworldly Bag] +
WA: Token Price: New token price received.
+ [Plans: Golden Scale Coif] +
caching took 0.51324301958084
+ [Reinforced Cobalt Chestpiece] +
+ [Tenacious Vine Staff of the Quickblade] +
caching took 0.5637349486351
+ [Ghost Iron Dragonling] +
+ [Schematic: World Enlarger] +
+ [Grimscale Sabatons of the Quickblade] +
caching took 0.61360001564026
+ [Pattern: Felcloth Pants] +
+ [Bone-Plated Bracers] +
caching took 0.62868499755859
caching took 0.64521098136902
+ [Bone-Plated Armor] +
+ [Pattern: Crimson Silk Robe] +
+ [Splinterspear Axe of the Aurora] +
caching took 0.69845402240753
+ [Formula: Enchant Cloak - Superior Defense] +
+ [Fleece Cloak of the Fireflash] +
caching took 0.73464494943619
+ [Talon Guard Legplates of the Quickblade] +
+ [Pattern: Lavender Mageweave Shirt] +
caching took 0.78143799304962
+ [Pattern: Imbued Silkweave Flourish] +
caching took 0.7982149720192
+ [Bone-Plated Boots] +
caching took 0.62732094526291
+ [Bone-Plated Belt] +
+ [Crude Umbrafen Blade of the Aurora] +
caching took 0.64767301082611
+ [Formula: Superior Wizard Oil] +
caching took 0.67505699396133
+ [Bone-Plated Leggings] +
caching took 0.69522303342819
+ [Pattern: Big Voodoo Cloak] +
+ [Bone-Plated Gloves] +
caching took 0.7283119559288
+ [Pattern: Azure Silk Gloves] +
+ [Bone-Plated Helm] +
caching took 0.76471197605133
mail finish 0.066231966018677
summaries char 5.7910780310631
commented

Some add-on is opening the tooltip for every item (which is different to the pet scanning) which will be having a very noticeable performance impact

commented

Can you test with just Syndicator on (no other add-ons whatsoever) and see if that affects performance, with and without the lazy scanning?

Yes, I can do thorough testing later this afternoon.

commented

Using 25 pets and random items posted on the AH and then cancelled. For me with no lazy scanning it looks like this

Console
[11:21:52] mail finish 1.0857999920845
[11:21:52] You receive item: [Pet Cage]
[11:21:52] mail finish 1.0283000022173
[11:21:52] mail finish 1.0337999910116
[11:21:53] mail finish 1.0185000002384
[11:21:53] caching took 0.85029999911785
[11:21:53] You receive item: [Pet Cage]
[11:21:53] mail finish 0.99819999933243
[11:21:53] mail finish 1.1325999945402
[11:21:53] mail finish 1.0227000117302
[11:21:53] You receive item: [Templar Crown of the Quickblade]
[11:21:53] mail finish 1.0424000024796
[11:21:53] caching took 0.64450000226498
[11:21:53] caching took 1.0625999867916
[11:21:53] mail finish 1.0040999948978
[11:21:53] mail finish 1.0294000059366
[11:21:53] You receive item: [Pet Cage]
[11:21:53] mail finish 1.0279000103474
[11:21:53] mail finish 0.97269999980927
[11:21:53] mail finish 1.0020000040531
[11:21:53] You receive item: [Pet Cage]
[11:21:53] mail finish 1.0664999932051
[11:21:53] mail finish 1.0857999920845
[11:21:53] mail finish 0.9822999984026
[11:21:53] caching took 0.67069999873638
[11:21:53] You receive item: [Pet Cage]
[11:21:53] mail finish 0.86329999566078
[11:21:54] mail finish 0.88810001313686
[11:21:54] mail finish 0.87029999494553
[11:21:54] You receive item: [Pet Cage]
[11:21:54] mail finish 0.84850001335144
[11:21:54] mail finish 0.8069000095129
[11:21:54] caching took 0.62600000202656
[11:21:54] mail finish 0.84319999814034
[11:21:54] You receive item: [Pet Cage]
[11:21:54] caching took 0.78709998726845
[11:21:54] mail finish 0.77690000832081
[11:21:54] mail finish 0.79020000994205
[11:21:54] mail finish 0.78200000524521
[11:21:54] You receive item: [Pet Cage]
[11:21:54] mail finish 0.77829998731613
[11:21:54] mail finish 0.78329999744892
[11:21:54] mail finish 0.78999999165535
[11:21:54] You receive item: [Pet Cage]
[11:21:54] mail finish 0.73929999768734
[11:21:54] mail finish 0.70489999651909
[11:21:54] mail finish 0.75079999864101
[11:21:54] You receive item: [Pet Cage]
[11:21:54] mail finish 0.68860000371933
[11:21:54] mail finish 0.67929999530315
[11:21:54] mail finish 0.69590000808239
[11:21:55] caching took 0.69340001046658
[11:21:55] You receive item: [Icepine Bindings of the Feverflare]
[11:21:55] mail finish 0.66079999506474
[11:21:55] mail finish 0.70809999108315
[11:21:55] mail finish 0.71520000696182
[11:21:55] You receive item: [Pet Cage]
[11:21:55] mail finish 0.67720000445843
[11:21:55] mail finish 0.67839999496937
[11:21:55] mail finish 0.68160000443459
[11:21:55] caching took 1.6988999992609
[11:21:55] You receive item: [Pet Cage]
[11:21:55] mail finish 0.68940000236034
[11:21:55] mail finish 0.62870000302792
[11:21:55] mail finish 0.61950001120567
[11:21:55] caching took 0.67310000956059
[11:21:55] You receive item: [Hagfeather Robe of the Harmonious]
[11:21:55] mail finish 0.60029999911785
[11:21:55] mail finish 0.59729999303818
[11:21:55] mail finish 0.59450000524521
[11:21:55] You receive item: [Pet Cage]
[11:21:55] mail finish 0.56909999251366
[11:21:55] mail finish 0.57789999246597
[11:21:55] You receive item: [Pet Cage]
[11:21:55] mail finish 0.57189999520779
[11:21:55] caching took 0.77510000765324
[11:21:55] mail finish 0.49400000274181
[11:21:55] mail finish 0.55480000376701
[11:21:55] You receive item: [Pet Cage]
[11:21:55] mail finish 0.46609999239445
[11:21:56] mail finish 0.47519999742508
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.45049999654293
[11:21:56] mail finish 0.4261000007391
[11:21:56] mail finish 0.48829999566078
[11:21:56] caching took 0.7575000077486
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.39660000801086
[11:21:56] mail finish 0.40569999814034
[11:21:56] mail finish 0.4619999974966
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.3733000010252
[11:21:56] caching took 0.68230000138283
[11:21:56] mail finish 0.36079999804497
[11:21:56] mail finish 0.40880000591278
[11:21:56] caching took 0.83270001411438
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.33730000257492
[11:21:56] mail finish 0.33220000565052
[11:21:56] mail finish 0.44319999217987
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.30810000002384
[11:21:56] mail finish 0.30170001089573
[11:21:56] mail finish 0.32840000092983
[11:21:56] You receive item: [Pet Cage]
[11:21:56] mail finish 0.29340000450611
[11:21:57] mail finish 0.28119999170303
[11:21:57] caching took 0.79190000891685
[11:21:57] You receive item: [Pet Cage]
[11:21:57] mail finish 0.25550000369549
[11:21:57] mail finish 0.22849999368191
[11:21:57] mail finish 0.24549999833107
[11:21:57] caching took 0.84010000526905
[11:21:57] You receive item: [Aegis of Stormwind]
[11:21:57] mail finish 0.24140000343323
[11:21:57] mail finish 0.24570000171661
[11:21:57] caching took 0.88919998705387
[11:21:57] mail finish 0.22709999978542
[11:21:57] You receive item: [Pet Cage]
[11:21:57] mail finish 0.17809998989105
[11:21:57] caching took 0.8788999915123
[11:21:57] mail finish 0.17320001125336
[11:21:57] mail finish 0.17569999396801
[11:21:57] You receive item: [Pet Cage]
[11:21:57] mail finish 0.11270000040531
[11:21:57] mail finish 0.12060000002384
[11:21:57] mail finish 0.11349999904633
[11:21:57] caching took 0.85870000720024

Each mail finish takes place on a different frame, as does the caching

commented

The giveaway that your setup is having the tooltip open every time is the summaries char 6.2550190091133 line, each time that appears it means the bags/mail have updated and a tooltip has been opened for at least one item.

commented

Yeah, I see, you don't have the "summaries" lines. Interesting.

commented

With all addons unloaded, except my addon manager (SimpleAddonManager) and Syndicator, mail retrieval is blazingly fast (exactly 50 auction mails with pet cages, nothing else).

The problem is that with lazy false I didn't get a "summaries char" at the end:

Screenshot of Wow at Mar 22, 2024 at 13_20_37 Screenshot of Wow at Mar 22, 2024 at 13_28_08

But there wasn't any felt difference. If any, then lazy false [sic] was rather the faster one.

commented

Will try to locate the problematic addon later. (But I'm pretty sure that I've done this already a year ago, with the outcome that the sum of tooltip-modifying addons makes it; but maybe (hopefully!) I have overlooked something…)

commented

Here the complete benchmarks (50 pet cages, seconds):

Normal and all tooltip additions enabled: 61.57
Normal and all tooltip additions toggled off: 8.64
Stash line 483 disabled and all tooltip additions enabled: 6.89
Stash line 483 disabled and all tooltip additions toggled off: 8.34 (weird, but probably within the usual deviations)
Stash completely unloaded and all tooltip additions enabled: 10.57
Stash completely unloaded and all tooltip additions toggled off: 8.10

So, considering deviations by other factors, the speeds of all (except the first ofc) are virtually identical. This means I can either unload/fix Stash and do no longer need my automatic tooltip toggles, or continue with Stash and my tooltip toggles; it's the same ;)

But you were absolutely right when you said that probably one addon is "causing the slowdown with all the other addons".

Still to verify:

  • Guildbank slowdown
  • The mail retrieval slowdown with non-pet items (but I tend to think that my observations of this slowdown were spoiled by the occasional pet cages amongst the non-pet items in the mailbox, e.g. 1 pet per 20 other items could already produce a noticeable slowdown)
commented

Try searching your addon code for GameTooltip:SetInboxItem

commented

It seems I found it: Stash

/Applications/World of Warcraft/retail/Interface/AddOns/Stash/data/tracking.lua, the function stash.tracking:MAIL_INBOX_UPDATE() at line 476:

If I force the conditional at line 483 to false (e.g. if itemID==C.PET_CAGE_ITEMID --> if itemID==0) then everything is speedy :)

Just doing some benchmarks if I still need my tooltip toggling stuff…

commented

I've run into the stupid AH scan throttle, but the benchmarks so far:

Seconds needed for retrieving 50 pet cage AH mails:

Normal and all tooltip additions enabled: 61.57
Normal and all tooltip additions toggled off: 8.64
Stash line 483 disabled and all tooltip additions enabled: 6.89
Stash line 483 disabled and all tooltip additions toggled off: ???
Stash completely unloaded and all tooltip additions enabled: ???
Stash completely unloaded and all tooltip additions toggled off: ???

commented

Yeah, that's pretty conclusive.

I'd expect the guild bank issue to be the same, Stash, but with GameTooltip:SetGuildBankItem

commented

Yes, the guild bank slowdown is also caused by Stash (in the presence of other tooltip modifying addons).

Function UpdateGuildBankSlot line 351 in tracking.lua, completely analogous to the mailbox function, see above.

commented

Just reinstalled BagSync to see if it produces similar effects, but no, it's fine.

commented

I'm glad you've finally solved the slowdown. And its nice to know that none of my addons were the root cause.

Last test is TSM now ;)

commented

Just tested the TSM Mail UI, it's equally speedy (if the Stash function is disabled). And even with TSM tooltips enabled.

Shame on me, by the way, because my first suspect was TSM, and it was completely innocent here. But usually it is the culprit 😎

I'm glad you've finally solved the slowdown

Yes, thanks to your insight and helpfulness! And thanks to Syndicator's debug messages ("summaries" with every item)!

commented

Ok. That's all great 🥳 Going to close this issue now as fixed.

commented

I can now imagine why I failed to isolate Stash as the culprit a year ago:

Most likely, I removed one tooltip-modifying addon after another, starting with TSM, then BagSync, then BPBID, …, and Stash as the last one (since it is the "lightest"). If you do this, you'll notice a gradual decrease of the slowdown as each addon is removed. This got me fixated on the idea that it was the sum of all the addons that caused the slowdown.

If I had removed Stash as the first addon, I would have found the cause right away 😉 .