Register
Page 2 of 2 First 12
Results 11 to 17 of 17
  1. #11
    Quote Originally Posted by Erorus View Post
    I don't remember what the pre-7.3.5 tooltip behavior was, but during testing yesterday, I noticed that WoW was rebuilding the item tooltip about 5 times per second when hovering over items in bags, bank, and charsheet, even without mousemoves. In the auction house UI it's even worse, with tooltips updating every frame. I don't think it's using different frequencies depending on the items themselves; what's more likely is that your addons simply have more stuff to add to tooltips for certain items, and that varies how much addon code you're running (and how much of a slowdown you see).
    the old behaviour was to generate the tooltip contents only once when it was just about to be displayed... that's why you sometimes saw "Retrieving item information...." that stuck on the tooltip instead of actual contents and you had to move the mouse away and then back to the item to see the new tooltip.

    I got so used to the "move the mouse if you want to refresh the tooltip" behaviour that i almost missed the change... now the "Retrieving item information..." message still appears for a moment on the tooltip but it will change automatically with the tooltip refresh cycle.

    imho the old behaviour was much more friendly for CPU usage, i wish there was a cvar somewhere that could be set to bring back the old tooltip refresh logic.

    p.s. please increase the cache size from 10 to 64 items... i found that it helps when mousing over multiple items - the larger cache will help for a smoother transition between different tooltips.
    Last edited by Rassilon; January 26th, 2018 at 11:35 AM.

  2. #12
    Erorus's Avatar
    Posts
    1,404
    Reputation
    114
    Tagged in
    677 Posts
    Add to this user's reputation
    I don't want the cache size to be overly large. I'd prefer if it only had enough room for one item and any other sub-items (disenchant mats or recipe reagents).

    I bumped it up to 16 cached items, and made it dump the least-recently-used items. This helps when, for example, disenchant mats kept getting pulled as you mouseover a bunch of armor, so those mats should stay in the cache. https://github.com/erorus/newsstand/commit/daea0fa4

  3. #13
    hmm, that flip-the-cache table.remove and table.insert is causing some weird cpu usage... sometimes more optimization is too much.

    i added a debug print in the middle there just to confirm things... it runs the cache flipper even during AH searches.

    i'm using TUJ as statistics data source for both Auctioneer and TSM and the behaviour is the same during the use of both addons: a storm of table.remove and table.insert messages during AH searches.

    so, i think the flipper loop should be disabled but please leave the cache at size 16, for general usage.

    modified code:
    Code:
           local curDepth = #marketInfoCacheKeys
            if marketInfoCacheKeys[curDepth] ~= item then
                for x=curDepth - 1, 1, -1 do
                    if marketInfoCacheKeys[x] == item then
                        table.remove(marketInfoCacheKeys, x)
                        table.insert(marketInfoCacheKeys, item)
                        print(tostring(item))
                        break
                    end
                end
            end
    end result: during Auctioneer EnchantMats search with TUJ used as data source.

    WoWScrnShot_012918_222237.jpg
    Last edited by Rassilon; January 29th, 2018 at 04:01 PM.

  4. #14
    Erorus's Avatar
    Posts
    1,404
    Reputation
    114
    Tagged in
    677 Posts
    Add to this user's reputation
    Quote Originally Posted by Rassilon View Post
    hmm, that flip-the-cache table.remove and table.insert is causing some weird cpu usage...
    Can you be more specific than "weird"?

    a storm of table.remove and table.insert messages during AH searches.
    There will be a remove and an insert into that cache line table every time a pricing request is made for an item that's in the cache and it isn't the last item we looked for. This is intended. They should be super quick anyway.

  5. #15
    Quote Originally Posted by Erorus View Post
    Can you be more specific than "weird"?


    There will be a remove and an insert into that cache line table every time a pricing request is made for an item that's in the cache and it isn't the last item we looked for. This is intended. They should be super quick anyway.


    weird = deep FPS hiccups during AH searches with addons that use TUJ as data source, much more than the usual few frames.

    This is happening especially when searching a large AH result set, my realm's AH is 50+ thousand items in size.
    Basically, the cache flipper is behaving like another cache on top of the cache... and when sifting through 50+ thousand results it behaves like an additional layer of slowness.


    Edit: in my screenshot above i use Auctioneer to search for Enchanting Materials - this includes disenchantable stuffs.
    I use TUJ as data source for Auctioneer, but the same behaviour is present when using TSM shopping searches: deep FPS hiccups.
    Last edited by Rassilon; January 29th, 2018 at 04:58 PM.

  6. #16
    Erorus's Avatar
    Posts
    1,404
    Reputation
    114
    Tagged in
    677 Posts
    Add to this user's reputation
    Your other addons shouldn't be requesting prices so frequently that you'd notice a performance hit.

    Nevertheless, I've pushed an update to perform fewer operations upon cache hit. https://github.com/erorus/newsstand/commit/6129925

  7. #17
    Quote Originally Posted by Erorus View Post
    Your other addons shouldn't be requesting prices so frequently that you'd notice a performance hit.

    Nevertheless, I've pushed an update to perform fewer operations upon cache hit. https://github.com/erorus/newsstand/commit/6129925

    Thank you, i think this works better
    (well, except in Auctioneer but i can live with that)


    for testing, i changed it to add a debug print in the comparator

    Code:
    local function InfoCacheKeyComparitor(x,y)
    	print("1- " .. tostring(marketInfoCache[x]['__queried']) .. " - " .. tostring(marketInfoCache[y]['__queried']))
        return marketInfoCache[x]['__queried'] < marketInfoCache[y]['__queried']
    end

    and another debug print a bit lower in the code...
    Code:
        table.insert(marketInfoCacheKeys, item)
        marketInfoCache[item]['__queried'] = GetTime()
    	print("2- " .. tostring(item) .. " - " .. tostring(marketInfoCache[item]['__queried']))
    and these are the results... you'll notice that Auctioneer goes nuts with the queries, there are a ton of them practically at the same time.

    TSM group search (but TSM takes AGES to scan the AH... runs like a snail)
    tsm_WoWScrnShot_013018_005510.jpg


    Auctioneer Enchanting Materials search - scans the entire AH in under 10 seconds - uses a local cached GetAll result for this, but uses a lot of CPU for data processing.
    auctioneer_WoWScrnShot_013018_005701.jpg

 

 

Similar Threads

  1. Canceling Loop and Reposting Loop Please Help.
    By Elders in forum General TradeSkillMaster Discussion
    Replies: 2
    Last Post: April 26th, 2014, 11:54 AM
  2. Sudden drop in profession made items on the AH?
    By Exalios in forum Archive (Auction House)
    Replies: 10
    Last Post: October 20th, 2013, 10:28 AM
  3. Wowuction updates through TSM app are smaller than manual updates and break tooltip
    By aprilmyriad in forum General TradeSkillMaster Discussion
    Replies: 1
    Last Post: December 22nd, 2012, 11:23 AM
  4. Tooltip Item Tracker and Seasonal Items problem.
    By Whitewolf in forum General TradeSkillMaster Discussion
    Replies: 0
    Last Post: February 17th, 2012, 02:25 PM
  5. Tooltip: See items in other characters' mail?
    By Jarnow in forum General TradeSkillMaster Discussion
    Replies: 7
    Last Post: June 7th, 2011, 12:52 PM

Tags for this Thread