Hello guys, good afternoon. Hope all is well for you.
I won't make a wall of text or something of sort, but I do have a little question that have been bugging me for while.
I have research before even make a thread, I know Ace3 has a good structure for performance with the LibStub, but this is just for performance sake. That said, now the question:
Installing Ace3 as separeted Lib (as an AddOn itself), keeping always updated, the WoW will load this first before anything (although I'm not assuming which will load first, so let's hope it loads alphabetically). Will this ensure that the subsequent addons only use the Ace3 (updated) code and at worst recheck every time the AddOn version, with LibStub, but not actually load the embedded code?
The design of the Ace3 libraries is such that regardless if you have Ace3 in your AddOns folder "standalone" or just the needed libraries embedded in your addons, only the most recent version of each library remains loaded in memory, the rest are discarded.
You don't have to worry about having multiple AceTimer-3.0 loaded from different addons that use it as an example.
The only reason to run with dis-embedded libraries (which entails more than just putting Ace3 in your AddOns folder, you also need to use no-lib packages for all your addons) is so you can do better profiling for memory or cpu consumption. (profiling = diagnostics, it's not related to the actual performance just the measurement of it; it won't make your addons 'faster')
Due to Ace3 being a collection of various libraries, your "performance" will actually be worse if you use it standalone, because you are pointlessly loading libraries that your addons may not even use. In that sense, your loading time may also end up being longer.
I personally do not recommend disembedding libraries whatsoever.
The standalone Ace3 package is not a single library. It's a package containing a bunch of independent libraries. There's no way to load some files in an addon, but not others, so when you load "Ace3" you load all the libraries in the package.
If you embed, you're not embedding the whole package. You're only embedding the individual library (or libraries) your addon needs, so only those libraries get loaded.