So basically, initialize time is just a delay, nothing else, my bad.
I tried out Pool Kit (https://assetstore.unity.com/packages/tools/utilities/pool-kit-the-ultimate-pooling-system-for-unity-121174) just for kicks, it has a lazy instantiation which does exactly what i explained, slowly pooling items throughout a pre-set time frame, that's a great feature that would be really cool in CGK.
I can make the slider so that it doesn't allow you to exceed the number of Pool Items, that used to work. Would that help?
I don't quite get you on this one?
Use case i have is slow loading time on weaker hardware (no SSD primarily and slow CPU's) and no way to hide the instantiation of so many objects due to dynamic nature of the game (SHMUP). For example, first boss has its own assortment of bullets and needs about 100 of them but there's no spot where i can stuff in the creation of 100 items. But, since you need about 100 seconds to reach him, you can create 1 bullet each second and avoid main thread blocks. I started making the game like 5 years ago when i knew nothing about programming and performance management, you should actually have a pool of bullets and change the animator, collider, speed and other characteristics on runtime so you don't need to pool 100x50 different types of bullets. Unfortunately, i'm to far off to change that now, hence the workarounds that i need.
That would work once the pool item is active (all items declared in the Inspector are instantiated). Or you could just have 1000 of the prefab already in the Scene, and just despawn them (saving on the instantiation).
Anyway, i just wanted to let you know that there's no way to use most of the Unity API (instantiate and destroy included) in worker threads since they are not thread safe. It can't be done with Jobs either.
Only stuff that can be used are mostly operations with certain data types (background calculations etc.).
Only way to speed up instantiations is with ECS but then you're using Entities and you don't actually need pooling anymore.
However, i saw your post on Unity forums on addressables, have you done some tests with them? Is there any noticeable difference in i initialization of the pools (creating items) with addressables loaded beforehand?
Or it basically boils down to saving memory by soft referencing on runtime?