For a while now, we have had *incredibly* bad delays entering play mode. It got to the point where on my PC it would take 2 minutes to enter play mode. I attributed to having an old machine, since a little bit of profiling showed that it was just BuildScriptFastMode.BuildData() and I assumed that would have to be slow on a large project and I had other tasks to worry about. Nonetheless, it was still taking 40s to enter play mode on my brand new machine and I decided to have a poke. I found that out of the 40s, 28s were spend on this line in AddressableAssetEntry: if (AssetDatabase.GetMainAssetTypeAtPath(path) == typeof(AddressableAssetEntryCollection)) Our project doesn't even contain any AddressableAssetEntryCollection objects! That innocuous line causes Unity to load all assets that go through that code path, textures, models, everything, only to discard the result. In our case, I can just comment this out and enjoy a semi-reasonable workflow, but surely this needs to be optimised? The AssetDatabase blatantly doesn't use an asset type cache for GetMainAssetTypeAtPath(), which means that if this has to happen like this, surely even passing down a HashSet of AddressableAssetEntryCollection asset paths, obtained via a FindAsset query with "t: AddressableAssetEntryCollection" would be preferable? I've made that modification on my end as a test and it **massively** speeds up the addressables system, all the way from opening the addressables window (which in itself was a massive slog before) to entering play mode. One great concern I have, is the system actually being tested on large projects on the development end? How could this have gone unnoticed? @unity_bill Please do comment, as I cannot really submit this as a bug, I'd need to somehow generate a large enough project.