Thread Tools Display Modes
05-02-09, 06:37 AM   #1
PerfectH
A Flamescale Wyrmkin
 
PerfectH's Avatar
AddOn Compiler - Click to view compilations
Join Date: Jan 2008
Posts: 137
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!
__________________
I might fail at AddOn creativity...but damn do I love Coca-Cola!
  Reply With Quote
05-02-09, 06:49 AM   #2
septor
A Flamescale Wyrmkin
Join Date: Jan 2007
Posts: 130
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.
  Reply With Quote
05-02-09, 07:12 AM   #3
PerfectH
A Flamescale Wyrmkin
 
PerfectH's Avatar
AddOn Compiler - Click to view compilations
Join Date: Jan 2008
Posts: 137
Originally Posted by septor View Post
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.
__________________
I might fail at AddOn creativity...but damn do I love Coca-Cola!
  Reply With Quote
05-02-09, 07:26 AM   #4
septor
A Flamescale Wyrmkin
Join Date: Jan 2007
Posts: 130
Originally Posted by PerfectH View Post
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.
  Reply With Quote
05-02-09, 08:11 AM   #5
Khanon
A Murloc Raider
Join Date: Apr 2008
Posts: 5
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...
  Reply With Quote
05-02-09, 08:29 AM   #6
PerfectH
A Flamescale Wyrmkin
 
PerfectH's Avatar
AddOn Compiler - Click to view compilations
Join Date: Jan 2008
Posts: 137
Originally Posted by Khanon View Post
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
__________________
I might fail at AddOn creativity...but damn do I love Coca-Cola!
  Reply With Quote
05-02-09, 08:31 AM   #7
Auren
An Aku'mai Servant
 
Auren's Avatar
Join Date: Sep 2006
Posts: 37
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.
__________________
Rogue [Combat] - 80
Paladin [Protection] - 80
Death Knight [Blood] - 77
Shaman [Elemental] - 77
Mage [Frost] - 76
Priest [Shadow] - 75
Hunter [Beast] - 72
  Reply With Quote
05-02-09, 09:00 AM   #8
septor
A Flamescale Wyrmkin
Join Date: Jan 2007
Posts: 130
Originally Posted by PerfectH View Post
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.
  Reply With Quote
05-02-09, 09:09 AM   #9
Tristanian
Andúril
Premium Member
AddOn Author - Click to view addons
Join Date: Nov 2007
Posts: 279
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

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.
__________________

Last edited by Tristanian : 05-02-09 at 09:17 AM.
  Reply With Quote
05-02-09, 09:45 AM   #10
Auren
An Aku'mai Servant
 
Auren's Avatar
Join Date: Sep 2006
Posts: 37
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.
__________________
Rogue [Combat] - 80
Paladin [Protection] - 80
Death Knight [Blood] - 77
Shaman [Elemental] - 77
Mage [Frost] - 76
Priest [Shadow] - 75
Hunter [Beast] - 72
  Reply With Quote
05-02-09, 12:28 PM   #11
Zyonin
Coffee powered Kaldorei
 
Zyonin's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 1,443
Originally Posted by PerfectH View Post
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).
__________________
Twitter
  Reply With Quote
05-02-09, 12:34 PM   #12
Slakah
A Molten Giant
 
Slakah's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2007
Posts: 863
Originally Posted by Tristanian View Post
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
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.
  Reply With Quote
05-03-09, 12:40 PM   #13
Taryble
A Molten Giant
 
Taryble's Avatar
Join Date: Jan 2009
Posts: 811
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.
__________________
-- Taryble
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Help/Support » Ace2/3... Really Needed?


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off