Mods and Performance
#13
Discussing 'performance' with addons often generates some amount of confusion and debate with all the different things people use to 'measure' performance.

The first one is memory usage. Some people consider consuming extra memory to be a sign of a poorly performing addon... and it may well be a lack of optimization in the data structures. Effect on actual framerates, however, is likely to be minimal or none at all, since a few extra MB used is not likely to make a real difference in the scheme of things when you've got a few GB lying around (maybe if you had like 512MB it could be a problem... but in that case addons probably wouldn't be your main issue). On the other hand, if the addon author is making use of caching certain data rather than using function calls (various inventory-management addons come to mind), that extra MB used could well correspond to an increase in performance. Addons like Auctioneer which store a ton of data but don't do anything normally (until, say, you dropped by the AH to do a scan) should not affect your general performance either.

The other thing to consider about memory usage is that with all the rage about ACE and other libraries shared between addons is that when they are loaded from within an addon's directory tree (as opposed to sitting inside the Addons/ directory as individual entities), the memory consumption of those libraries is attributed to that particular addon. For example, say you have Grid, and Pitbull (pulling these names off the top of my head here) using a bunch of libraries, and Grid is the first addon to load and loads the shared libraries, Grid will show a much higher memory usage than Pitbull even though Pitbull makes use of these same libraries. On the other hand, if you were running Pitbull by itself without Grid (or any other addon using the same shared libraries), its memory usage would show huge number. So unless you have all the shared libraries split up into individual entites rather than embedded within the addons that use them, don't put a lot of weight on the numbers you see for memory usage. (And, it probably doesn't matter a whole lot either).

Then, there's actual CPU time usage. This tends to have a greater effect on game performance and framerates. And that has more to do with how the coding is done, how much the addon tries to do in OnUpdate calls, what events the addon hooks, and how much it tries to do every time an event fires. There are addons out there that can profile your addons to see where CPU time is being spent.

Pitbull as it was this last year, for example, I could not use on my previous computer (near top-of-the-line early 2006). It would work okay most of the time, but every time I changed targets (and the associated event fired), it would do a whole bunch of stuff which would end up freezing the game for a very noticeable fraction of a second. I ended up switching back to ag_UnitFrames because of that (tried X-Perl, and while performance was fine, the frame layout and appearance did not agree with me). After upgrading to a new computer this last summer though, it could handle Pitbull with no issues, and have stuck with Pitbull since due to it having party targets which ag did not.

Performance bogging down during combat may be due to a number of things. Spell effects could be the issue, if your video card can't handle it. The other culprit tends to be addons that respond to the UNIT_AURA event... which fires very very often in combat, especially if there are a lot of people around--every time someone gains a buff, loses a buff, every time a mob gains a debuff or buff. And addons that respond to UNIT_AURA are every sort of player and raid frames, buff/debuff timers, probably boss mods as well, and more. Within your list, I can see Grid, Pitbull, XRS, PowerAuras which I know for sure. Probably ZOMGBuffs, Dotimer, Elkbuffbars, Parrot and DeadlyBossMods as well, though I am unfamiliar with them. If you're trying to improve the framerate in combat, these would the the addons I would look at first--which ones you could do without, which ones may have a more efficient alternative.

Combat log parsing used to be a big performance hit--for things like damage meters and combat text, since you had to parse the text string for every single combat event (and in raid combat, there are a *lot* of events especially back in the 40-man days and all your casters are AoE'ing), but with the new combat log system a number of patches ago that seems to be less of an issue these days. Still may cause a performance hit depending on how much processing the addon does with that data.

Range checking would probably be more of a generic performance decrease than combat-specific, as it would be doing it continuously (every x seconds)... unless the addon only does it during combat. I am not familiar with any addons having the option to check only during combat though.

Tooltip addons may or may not be an issue, depending on how often it updates the tooltip. I believe most of them just read the data when you first mouseover a unit, and it only grabs new information when you move onto a different unit... so you'd only notice a performance hit if you moved you mouse around a lot and hit a lot of different units and the addon did a lot of processing for each new mouseover. You would notice this though, as your system would freeze for a fraction of a second whenever you hit a new unit but no other time. However, if the tooltip addon has UNIT_HEALTH or OnUpdate hooks to modify the tooltip while it's being displayed, that could be a further performance hit beyond that.

A CPU usage profiling addon may be helpful; turn it on and run through a number of combats, and watch the numbers.

Wish you luck!

(Edit: grammar)
Onyxia:
Kichebo - 85 NE Druid

Do not meddle in the affairs of dragons, for you are crunchy and taste good with ketchup.
Reply


Messages In This Thread
Mods and Performance - by Mordekhuul - 12-18-2008, 02:45 PM
Mods and Performance - by RTM - 12-18-2008, 03:51 PM
Mods and Performance - by Mordekhuul - 12-18-2008, 03:57 PM
Mods and Performance - by Lissa - 12-18-2008, 04:14 PM
Mods and Performance - by Mordekhuul - 12-18-2008, 04:24 PM
Mods and Performance - by PapaSmurf - 12-18-2008, 04:32 PM
Mods and Performance - by Mordekhuul - 12-18-2008, 04:47 PM
Mods and Performance - by shoju - 12-18-2008, 06:44 PM
Mods and Performance - by Mordekhuul - 12-18-2008, 06:50 PM
Mods and Performance - by Taelas - 12-18-2008, 08:59 PM
Mods and Performance - by Chesspiece_face - 12-19-2008, 05:58 AM
Mods and Performance - by Artega - 12-19-2008, 06:11 PM
Mods and Performance - by Trien - 12-21-2008, 01:11 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)