This discussion is archived
3598 Views 5 Replies Latest reply: Jan 11, 2011 6:31 PM by Justin C
Currently Being ModeratedJan 2, 2011 12:36 AM (in response to Bruce Nitro)it's not a feature, it's a limitation of the architecture. the app uses 32 bit addressing, which means 2^32 is the maximum number of memory addresses the program may access (because a pointer may represent a finite number of values). this (2^32) turns out to be the ~4GB most end users know of. so... that's the maximum a 32 bit executable may access without going through (very) special tricks.
the maximum available is further reduced by the libraries (binaries) which are linked in - they consume memory as are loaded into the program. you simply cannot avoid this (technically, developers may minimize it, but end users cannot generally reduce this).
this is then further reduced when the app loads all resources it needs immediately (e.g., images for transport buttons).
then, plugin executables are loaded, and they drag in additional binaries and resources. this is one option - just remove/disable plugins you don't use anymore. the host will load them into memory, but not instantiate them until necessary. however, a host will not usually unload a plugin's binary (which is acceptable, IMO).
so... it's not a feature, just the evolution of software in a system with restrictions.
64 bits brings the theoretical address space to 2^64. launch logic as a 64 bit executable, if that's an option for you (plugin compat is an issue for many) and you have more than ca 6GB physical memory.iParietalLobe (2013), Other OS, I sing like a lark
Currently Being ModeratedJan 2, 2011 12:44 AM (in response to Justin C)it was introduced because it was quite common for logic to crash due to memory exhaustion. for users loading songs which consumed a lot of memory, logic will now intervene and say "you're using too much memory", give you a chance to save, then exit. otherwise, most programs (apps and plugins) are not particularly robust enough to handle memory exhaustion, and the result is a crash.
Message was edited by: Justin CiParietalLobe (2013), Other OS, I sing like a lark
Currently Being ModeratedJan 5, 2011 9:25 PM (in response to Justin C)Justin C,
Thank you for the thorough and logical details of the situation.
Could you elaborate on the plugin executables? Are you referring to effects plug-ins, such as EQs, reverb, filters, passes, etc. or actual virtual instruments? I notice when I load LP9 it takes additional time as I see it loading tons of decays, reverb, etc filters and then the instruments, whereas in LP8 I only see it loading the instruments. Does that have to do with the plugin executables?Mac OS X (10.6.5)
Currently Being ModeratedJan 11, 2011 6:31 PM (in response to Bruce Nitro)Hi Bruce,
the executable refers to the instructions of the program, the static data -- the result of converting the source code into binary.
when a plugin host loads a plugin, it loads its executable into the process (where the process is another name for the host application). naturally, the plugin has a bunch of code which has been converted into a representation the machine may execute. this data also includes data (this could be string literals, such as "Version 2.0" --- but often includes a bunch of other stuff). a plugin will often load and cache resources which are reused. resources could also include sample data - but this is not very common unless there is only a very small sample set to load in (e.g. an impulse response for a non-parameterized model). so... all strikes of a piano library would (or should) not be part of the common memory requirement (e.g., the data the samples require should be returned to the OS once all instances of the plugin have been removed).
loading of plugin executables can of course slow down load times (e.g., while they read resources from disk or run their authorization check).
all this takes time and memory -- i can't really say where the overhead is introduced from v8 to v9 since it can be introduced from many sources. new features are an obvious first place to look... but it doesn't necessarily make a lot of sense for us to figure this all out.
hope that helps.iParietalLobe (2013), Other OS, I sing like a lark