After 2.4 my addon addiction has started to become a real problem. In 2.3 I had lag and FPS issues during only a handful of heavy nuke fights, like RoS. Since 2.4 I can get spikes which completely locks up my UI for up to several seconds. To get to the bottom of this, I have been looking for profiling tools and the likes to try to get some clue as to why I get these. I've tried searching for relevant information in this sub-forum, but alas, no luck. Therefore I figured a new thread wouldn't hurt.
Short lists, I know, but these seem to be the best I've run into so far. My attempts to solve the situation have been to reinstall addons(in case old files/libs were loaded), disable a ton of "oh! shiny!" stuff that I don't really need and go over modules in addons like PitBull. Nothing of this has solved anything. Spikes are still there.
Then to the question: What addons and strategies do you use to sort your addon woes? And try to keep the "default UI FTWWWww!1" spam as low as possible, thanks.
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
I have no idea what it is but each patch significantly decreased my FPS. I just ended up upgrading.
Biggest trouble makers for my FPS were BigWigs, Recount and Grid (not sure if it was Grid itself, might have been some module - deffo know that the Layout plugins for Grid caused some freezes though).
I fired up AddonSpam_Fu yesterday. Nothing revolutionary, but I did notice three guildies running SW_Stats and sending large chunks of data. Not that many packages, but they were much larger than most. Anyone remember what the old issue with spamming the addon channel was? Was it the number of packages sent or the actual size that dragged fellow raiders down?
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
I've been using OptionHouse lately. It works well enough.
Tangentally, I've been tearing apart my mods to figure out how much code is being disguised in libraries. Turns out that Prat was eating my framerate alive, so I wrote Chatterbox to do the same thing. Dropped my reported Ace2 CPU time usage from about 13-14ms/1 sec to about 6ms/1 sec. Can't complain about that.
Does Prat eat that much even with 1/2 it's modules disabled? I've always liked Prat for the functionality but if it's screwing my game play and there's something better I'd deffinately try it. I too have been having bouts of lag and occasional freezes. Also, the incredibly annoying moment of lag upon entering or leaving combat.
We've had serious problems since 2.4 with grid in our guild, so I'd suggest making sure it's disabled as a first step. Beyond that, I haven't seen any tools more useful than PerformanceFu, so if you do, I'd be interested in hearing your experiences-
If you're a developer type, Expo is a great tool for profiling. You can give it a table (most Ace addons are in a table, for example) and it'll measure CPU and memory usage per function. It's a great tool for tracking down which parts of an addon are slow, which can help you decide which modules to disable or whatnot.
I hope I am not hjacking your thread but I think it would be interesting to find out which of the commonly used Addons are (performance wise) not the best and to help interpret the values from the addons you posted (performance_fu, optionhouse, ...)
I tested using Optionhouse, I reinstalled all my Addons using embedded libraries:
As you can see Baggins and Pitbull take up the most CPU time. I took this screenshot after about five minutes of idling in Shattrath. And I have no problems with Grid whatsoever.
My problem now is that I don't really know what these values mean. Are 2.7/2.8 reasonable values for CPU/sec for an inventory addon and unitframes? My first thought was that Baggins shouldn't take up any CPU time when doing nothing.
I then proceeded to delete all my addons and installed Baggins not embedding the libraries. Here is a screenshot of Baggins installed this way and this is a screenshot of PitBull.
For Baggins it is Ace2 which takes up most of the CPU time and for PitBull LibDogTag uses almost all of its CPU time. Again: I don't know if a value of 2.2 vor CPU/sec is normal or if I should start to look for another unit frame addon.
So if anyone could share some insight it would be greatly appreciated.
- Baggins is likely being blamed for all of your Ace2 libraries' CPU and RAM usage, as its the first of your Ace2 mods to load, alphabetically (this is due to running embedded libraries)
- Chinchilla is your first Rock mod, so it inherits the shared Rock CPU/RAM. PitBull-3.0 suffers because of LibDogTag-3.0, which has some pretty serious CPU consumption issues at the moment. ckknight is working on that though.
- Chatter is your first Ace3 mod, alphabetically, so again, it inherits all of the CPU/RAM blame for Ace3 on top of its own code.
The cpu/sec number is ms/sec. A value of 1000 means that 100% of all available computing time is being spent on that mod.
Those numbers are very decent, and are nothing to be worried about. I would recommend profiling in combat to get a more "real world" reading. Profiling while idling is a good way to find misbehaving addons, but it's good to remember that the time you care about framerate the most is in combat.
Thank you for your quick reply.
It will help me a lot in evaluating my addons (as I now understand the values and have a reference value to compare to). And I will try as you suggested and profile again in a combat.
And very good to hear about LibDogTags performance being worked on!
I recently reinstalled all Ace modules to not include externals. This helped me localize LibDogTag as the major sinner. It uses up to six times as much CPU cycles as the next on the list. I haven't looked through my addons and seen which import DogTags, but something seems amiss.
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
I don't use Parrot or Cowtip so PitBull has to be the sinner, but I'm going to grep through my addons just to verify. Either DogTags is having to "catch up" after spikes or it is indeed causing lowered performance because it's eating cycles at an alarming rate. I've tried googling around, but not much luck. If this continues I'll have to abandon PitBull/DogTags for X-Perl or something.
Chatter is a great success! Prat is gone.
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
Chatter looks indeed like a worthy replacement for Prat. It does everything I need, except one thing. I'd like to copy one single line of chat (ie. right click on line/name and then getting a "copy text" option that copies only that one text line out).
It can copy text fine, it just takes the whole content of the chatframe, or so it seems, which at times just is too much and you then need to track the one line you wanted to really copy that one out.
The Prat feature i miss most is Unix style tab completion. chatter uses (I believe) the default behavior for the tab key during whispers. Prat had a module to let me type /w AntiTAB} and get a whisper to Antiarc, then Antiarcadin, and so on. But otherwise, it's great!
Anyhow, for a more general performance issue question - if we're running Ace with standalone libs (no embeds), is the info in OptionHouse accurate or does shared code still get accounted to the first addon that uses that lib?
Shared code will get accounted to the library. For example, you'll see Ace3 in your addons list. All of AceEvent and AceHook's CPU usage (which can be heady with a lot of mods using them) will get attributed to Ace3.
If any addon sets manual hooks, then it may assume responsibility for another mod's CPU/RAM usage, depending on the implementation. Likewise, addons that fire events that are consumed by other addons may be blamed for some CPU/RAM usage from the addons that consume their events. For example:
Threat-2.0 fires "ThreatUpdated"
Omen consumes "ThreatUpdated" and spends 50ms doing code related to the event
Threat-2.0 will be blamed for that 50ms of CPU time, because the codepath originated from Threat-2.0.
General rule of thumb: If a library is taking a ton of CPU time, it's probably one of the addons that uses it doing that. If a standalone addon is taking a lot of CPU/RAM, then chances are it's probably the addon that's to blame.
Grep-ing around in my addon directory revealed nothing new. PitBull is the only addon using DogTags. Most seem to think PitBull is the light alternative, but anyone got any pointers on a replacement?
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
I've noticed that Bartender3 is using about 14% of my CPU power while doing daily quests.
Are there any less power consuming alternatives with about the same functionality?
Also I had FuBar PerformanceFu enabled to display memory usage per addon, which also used up around 14% of CPU power. After disabling the specific memory usage and only showing the general usage, it dropped down to ~3%.
In raids, AG Unitframes seems to be a resource hog as well, with my current options (player, target, target's target, only my party members). Wonder why.
Ya. Bartender is the next project on my list. It looked less horrible when I reinstalled addons without Externals. Probably ThreatLib or something being counted as part of Bartender.
Baby, you can hold my balls.
10:10 < buu_> Raut: You are a hero of the internet.
Bartender (and every other bar mod) will take some CPU time because of the way Blizzard designed some things like cooldown and range tracking, unfortunately. If you were to get action bars without cooldown info or range tracking, you could probably free that CPU up.
However, if there are performance issues, I'm sure nevcariel would love to know about them - I'm sure he can either explain why that CPU is being used, or track down any excessive work. He's writing Bartender4 right now, so it's a good time to mention things like this!