WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   Ace2/3... Really Needed? (https://www.wowinterface.com/forums/showthread.php?t=23148)

PerfectH 05-02-09 06:37 AM

Ace2/3... Really Needed?
 
I came across a thread the other day (I can't find it now) and if I was reading it correctly, someone claimed that you do not need Ace2 or Ace3 AddOns themselves installed to make your standalone AddOns work properly, because the AddOns that use those libraries already have them included, thus including Ace2 or Ace3 is redundent and takes up extra memory.

I just wanted to check with the WoWI commuinity to see if I were to disable and remove Ace2 and Ace3 from my AddOns folder if it would do any damage to my UI? I'm not home to try this out, but an answer will give me something to think about till I do get home to test it for myself ;)

It's Spring Cleaning time and... well... I have Digital OCD (this is a condition I kinda made up), so I want my AddOns as well as my computers to be neat and tidey, and I want to cut out any AddOns I'm no longer using or that I don't need. Thanks for reading and for the help!

septor 05-02-09 06:49 AM

99% chance you don't need them if they are packed with the addons that use the libraries.

The best way to test is to disable them from the addons menu and see if any issues pop up.

PerfectH 05-02-09 07:12 AM

Quote:

Originally Posted by septor (Post 132852)
99% chance you don't need them if they are packed with the addons that use the libraries.

The best way to test is to disable them from the addons menu and see if any issues pop up.

You're probably right. However, say there is an AddOn that does need it because the author didn't include the libraries, could I just copy and paste the libraries into that AddOn's folder and have it work? Or does it not work that way?

I'll have to try this when I get home like I said, I'm at work. :(

septor 05-02-09 07:26 AM

Quote:

Originally Posted by PerfectH (Post 132856)
You're probably right. However, say there is an AddOn that does need it because the author didn't include the libraries, could I just copy and paste the libraries into that AddOn's folder and have it work? Or does it not work that way?

I'll have to try this when I get home like I said, I'm at work. :(

In theory, yes it will work.

Khanon 05-02-09 08:11 AM

While in theory that is true, why would you want to double and redouble your memory size rather than just leave those libraries as general addons for those addons that don't already have them? They're load-once unless I'm mistaken, so why take up more and more physical storage room than necessary?

*shrugs* Unless I'm completely missing how they're integrated...

PerfectH 05-02-09 08:29 AM

Quote:

Originally Posted by Khanon (Post 132876)
While in theory that is true, why would you want to double and redouble your memory size rather than just leave those libraries as general addons for those addons that don't already have them? They're load-once unless I'm mistaken, so why take up more and more physical storage room than necessary?

*shrugs* Unless I'm completely missing how they're integrated...

Are you suggesting that if I removed Ace2 and Ace3, that my AddOn's will consume more memory rather than less? If that's the case, I won't touch them, I just had it in my head "less AddOns, less Memory used".

I'm still noobish to understanding how an AddOn works, so this is all confusing for me :s

Auren 05-02-09 08:31 AM

I thought ACE mods didn't load the ACE mods they include if ACE is already in memory.
If so, ACE, was coded to do that? Maybe I'm wrong, but when I used to dabble with ACE, I remember reading ace2 included this.

septor 05-02-09 09:00 AM

Quote:

Originally Posted by PerfectH (Post 132886)
Are you suggesting that if I removed Ace2 and Ace3, that my AddOn's will consume more memory rather than less? If that's the case, I won't touch them, I just had it in my head "less AddOns, less Memory used".

I'm still noobish to understanding how an AddOn works, so this is all confusing for me :s

If you use external libraries (have all the libraries inside your addons folder as appose to inside each addon folder) you're only going to save yourself disk space.

From what I remember libraries are LoD, so it doesn't matter where they are loaded from.

Edit: And it's Ace, not ACE. It's not an acronym.

Tristanian 05-02-09 09:09 AM

Lots of misconceptions here, so here goes:

1) If an addon is designed/distributed with embedded libraries (this includes Ace2/Ace3) then you do not need to have the standalone versions of said libraries.

2) If you have specifically downloaded an addon that utilizes libraries but does not embed them then you need to have the standalone versions of said libraries, inside your Interface folder (they will appear as separate addons), for that addon to function properly.

3) Libraries have version control checks in place. This means that if 932842567252 addons embed library A, then only one copy of library A will exist in memory (the one with the most recent version). This is also true for both Ace2/Ace3.

4) As a user, there is no reason whatsoever to use standalone libs (or disembed addons), especially if most (if not all) of your Addons use Ace3, since its libraries were specifically designed to be used as embedded. The few seconds that you gain in terms of loading time is not really worth it, unless you are running an obscene number of addons that rely on different frameworks. Running as disembedded is an old habbit, caused by the bloat of Ace2 that people simply refuse to let go. At that time, there was significant benefit from disembedding Ace2. All in all, if you aren't a developer that wants to reliably use CPU/Memory profiling for debugging purposes, disembedding nets you little benefit and in certain cases it may even cause issues, especially if you are not familiar with the way addons work.

