First off and simply put. Ace and its main programmers are the future of wow addons. I've come to a point where I can't stand how inefficiently some addons are programmed and the consequences they bring to my client and my game experience. Garbage collection game pauses every few minutes are really bringing me down..
Im hoping a memory efficient Ace programmer plays warlock, because I'd like to make a request. :-| The main addon for the warlock class, ShardTracker NCS, has huge memory problems. Using Titan Panel's Performance plugin, my "increasing memory usage" rate bounces anywhere between 60-100kbps which makes the client pause for garbage collection every few minutes. However, it's the defacto addon for the warlock class and it's utility is of great use. Would any of the memory/performance conscience programmers be up to the challenge of acing the functionality of this addon into an efficiently running addon? My main is warlock and I can volunteer as a guinea pig, as Im lvl 60 with every ability. I also raid and pvp (world and bg) a lot.
A little history on ShardTracker. There is a ShardTracker and a ShardTracker NCS. ShardTracker is the original and was dependent on all the cosmos bloat. A user named Gottac removed all Cosmos dependencies and added further functionality and gave it the name ShardTracker NCS (NCS standing for No Cosmos, Sea, I think). The original suffered from being a memory hog and has not been touched since March. ST NCS is suffering from the same thing and it doesnt look like Gottac is able to pin point the problem either. So here I am, lying before the mercy of Ace efficiency asking if anyone (Preferably someone with Rowne's attention to optimization :D ) can write a new optimized Ace addon that provides the functionality of ShardTracker NCS.
I glanced at ShardTracker. It looks like it needs some serious work. I can tell you it's OnUpdate is probably the entire problem. You might be able to improve it simply by closing ST's OnUpdate frame and installing Timex with the Chronos placeholder so that ST will use it. This may help quite a bit since at a glance I couldn't see ST closing its OnUpdate frame ever. That's very much bad.
Further problems, though, may also be with handling BAG_UPDATE events. Bag events seem to be some of the nastiest in the game and far too many addons hook them, sometimes of necessity, often sloppily. But part of that is also the sloppy nature of these events. This may improve in 1.7, but I'm not holding my breath.
As an idea, since there are so many addons that need to monitor inventory status, might some sort of shared addon/library be beneficial here? I'm thinking the addon would handle all events and hooks and other addons would register through this addon. Then the bag update addon would intelligently distribute the events, ensuring that duplicate events are not sent and that the event only gets passed on when an addon needs it. For example, an addon could request having an event only when shard levels changed.
I'm not sure how feasible this is or how well it could be done, but it almost seems there's as much a need for this kind of management as for OnUpdate timers themselves.
hmm, using Shardtracker NCS too, but can't understand why you have 60-100kbps increasing memory usage. I idle around 3-5kB/s (0,5-1,5 if I'm just standing around long enough). In combat it's around 10-20kB/s.
None the less, I allways like optimized addons and would use an Ace'd Shardtracker for sure ;)
Hmm. I wouldn't know how to close ST's OnUpdate frame. I don't know a lot about coding from scratch. I just learn syntax formats and edit things.
I had a feeling the shard sorting was a problem. I've read how bag events can cause a lot of problems. I disabled auto-sorting in hopes of gaining some performance, because clicking the icon to sort them manually was good enough. But, that didnt seem to make an difference. I get the feeling it's another case where the addon is running that code, even though you "disable" it. Much like raid frames in Nymbia's Perl Unit Frames.
I took a look at Rowne's Timex and his attitude behind creating that timer system is exactly what I dream to be done to ShardTracker NCS. Make this thing tiny and efficient.
I allways hated necrosis ... the look ... /shiver. Shardtracker NCS + Servitude Ressurection are nice and unobtrusive ;)
I agree. When I was first looking at shardtracker type addons, I passed Necrosis because of the way it looks. ST ncs displays that same info in 4 small icons on the minimap. It looks much cleaner.
I imagine an Aced ST could work well with Timex for things like the soulstone cooldown reminder.
Nice gear, Sariash! Im trying to get into an organized raiding guild atm.
About the memory use, 100k is the highest Ive ever seen it reach and Ive only seen that once. It can be around 15k when Im in a major city, but when I get out and start doing things, its typically around 50k-70k. I do use a lot of addons (addons are so fun!), but removing ST ncs alone, drops that increasing memory usage down to 15k-30k.
First off and simply put. Ace and its main programmers are the future of wow addons. I've come to a point where I can't stand how inefficiently some addons are programmed and the consequences they bring to my client and my game experience. Garbage collection game pauses every few minutes are really bringing me down..
Im hoping a memory efficient Ace programmer plays warlock, because I'd like to make a request. :-| The main addon for the warlock class, ShardTracker NCS, has huge memory problems. Using Titan Panel's Performance plugin, my "increasing memory usage" rate bounces anywhere between 60-100kbps which makes the client pause for garbage collection every few minutes. However, it's the defacto addon for the warlock class and it's utility is of great use. Would any of the memory/performance conscience programmers be up to the challenge of acing the functionality of this addon into an efficiently running addon? My main is warlock and I can volunteer as a guinea pig, as Im lvl 60 with every ability. I also raid and pvp (world and bg) a lot.
A little history on ShardTracker. There is a ShardTracker and a ShardTracker NCS. ShardTracker is the original and was dependent on all the cosmos bloat. A user named Gottac removed all Cosmos dependencies and added further functionality and gave it the name ShardTracker NCS (NCS standing for No Cosmos, Sea, I think). The original suffered from being a memory hog and has not been touched since March. ST NCS is suffering from the same thing and it doesnt look like Gottac is able to pin point the problem either. So here I am, lying before the mercy of Ace efficiency asking if anyone (Preferably someone with Rowne's attention to optimization :D ) can write a new optimized Ace addon that provides the functionality of ShardTracker NCS.
Please :)
ShardTracker:
http://www.curse-gaming.com/mod.php?addid=324&page=19#comment
ShardTracker NCS:
http://www.curse-gaming.com/mod.php?addid=356&page=49
I glanced at ShardTracker. It looks like it needs some serious work. I can tell you it's OnUpdate is probably the entire problem. You might be able to improve it simply by closing ST's OnUpdate frame and installing Timex with the Chronos placeholder so that ST will use it. This may help quite a bit since at a glance I couldn't see ST closing its OnUpdate frame ever. That's very much bad.
Further problems, though, may also be with handling BAG_UPDATE events. Bag events seem to be some of the nastiest in the game and far too many addons hook them, sometimes of necessity, often sloppily. But part of that is also the sloppy nature of these events. This may improve in 1.7, but I'm not holding my breath.
As an idea, since there are so many addons that need to monitor inventory status, might some sort of shared addon/library be beneficial here? I'm thinking the addon would handle all events and hooks and other addons would register through this addon. Then the bag update addon would intelligently distribute the events, ensuring that duplicate events are not sent and that the event only gets passed on when an addon needs it. For example, an addon could request having an event only when shard levels changed.
I'm not sure how feasible this is or how well it could be done, but it almost seems there's as much a need for this kind of management as for OnUpdate timers themselves.
None the less, I allways like optimized addons and would use an Ace'd Shardtracker for sure ;)
I had a feeling the shard sorting was a problem. I've read how bag events can cause a lot of problems. I disabled auto-sorting in hopes of gaining some performance, because clicking the icon to sort them manually was good enough. But, that didnt seem to make an difference. I get the feeling it's another case where the addon is running that code, even though you "disable" it. Much like raid frames in Nymbia's Perl Unit Frames.
I took a look at Rowne's Timex and his attitude behind creating that timer system is exactly what I dream to be done to ShardTracker NCS. Make this thing tiny and efficient.
Thank you for taking a look at it.
I allways hated necrosis ... the look ... /shiver. Shardtracker NCS + Servitude Ressurection are nice and unobtrusive ;)
I agree. When I was first looking at shardtracker type addons, I passed Necrosis because of the way it looks. ST ncs displays that same info in 4 small icons on the minimap. It looks much cleaner.
I imagine an Aced ST could work well with Timex for things like the soulstone cooldown reminder.
Nice gear, Sariash! Im trying to get into an organized raiding guild atm.
About the memory use, 100k is the highest Ive ever seen it reach and Ive only seen that once. It can be around 15k when Im in a major city, but when I get out and start doing things, its typically around 50k-70k. I do use a lot of addons (addons are so fun!), but removing ST ncs alone, drops that increasing memory usage down to 15k-30k.
Thanks, I took the easy way though and brought nearly 75% of my old everquest raidingguild to WoW ;)
<edit>
I'm running many addons too, around 60. Maybe the memory usage rate of ST comes in combination with another addon. /shrug
http://wowace.com/forums/viewtopic.php?t=252
Go! look! pull my code to bits :)