Quote Originally Posted by ZorbaTHut View Post
Quote Originally Posted by DoomSprout View Post
However, I think it's going about it in the wrong way. Using a 0.1s warning is catching spikes, but not a steady ongoing reduction of a player's FPS (which I believe is the only measure anyone actually cares about). Changing it to allow each individual addon it's own timeslice would help individual authors resolve performance warnings in their own addons, but I don't think it's addressing the real problem.The watchdog needs to look for on-going performance issues over a period of time. A single spike should never cause a warning, otherwise Trion's own Soul Tree window should be triggering warnings every time it's opened!
I agree! . . . partially.First, as tricky as it is to get spike detection working reliably without false positives, it's *far* harder to get on-going performance issue detection working that well. In many ways this is Version 1, where Version 2 will start paying attention to CPU usage over long periods of time.(That definitely won't happen until after Storm Legion so don't panic)But spikes are important also - the entire client locking up for a visible period of time, which can be as little as a tenth of a second, contributes rather heavily to feeling like there are performance problems. We've spent a bunch of effort to squash those - the Soul Tree is probably one of the biggest remaining issues, trust me, we're aware of it - and those turn out to be some of the more subtle and hard to find errors.Example time! Like I imagine many addon authors do, I've got a few personalized single-purpose addons I put together for my own purposes. One of them started triggering the watchdog, so I spent a little time to fix it. It turns out that a framerate glitch that I'd thought was in the Rift UI was actually in my addon. If I can make that mistake - an addon I wrote, running on an addon framework I wrote, compared to a core Rift UI element that I've probably spent a week or two working on - Rift players can certainly make the exact same mistake.And while I agree that addons like BananAH should get more leeway with performance, they actually have it already - they can use Command.System.Watchdog.Quiet() to get up to a full second of CPU at a time.I'll be working on changing the watchdog performance monitoring into a per-event-handler thing instead of a per-event thing - I agree, that needs to be done - and I've been considering changing the current "soft" Watchdog cutoff to 0.2 seconds, and introducing a "super-soft" cutoff at 0.1 seconds that doesn't show up for the user but does show up in the error reports. That'd be a lot of work and may not actually occur, however, we'll see how things go after the per-event-handler change goes in. Also, while texture loading is proving a major bottleneck and real asynchronous support needs to be added, Imhothar's LibAsyncTexture library is an excellent interim solution until I can provide something a bit more built-in.All that said, performance really is kind of a tough thing to deal with, and while it's quite clear some tweaks and added tools are needed, the general concept of the current behavior of the watchdog is probably going to stick around. I totally agree that it needs to deal with long-term CPU usage, but that's going to be in addition to, not in place of, the current behavior.(Eventually.)
Jump to post...