Edit: Certain libraries are also designed to be hard-embedded only, for example LibDataBroker. As for disk space, the library folders in my own WoW copy, occupy around 14 megs of disk space, which in my eyes is a negligible amount considering that the HDD total capacity is 500 Gigs. If you really need those few extra megs though, go ahead :p

5) Simply copying the standalone version of libraries inside the "libs" folder of an addon that runs as disembedded will not necessarily force said addon to run as embedded. You will also be required to edit the .toc file (or even embeds.xml if it is being used) and add a reference to each and every library (either the xml or the lua file directly, it depends on the complexity of the lib and any dependencies it may have), so that it gets loaded before the main addon code does.

Auren 05-02-09 09:45 AM

Quote:

3) Libraries have version control checks in place. This means that if 932842567252 addons embed library A, then only one copy of library A will exist in memory (the one with the most recent version). This is also true for both Ace2/Ace3.
Thought so. Cheers.

Zyonin 05-02-09 12:28 PM

Quote:

Originally Posted by PerfectH (Post 132856)
You're probably right. However, say there is an AddOn that does need it because the author didn't include the libraries, could I just copy and paste the libraries into that AddOn's folder and have it work? Or does it not work that way?

I'll have to try this when I get home like I said, I'm at work. :(

Unless you downloaded a "nolib" Version from WoWAce/CurseForge or via the Curse Client (then you likely know what you are doing in the first place) or from another development site such as Google Code, then your AddOn will come with all the needed libraries. This applies to all mods downloaded from Curse, WoWInterface and WoWUI.Incgamers as well as downloads from CurseForge/WoWAce (where you have not specifically selected a "nolib" version).

Slakah 05-02-09 12:34 PM

Quote:

Originally Posted by Tristanian (Post 132895)
Lots of misconceptions here, so here goes:
3) Libraries have version control checks in place. This means that if 932842567252 addons embed library A, then only one copy of library A will exist in memory (the one with the most recent version). This is also true for both Ace2/Ace3.

kindof true,
http://forums.wowace.com/showpost.ph...6&postcount=28
Quote:

Originally Posted by Xinhuan
You are not wrong. Every copy of Ace3 in every addon that includes it does get compiled and loaded into memory. So if you have 10 copies of Ace3 in 10 addons, 10 copies of Ace3 does get compiled and executed into memory.

What happens is that the code in every copy of the library, when executed, checks for an existing copy of the same library in memory. If one doesn't exist, continue to initialize. If one already exists, check its version. If it is older, overwrite it. If it is newer, stop initializing and do not overwrite the existing copy.

There will thus be 10 copies of Ace3 in memory, 9 of which gets garbage collected when all addons have finished loading, because all addons will no longer reference the 9 overwritten or discarded copies. (Library authors thus need to be extremely careful with the library upgrade code to ensure no memory leaks, and that function references are properly overwritten.)


So in essence after all libraries have loaded and when a Garbage Collection takes place, then will their only be one copy of the library in memory.

Taryble 05-03-09 12:40 PM

If I remember rightly, WoW runs multiple GC cycles during the loading screen - the last one being the last thing done before the loading screen disappears. :)


All times are GMT -6. The time now is 05:51 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI