DLLs and Embedded Resources

R

Reuben

Hi,
I was designing an application which is intended to run in the background,
and I was wondering about how I should load my resources to reduce the memory
footprint. I was thinking of keeping all the embedded resources in a DLL, so
that they only get loaded when needed.
So my question is this: if your application references a library, does the
library get loaded into memory at startup, or only when its used? There
really isn't much point in keeping the resources seperate otherwise, since it
complicates the code slightly.
Thanks for your help.
 
F

Family Tree Mike

Reuben said:
Hi,
I was designing an application which is intended to run in the background,
and I was wondering about how I should load my resources to reduce the memory
footprint. I was thinking of keeping all the embedded resources in a DLL, so
that they only get loaded when needed.
So my question is this: if your application references a library, does the
library get loaded into memory at startup, or only when its used? There
really isn't much point in keeping the resources seperate otherwise, since it
complicates the code slightly.
Thanks for your help.

I presume you are talking about some stream resources, as string and other
such resources are pretty minimal. If you are worried about the memory
footprint, I wouldn't use the dll to embeded resources. If you feel a need
to embed the resource, then my preference is always to embed it in the dll
that needs it. If you need the resource in multiple dlls, then I would
strongly consider installing to the disk.
 
R

Reuben

Sorry if I caused some confusion, but I was asking if the entire DLL is
loaded into memory when the exe is loaded. The exe appears to load its entire
contents, and I was hoping to reduce the footprint by storing images, etc. in
a DLL, which would hopefully only be loaded into memory when needed.
 
F

Family Tree Mike

Reuben said:
Sorry if I caused some confusion, but I was asking if the entire DLL is
loaded into memory when the exe is loaded. The exe appears to load its entire
contents, and I was hoping to reduce the footprint by storing images, etc. in
a DLL, which would hopefully only be loaded into memory when needed.

DLL's are loaded as needed, or, if explicitly loaded by
Assembly.LoadFromFile(). Unloading a dll when you are finished is not as
easy, from what I have heard. If this is an issue, you may want to ask
others about that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top