As I mentioned in previous build notes, there is an issue with copying multiple elements on a sheet. To address this, I’ve moved the sheet elements to a pooling system. At startup, a pool is filled with sheet elements that are used to fill out sheets. When switching between sheets, the elements from the current sheet are returned to pool and elements for the new sheet are then pulled from the pool.
This has, so far, been pretty successful. However, there is a still a stall when copying more than 30 or so elements. As you may know, Unity uses C# for development. C# is a managed memory environment and whenever instantiating new objects, there is CPU overhead managing the memory. I need to take a deeper dive and find all the places that I’m allocating new memory and refactor to make sure that it’s absolutely necessary.
On the plus side, loading sheets is faster now.