Quote:
Originally Posted by gguruusa
You carrying the suitcase is equivalent to nonxip, me carrying the suitcase is equivalent to xip. Do you trully gain any space moving the suitcase from you to me? No. You still have 10 cars no matter how you slice and dice it, but 1.5 cars is wasted if you over allocate to me. Sure, 8 to you and 2 to me with you carrying the suitcase is the worst for you, and you get a perceived gain of .5 by me carrying the suitcase, but the best is to fix your allocation: 10 for you 0 for me, and you carry the suitcase (because you probably don't always have a suitcase). If you've really gotta have the suitcase handy at all times, even 9 for you 1 for me, and me carrying the suitcase is better than 8 + 2 and me carrying the suitcase.
The point is there is a fixed amount of memory over which to distribute stuff and optimal division of your resources will give you the maximum gain. You will not gain additional RAM by xipping (analogous to adding an 11th car). Overallocating and then pointing out the gain of moving from one area to the over allocated area is a poor example of gain compared to allocating efficiently in the first place.
Your original statement was that you save 4MB approx. of memory by moving igo to xip region. Now you're saying it's ok to waste some space because you have so much. These are competing ideas - either you're trying to maximize or your not, but being wasteful in one area and then trying to maximize your wastefullness is not an optimum strategy.
|
I thought XIP memory was a pre-allocated region, meaning if the program/dll is a XIP it would be loaded into given a slot in XIP portion instead of the normal application space, thus giving me more usable RAM in the normal application space, therefore only losing out on XIP allocation space (which the application on question would never use). Is this incorrect?
This is based from this:
"When execute in place (XIP) DLLs are loaded, they are loaded from the top of the 64 MB space down. Each XIP DLL is based (positioned in the address space) when the ROM is created. When a non XIP DLL is loaded, it is positioned below the 32 MB boundary. Non-XIP DLLs, also called RAM-based DLLs, are those that are loaded from the object store, decompressed from ROM or loaded from an external file system such as a Compact Flash card. The upper 32 MB of the applications virtual memory space is only used for XIP DLLs."
But of course, I may be interpreting it wrong. Please don't assume I am saying you are wrong at all. I am just trying to gain a better understanding and appreciate all of your feedback thus far