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.