 |
05/30/07, 4:24 AM
|
#51 (permalink)
|
|
Von Kaiser
Night Elf Rogue
Magtheridon (EU)
|
Originally Posted by Daboran
Well, your "theory" isn't borne out by the facts. Already Omen uses far less cpu time in combat than KTM.
|
Then post your facts?
Also care to check stuff that has not been implemented yet.
KTM is solid raiding tool atm and Omen/Threat is not useable even on Onyxia right now.
|
|
|
|
|
|
05/30/07, 4:41 AM
|
#52 (permalink)
|
|
King Hippo
Tauren Druid
Twisting Nether (EU)
|
Is it me, or are people getting unnecessarily defensive here? Ok I may have overstated the case (read: posted an unsubstantiated statement) but meh.
Omen/Threat is certainly useable, though agreed not as a reliable raiding tool just yet.
I don't think you can discount idle time usage, memory usage etc (let alone ease of updating and the open source arguments) as benchmarks for peformance of an addon but I'll let that one slide.
Though it's probably a bit early to compare a mature addon like KTM with a beta product, when the time comes I assume for the purposes of comparison you would accept that a comparing addon performance stats for a 10-man raid would be acceptable? (I'd have trouble convincing my whole guild to install a pre-release addon just for testing purposes  )
Last edited by Daboran : 05/30/07 at 5:05 AM.
|
|
|
|
|
|
05/30/07, 4:57 AM
|
#53 (permalink)
|
|
Glass Joe
|
If Omen/Threat does everything that the authors are aiming for, it would make it a nice replacement for KTM. But as of now it is still in a beta phase, it is pointless discussing whether it will replace KTM in the future. Event driven vs Polling performance depends on the specifics of the implementation and the situation/scenarios as such it would not be fair to compare them as of now.
Any feedback we can provide only make it better.
|
|
|
|
|
|
05/30/07, 5:07 AM
|
#54 (permalink)
|
|
Great Tiger
Human Rogue
Cenarion Circle
|
Originally Posted by Elhana
Then post your facts?
Also care to check stuff that has not been implemented yet.
KTM is solid raiding tool atm and Omen/Threat is not useable even on Onyxia right now.
|
Check 'em yourself. I have.
Omen's also...let's see, four days old. Give it another four days and it'll be quite usable. I used it tonight in Karazhan with great success.
Edit: Want some numbers? Here you go. This was after about 10 fights or so, with Threat/Omen doing the same thing as KTM.
That middle column is total CPU time spent. FuBar is as high as it is due to the invocation of the Blizzard CPU profiling methods. KTM is as high as it is because it contains a metric assload of onupdate handlers that get called every frame. The number is, obviously, higher than it would be for the same time period without CPU profiling on, but the time-spent ratios should be relatively the same. KTM is horribly wasteful of your system resources, and in a single-threaded scripted system with limited resources, that's a Very Bad Thing.
Originally Posted by Shadowed
Actually, event method is worse then polling in a raid scenario.
Dagger Rogues would be an easy example, you're probably doing damage every 1.3-1.5 seconds on top of things like Deadly Poison and instants, meaning every single time I do an attack it has to update the UI, ect. With polling instead of updating 4-5+ times it could wait 5-10 seconds which cuts down on how many times you have to broadcast/update dramatically over 5-10+ minute fights.
|
You have no idea what you're talking about.
KTM runs dozens of handlers multiple times -every second-. Not every 5 seconds. Not a few times a minute. Every frame, it invokes multiple handlers. Every single frame.
Bucket events mitigate the burstiness of event-driven systems, and they don't consume any active resources when there are no events being fired.
I've profiled both KTM and Omen heavily using my own homegrown methods, as well as the build-in, Blizzard-provided, written-in-C profiler. ThreatLib and Omen are worlds more efficient. Anyone who has the slightest experience writing software knows that poll-driven systems are highly inefficient in the vast, vast majority of scenarios. WoW is one of them. About the only places that you want a polling system are a) an eventless system, which WoW is not, or b) a multi-threaded system that can run a background threadperiodically polling for state changes that effectively fire events for the primary thread. KTM fits neither of those descriptions.
Go read through the KTM code some time (I've done it) and come back and tell me it's efficient. It simply isn't.
Actually, event method is worse then polling in a raid scenario.
Dagger Rogues would be an easy example, you're probably doing damage every 1.3-1.5 seconds on top of things like Deadly Poison and instants, meaning every single time I do an attack it has to update the UI, ect. With polling instead of updating 4-5+ times it could wait 5-10 seconds which cuts down on how many times you have to broadcast/update dramatically over 5-10+ minute fights.
|
Editing in a response to this because it blows my mind.
KTM has to parse every single event that Threat/Omen does. It doesn't just check for a new event every 5 seconds. However, it has the additional overhead of running multiple handlers per frame, incrementing time counters, and then running code every half second or so, regardless of whether or not that code has to actually be run. It's inefficient and unnecessary, given Blizzard's event system, and it's just plain foolish to argue that it's more efficient than an event-driven system. If every WoW mod were written like KTM, the game would be unplayable.
Last edited by Antiarc : 05/30/07 at 5:29 AM.
|
|
|
|
|
|
05/30/07, 5:12 AM
|
#55 (permalink)
|
|
Bald Bull
Night Elf Druid
Stormreaver
|
Originally Posted by Antiarc
Wing buffets are tested to be a 50% aggro reduction, with the exception of some specific mobs. The NPC framework allows modules to register abilities, and those abilities are then checked against the combat log. When an ability fires, the current boss module gets first crack at it; if the boss module handles it, then the event is given to it for parsing. Otherwise, it's passed to the general handlers.
For example, KTM calculates Onyxia's knockback as a 75% threat reduction, but every other knockback is a 50% reduction
|
Void Reaver's is the same btw should make note its actually a 25% threat reduction meaning you have 75% threat left. Was kinda ambiguous in KTM I recall when I was changing the values for Void Reaver.
Which btw KTM still hasn't bothered to change it for Void Reaver. If it wasn't a threat sensitive fight I would say who cares but since it is and the numbers it works with are wrong it results in the one fight where KTM would be nice being worthless unless you get all your tanks to add in values for void reaver or use new files.
|
I need to do something useless.
|
|
|
|
05/30/07, 5:22 AM
|
#56 (permalink)
|
|
Piston Honda
|
Hi Antiarc, this looks wicked and I will definately by trialing its next raid, a couple of things that I would like to ask if there is a possibility of,
As a DPS warrior i am very threat limited in many fights where I have to hold back I was wondering if perhaps there could be the overall raid perspective that ktm shows right now and then perhaps a seperable window that could be placed, right in the middle of my screen (so i have no excuses), that could possibly show tank tps, my tps and time until I rip and get buttfucked by the boss,
I don't know if a real time timer till rip is something that is physically possible but I thought I would ask while the mod is still in its infancy
|
|
|
|
|
|
05/30/07, 5:24 AM
|
#57 (permalink)
|
|
Bald Bull
Night Elf Druid
Stormreaver
|
Originally Posted by Shadowed
If i'm wrong then i'd like to see the facts to prove it, but updating once every 5 seconds is faster then updating 4 times every 5 seconds, the only time it wouldn't be is during a fight where you have long periods of no combat, which is rather rare and could be solved by disabling polling as soon as you stop seeing messages after 20-25 seconds.
|
Calling a function 5 times a second is basically no processing too bad KTM calls like 20-30 internal functions every frame >_>
BTW KTM interestingly enough masks a lot of the processing time from itself by having the part that uses the most CPU time actually be its own internal profiler which of course doesn't measure the time it takes for it doing its own stuff (this is based on using the blizzard profiler checking function time).
Here's an example of how bad KTM is while idling in the middle of nowhere (this picture is with ~200 addons for testing purposes on PTR).

|
I need to do something useless.
|
|
|
|
05/30/07, 6:05 AM
|
#58 (permalink)
|
|
Glass Joe
Troll Hunter
Arathor (EU)
|
Pet threat
Forgive me if this is in hand, or a recognised bug, but toying with the mod as soon as server came up I cannot see that it has no visable measure of the threat generated by my pet
However, running KTM sidebyside the threat meter the threat figures certainly match with those of KTM, so that's cool
|
|
|
|
|
|
05/30/07, 6:41 AM
|
#59 (permalink)
|
|
Glass Joe
Undead Rogue
Burning Legion (EU)
|
Im geting this error when trying to run omen.
Error: bad argument #3 to 'format' (string expected, got nil)
File: Interface\AddOns\Omen\Omen.lua
Line: 30
Count: 1
|
Yarrr modern pirate!
|
|
|
|
05/30/07, 6:47 AM
|
#60 (permalink)
|
|
Von Kaiser
Undead Mage
Talnivarr (EU)
|
Looks very promising, can't stand how bad KTM is for performance.
At the moment i get the same error as posted by cykyter.
I actually get a (non-movable) omen frame but nothing appears and i get some other errors, probably related to something going wrong on loading.
edit, ye it's euGB here
Last edited by banaj : 05/30/07 at 7:00 AM.
|
|
|
|
|
|
05/30/07, 6:49 AM
|
#61 (permalink)
|
|
Get ready. Pulling raid in 5...
Orc Hunter
Argent Dawn (EU)
|
I've installed Omen to give it a go, as i like idea very much. I've already fowarded info about it to my guild
To the point:
Im currently running version r37655 and it bugs all the time for me. I dont see any threat values displayed and im reciving errors all the time.
When im targeting mob, im getting error message "Interface\AddOns\Omen\Omen.lua:48: bad argument #1 to 'pairs' (table expected, got nil)"
After sending pet in and starting to shoot another error message pops up after first damage done "Interface\AddOns\Omen\Omen.lua:69: attempt to index field 'bars' (a nil value)"
After mobs death, detargeting it and then clicking to loot (and by this targeting again) again "Interface\AddOns\Omen\Omen.lua:48: bad argument #1 to 'pairs' (table expected, got nil)" error message popped up.
Also.. i cant move Omen window... im not sure if its bug, or its just me *cough*
|
|
|
|
|
|
05/30/07, 6:49 AM
|
#62 (permalink)
|
|
Glass Joe
Undead Rogue
Burning Legion (EU)
|
Yeah I have same frame in the middle of screen too. I was wondering if it has something to do with client localisation, as we both are playing with euGB loc(?) and developer is from us 
|
Yarrr modern pirate!
|
|
|
|
05/30/07, 7:05 AM
|
#63 (permalink)
|
|
Von Kaiser
Undead Mage
Talnivarr (EU)
|
Just downloaded Omen-r37672 and it works 
Time for some testing.. if only my realm wasn't messed up.
|
|
|
|
|
|
05/30/07, 7:07 AM
|
#64 (permalink)
|
|
Von Kaiser
Gnome Warlock
Black Dragonflight
|
edit: nevermind, apparently I missed a whole page of discussion
Last edited by Tehehe : 05/30/07 at 7:20 AM.
|
|
|
|
|
|
05/30/07, 7:08 AM
|
#65 (permalink)
|
|
Get ready. Pulling raid in 5...
Orc Hunter
Argent Dawn (EU)
|
Originally Posted by banaj
Just downloaded Omen-r37672 and it works 
Time for some testing.. if only my realm wasn't messed up.
|
Yeah, just did same and its working properly now.
First thing that came to my mind is that Omen is not measuring Growl yet, but i guess its still on 'To do list'. First impressions are pretty good 
|
|
|
|
|
|
05/30/07, 7:10 AM
|
#66 (permalink)
|
|
Everyone licks chicken.
Blood Elf Paladin
Azjol-Nerub (EU)
|
In case it's any help for the future, KTM sends it's messages in this format:
prefix: KLHTM
text: t Threat
type: RAID or PARTY depending on whether you're in a raid or not.
You can spoof a KTM threat communication by doing: SendAddonMessage("KLHTM","t 50000","RAID")
There's some checks in there for versions as well, and the version query being sent by someone seems to include the version number as well, which will make spoofing an up-to-date KTM version response very easy. But I'm not exactly sure if it works that way.
Edit:
There's already some framework in place taking into mind the above. So, instead so this post actually has a use, suggestion for handling:
- Add a (KTM) suffix to any data incoming from KTM
- Add the threat reported by KTM to all targets (Much like healing threat; this is also just an assumption since more details are not available and it's better to guess higher than to guess lower)
- For sending threat to KTM, make the threat reported equal to all threat generated on all available targets in the current fight; this should be functionally equivalent to the data KTM sends. Make sure some communication has taken place beforehand that checks which users are using Threat-1.0 and/or Omen instead, so KTM data from these users is ignored, since we have per-target information.
Last edited by Chicken : 05/30/07 at 7:49 AM.
|
buff /bʌf/ Pronunciation[buhf]
–verb (used with object)
- to reduce or deaden the force of
|
|
|
|
05/30/07, 7:12 AM
|
#67 (permalink)
|
|
Not enough rage
Gnome Warrior
Argent Dawn (EU)
|
Originally Posted by Cryect
Here's an example of how bad KTM is while idling in the middle of nowhere (this picture is with ~200 addons for testing purposes on PTR).
|
Now Im very interested in an Ace variant of KTM, mostly because i find the wowaceupdater to be much easier to use than tracking down updates yourself.
KTM being a resource hog doesnt matter for me because of my system specs, but what I dont understand is why anyone would care if KTM uses alot of CPU time when your idling?
Comparisons between an Ace variant and KTM while actually raiding is valid and interesting but just showing that KTM uses resources when you arent doing anything is pointless because the resources "wasted" by KTM would be wasted anyway since you arent actually doing anything with the game.
Conclusions:
Comparisons between KTM and Omen resource usage in raids is is a good thing
Comparisons between KTM and Omen resource usage when idling is pointless.
|
|
|
|
|
|
05/30/07, 7:24 AM
|
#68 (permalink)
|
|
Von Kaiser
|
I'd just like to say a few words to balance some of the misinformation coming from Cryect and Antiarc above. The numbers they are quoting are misleading and a lot of their claims are simply wrong.
Their main premise is "PerformanceFU says KTM is using heaps of processor when i turn profiling on". Well, here's news for you: profiling just isn't accurate for small scale processor usage. Why? On short functions, the time spent profiling is much longer than the time spent actually performing the function.
Here's a simple example.
/script a = function() b() end; b = function() c() end; c = function() end;
/script start = debugprofilestop(); a(); a();a();a(); a(); a();a();a();a();a(); finish = debugprofilestop(); total = finish - start
We have a function a, which calls the function b, which calls the function c, which does nothing. In other words, it should take no time at all to run. The second script line runs it 10 times, and puts the time into the variable total.
I ran this macro with profiling on and off, and i've converted the times to ticks as reported by the QueryPerformanceCounter API, which WoW is using.
With Profiling: total = 273 ticks
Without Profiling: total = 18 ticks.
No typo; 15x longer to run the method when profiling is enabled. Now obviously profiling isn't making everything 15x slower, but if you have lots of small, frequently occurring functions, the mod will take a larger hit from the profiler.
Now, it just so happens that KTM has a lot of small, frequently occurring functions. Contrary to what Antiarc states, KTM doesn't use significant processor time due to OnUpdate events. With profiling disabled, KTM uses 0.5% processor on my system. When profiling is enabled, that goes up to 2.4%.
Antiarc says
|
Every frame, it invokes multiple handlers. Every single frame.
|
That's wonderful, but KTM only has 1 frame with an OnUpdate handler.
Cryect claims in his screenshot that KTM has used 97499 seconds of processor time. I find it hard to believe that KTM has used 27 hours of dedicated processing time. With profiling on my machine this would take 1128 days of WoW being left on.
Antiarc says
|
If every WoW mod were written like KTM, the game would be unplayable.
|
To test his claim, i modified KTM to call every OnUpdate handler 100 times when it executed. The processor usage went up to 18.6%, and my FPS dropped to 58. I wouldn't really call this unplayable.
Now please don't get me wrong here. I have nothing against the idea of another threat meter, in fact i think it's a great idea. But if you want to promote your addon, some cheap KTM-bashing with misleading data and incorrect claims is really poor form.
|
|
|
|
|
|
05/30/07, 7:31 AM
|
#69 (permalink)
|
|
What would you have me do?
|
As was said, if every addon was written that way, you'd quickly make your game unplayable by having something like 6 addons. It might not be a big issue if you only have one, but it'll quickly become apparent as you add to that.
In addition, not everyone is only worried about performance anymore. More CPU power = more watts used and more heat, especially if you've got CPU throttling that actively changes the MHz to save power. If I'm idling in Shattrath my system shouldn't be working like a dog.
Edit:
|
That's wonderful, but KTM only has 1 frame with an OnUpdate handler.
|
Not frame as in the little boxes for the UI. Frame as in every single time your computer refreshes the screen.
|
Originally Posted by DeeNogger
This can easily be avoided by never saying anything regretful.
|
|
|
|
|
05/30/07, 7:43 AM
|
#70 (permalink)
|
|
Von Kaiser
|
Maestroquark,
No, it means that 600 addons running like KTM would make the game unplayable. I changed KTM to execute each handler 100 times, simulating 100 addons having the same scope as KTM, and performance was fine. So my point stands.
On your second point, virtually none of the KTM onupdate methods run on every Onupdate tick. e.g. in KTM_My.lua
me.myonupdates =
{
redostates = 0,
redomods = 1.0,
redoglobalthreat = 1.0,
redospellranks = 10.0,
}
|
Spell ranks are updated only once every 10 seconds. Threat modifiers are updated only once every second. Redostates is one of the few methods that run every update; it performs some small trivial calculations.
|
|
|
|
|
|
05/30/07, 7:48 AM
|
#71 (permalink)
|
|
Foobar
Troll Priest
Azjol-Nerub (EU)
|
Before this turns into a huge flame war. Lets thank Kenco for updating KTM for the past 1.5 years. He was the only one who bothered making it untill now.
Without him we would not have figured out Execute had a threat modifier. Without him we would not have figured out Onyxia's threat (fireballs). Without him a lot of guilds would not have been able to kill Vael. Without his mod confirming 4h threat mechanics would have been not possible. And for all the tedious hours testing abbilities.
Thank you Kenco.
|
* Bla
|
|
|
|
05/30/07, 8:02 AM
|
#72 (permalink)
|
|
King Hippo
Tauren Druid
Twisting Nether (EU)
|
Originally Posted by Polleke
Before this turns into a huge flame war. Lets thank Kenco for updating KTM for the past 1.5 years. He was the only one who bothered making it untill now.
Without him we would not have figured out Execute had a threat modifier. Without him we would not have figured out Onyxia's threat (fireballs). Without him a lot of guilds would not have been able to kill Vael. Without his mod confirming 4h threat mechanics would have been not possible. And for all the tedious hours testing abbilities.
Thank you Kenco.
|
Agreed, no-one is trying to discount the hours of work Kenco put in and the benefit this has had to raiding within WoW.
For me (and I suspect many others) the main issue here is that if it can be done as well or better within the Ace framework then I'm going to use it. The days are gone of individually downloading many addons and/or waiting days/weeks for them to be updated after a patch breaks something. I loved nurfedui but it fell by the wayside for these reasons.
|
|
|
|
|
|
05/30/07, 8:03 AM
|
#73 (permalink)
|
|
Don Flamenco
Draenei Shaman
Tichondrius
|
| |