CurseForge Register Sign In

Our first step of the new Authors Portal is Live! Learn more or click here to check it out!

Authors CurseForge

  • Dashboard
  • Forums
  • Paste
  • Knowledge Base
  • Reward Store
Desktop View
  • Home
  • Member List
  • Forge_User_96189362's Profile
  • Send Private Message
  • View Forge_User_96189362's Profile
  • Forge_User_96189362
  • Registered User
  • Member for 17 years, 4 months, and 15 days
    Last active Mon, Jul, 13 2020 21:53:32
  • 0 Followers
  • 283 Total Posts
  • 0 Thanks
  • Posts
  • Threads
  • Forum Posts
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 18
  • Next
  • View Forge_User_96189362's Profile

    0

    Nov 10, 2014
    Forge_User_96189362 posted a message on AceDB and default profiles (Picking a bone)
    Quote from Phanx
    You only have 75 posts on this account... seems pretty junior. ;)


    Yeah, but I log in as "mikk" on the main wowace/curseforge sites... and then I become "dpsgnome" here.

    Funnily/annoyingly, "mikk" is a moderator account so he gets all the reported post spam, but I can't do squat about it since I can't actually be mikk in the forums!

    Mikk: http://forums.wowace.com/member.php?u=62492 - no activity after 2009 since I can't use it.
    Posted in: Ace3
  • View Forge_User_96189362's Profile

    0

    Nov 3, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    I'm actually running this in a 20m raid right now and it's playable. Bit chuggy here and there but .. playable.
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 3, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    r10

    Sigh, move reporting to coroutine - adding functions made it take too much time to execute during combat.

    r11

    Add "/cputhieves track FUNCNAME" for tracking specific functions. It gets executed as a Lua expression so you can even give it e.g. MyAddon.blah[5].func
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 2, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    r8:

    We now track all OnEvent/OnUpdate that we have seen a frame use, and include their CPU usage in the stats. This doesn't necessarily mean all the ones that it ever used (we might have missed it between polls!), but it's a lot better than nothing.


    r9:

    Add in CPU polling of individual functions.
    This is a VERY GOOD idea because:
    1. C_Timer based timers tend to not show up in AddOn/Frame CPU usage (sometimes yes sometimes no - unsure why so far)
    2. API calls that take time do not show up as AddOn time
    By default, we monitor:
    - C_Timer callouts (and where they were registered the first time)
    - All GameTooltip APIs (you'd be surprised how much time they take!)
    - All functions in the global namespace on startup (the "!" in "!CPUThieves" means we load before pretty much everything else)
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 2, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    Ch-ch-ch-changeees!

    - OnUpdate CPU usage now included in frame CPU usage (manual polling yay). Addon checks if this is necessary or not on start-up. (Future safe)

    - If we ever report high CPU on an unnamed frame, it is now assigned a global name e.g. UnnamedFrame01234567 and reported as such. This allows you to prod it yourself with e.g. /dump

    - New command "/cputhieves identify VARNAME" that does its best to find out just where the hell that variable came from.
    - - It loops through ALL global vars&tables, up to 6 deep, trying to find someone pointing at it
    - - For frames, it loops ALL Script handlers and does the same global scan
    - - For any table, it loops all members and does issecurevariable() on them, trying to find mention of addons


    If anyone else has any creative ideas on how to identify unnamed frames, I'm all ears!
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 2, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    Hm.. it only takes about 400ms to scan through ALL global variables, AND three levels of subtables on my system...

    Edit: 240ms if i don't scan the _G inside the _G, oops.
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 2, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    So... unnamed, unparented frames. Very unhelpful to find out what addon it is.

    Any useful ideas on how to identify them?

    I optimistically tried issecurevariable(theFrame, 0) but it turns out that you can't even do this with nonstring table indices (argh blizzard). (It always returns true,nil - the same it does with nonexistant indices)

    IF the frame table has other members, they can certainly be identified, but what if it doesn't have any? (All 3 high-CPU frames I see in my system right now only has the [0])

    Then I thought about :GetScript("OnEvent"/"OnUpdate"/etc) .. but that only gets me a function reference which I can't do much with unless someone named the code chunk in question (fat chance).
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    Maybe I should add an in-game warning about profiling being enabled
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    You mean like I already do with the red "!" in the 2nd line in the IMPORTANT section? =)

    (Sigh, documentation is never easy)
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    I will also point out that GetFrameCPUUsage() has MANY MANY quirks. If you see funny situations with frames spamming you with excessive CPU usage reports, but you can clearly see for yourself that nothing is going on ... sorry, I can't fix it.

    http://wowpedia.org/API_GetFrameCPUUsage explains it
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    Ups. Releasing r4 with this important fix :D
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on AceDB and default profiles (Picking a bone)
    (I love how I'm still a junior member..)
    Posted in: Ace3
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on AceDB and default profiles (Picking a bone)
    Well.. what we MIGHT be able to pull off is an option in the default UI (that nearly everyone uses), something along the lines of "Make ALL your characters use this profile!" - which would get unchecked as soon as an individual selection is made.

    At least I _think_ it's possible, but Nev knows AceDB better than I do.
    Posted in: Ace3
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on "CPUThieves" live profiling addon - good for finding sources of freezes
    You all know the standard profiling addons that show you how much CPU has been used, and how useless they are at helping you find out which addon just froze your WoW for 3 seconds...

    Well, I wrote something that might help with that:
    http://www.wowace.com/addons/cputhieves/

    It'll monitor for FPS hickups and spit out recent CPU usages like:
    CPUThieves: Detected 182ms FPS hickup DURING COMBAT. (174ms = Lua)
    CPUThieves:    170  0.2s WowLua
    CPUThieves:    170  0.2s F:WowLuaButton_Config
    CPUThieves:      .. and 3 more frames with same handler function
    CPUThieves:    170  0.2s F:WowLuaButton_Previous
    CPUThieves:    170  0.2s F:WowLuaButton_Next
    CPUThieves:    170  0.2s F:WowLuaButton_Redo
    CPUThieves:      .. and 5 more frames with same handler function
    


    Yes, it requires profiling enabled, obviously. Which makes it suck in raid on a subpar CPU. I can't help you there, sorry :P
    Posted in: Lua Code Discussion
  • View Forge_User_96189362's Profile

    0

    Nov 1, 2014
    Forge_User_96189362 posted a message on Creating dynamic named Widgets.
    (Naming frames is generally a good practice even if you do not use the names yourself. Helps you understand where $randomframe came from if you can :GetName() it)
    Posted in: Lua Code Discussion
  • To post a comment, please login or register a new account.
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 18
  • Next
  • Creators
    • Build an App
    • Publish a mod
    • Why Overwolf
    • App documentation
    • Mod documentation
    • Creator services
    • Apply for funding
  • Gamers
    • Discover Mods
    • Discover Apps
    • Gameplay First
    • Download Overwolf
    • Suggest a feature
  • Company
    • About us
    • Our story
    • Careers
    • Blog
    • Brand Guidelines
  • Work With Us
    • Partners
    • Advertisers
    • Influencers
    • Game Developers
  • Support & Privacy
    • Help Center
    • Supported Games
    • Terms of service
    • Privacy Policy
    • Overwolf Alphas
    • Licenses
Overwolf 2021