From what I can tell, ORK appears to run in the background as a co-process along with everything else on the main thread, which tends to spike the CPU whenever it runs an event with a lot of nodes and formulas to check, even when adding intermittent 'Wait' nodes that give the processor time to breath. Garbage collection probably doesn't help either. I understand multi-threading carries its own set of issues, but could allocating all of the ORK processes to to a separate thread, such as they've done with the physics engine, help to improve frame lag?
Are you actually running into performance issues due to large events?
There's the Max Event Steps setting (default in Base/Control > Game Controls > Interaction Settings, can be overridden by each event) to automatically wait for the next frame after the defined number of steps/nodes.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Usually an event has near to no impact at all and it's only something to concern with if you're running a lot of events ...
Things that cost performance are mostly general performance pitfalls, like spawning/destroying prefabs. Also, using the new UI with a HUD constantly updating can impact performance.
I'd only expect that kind of spikes when using the profiler with Deep Profile activated.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
The 'variable Fork' node can also cause large performance drains if there are a large number of branches to check, and of course any node that checks a complex string of formulas. The processor can run these formulas in a nanosecond, as it does whenever the test calculation runs, but that's without having to run VSync and rendering and everything else that inevitably causes large scripts to bottleneck. I can also notice a slight UI up-tic at certain intervals, probably when the console updates, but it's mainly the scripts themselves that cause slowdowns. It seems like, if they're just used to run calculations and work off local variables from start to finish, at least some of these events could be allocated to a separate core and feed their data back to ORK either when they've finished or at intervals.
I'd be interested to check out one of your large events, though. Could you send me one to contact@orkframework.com? That'd allow me to check it out and see if I can somewhat improve this.
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
It's not mentioned anywhere and only used if I need access to google drive, as they don't support access with alternate emails ...
If you're enjoying my products, updates and support, please consider supporting me on patreon.com!