[CF 1302] Have micro stutter with many conditions
tmw-issue-import opened this issue · 4 comments
Hi first,
i have a problem with the performance of TMW when you´re using icons with a lot of conditions in it, about 50+ and more.
I was trying to get a combo point(cp) check condition for my rogue so that i dont have to take care of overcapping cp with my cp builder spells.
For this i wanted to write all posibilitys that you can have with your talents and it degenerated in a heavy condition query.
Right now its not working as intended,at least not as i want it to be,but its ok to show my problem.Perhaps i have to add even more conditions to it.
It independent of my fps either 40 or 90+. The micro stutter begins to start after using TMW for a while like 10+min and in dungeons it´s more noticeable if youre in a dungeon than testing it solo on a dummy.
I am using a update interval of 0 sec and a Buff Efficiency Threshold of 15. I dont know if 15 is enough or if it should be more or fewer because i dont really get what this setting does and what it should be best if you have so many conditions.
If you dont see any performance decrease then it´s probably a combination of TMW and my other Addons that causes this.
My question now is how can i enhance the performance so that i wont have micro sutter anymore?
Do i have to split for example icon 3 into several icons with fewer conditions or is there a maximum of conditions that tmw can handle ,lets say like a total of 100 conditions in general and all above it the performance gets out of control?
I am using TMW version 8.1.2
Here is a string of my group,Because it is not 100% working,since i stopped working on it after the stutters came to appear, you should test it out on a 111 mob or lower:
,,,
Posted by CurseForge user Mindfork | Imported from CurseForge issue #1302 | Raw
- I can't test this because everything is in German.
- Buff Efficiency Threshold has nothing to do with conditions
- Yes, you really need to split this up. Not only will that make it more performant, but it will also make it much easier for you to actually get it working. In particular, the Icon Shown conditions that you are using is causing the entire thing to have to update on every single frame. If you didn't have the Icon Shown conditions, or if you all all the rest of the logic in another icon and referenced that using an icon shown condition, the performance would be much faster, since all the other conditions you used can be driven by events - that is, that they will only update when the game reports that something (your talents, your buffs, your combo points, your cooldowns, etc) has changed.
The https://en.wikipedia.org/wiki/Cyclomatic_complexity of what you've made is immense - far greater than any of TMW's code. I can say with certainty that it is the most complicated expression I've ever seen. That's not a good thing. I've attached a screenshot of the code that is generated for you conditions - perhaps that can give you an idea of where the issues are coming from and why this is a problem
Posted by CurseForge user Cybeloras
Aight thanks for the info.I think it is a combination of my addons,graphic settings and also tmw. I have sb else test it and he hasnt this kind of problems.But i will try not to use the icon is shown check anymore. The "Cyclomatic complexity " should be working fine and took me hours to make it work.At least the bottom part. If you would like to test it i can change it into id´s. Could you plz explain for what Buff Efficiency Threshold exactly is ,would be nice to know if its not to much work:)
Edited Sep 17, 2016
Posted by CurseForge user Mindfork
Update: I was working on it and had removed almost all of my "icon is shown" checks in every condition of each icon, from up to 5 to until 1 because this one is necessary.That means of course that i had to add even more conditions and for example i ended up with 85 conditions in the "Sabler Slash (high condition) icon".But it works extremely better. The micro stutters are almost gone. After this the next step is to split the icons up for even more performance if needed.But as long as it is working i keep it like this and save the additional work. Thanks for the explanation of how the "Icon Shown Condition" works, i had not come by myself and consequently on the solution of it.
Posted by CurseForge user Mindfork