How can I efficiently load a lot of assets?

So I have a lot of decals, sounds, etc that I would like to load into my game fast so that the player can jump right on in and play the game. However I was researching around for the most efficient ways to load assets and I was not very successful and finding some methods that could be helpful. I ended up coming across some code that I altered and I am unsure if this is the best way to go about trying to load my gui or if it even works…

How do I know if this worked correctly??

local GUI = script.Parent
game:GetService("ContentProvider"):PreloadAsync({GUI})

The function has no return (is a void function) but it yields, which means that any code following the function call will not be executed until the call to :PreloadAsync() has concluded, as such you can safely assume that whatever asset you were loading has loaded by the time the next line of code directly after the “:PreloadAsync()” call begins execution.