JMH
JMH

Reputation: 141

Rebased / relocated System.Runtime.Serialization assembly

I need to minimize Private WS memory for running in Citrix / Terminal Services environment. Looking at my process in vmmap, the highest Private WS image (about 1 MB) is System.Runtime.Serialization.ni.dll. By highlighting relocated DLL's in Process Explorer, I can see that this dll has been rebased. My understanding is that rebased native images can't be shared, thus the high Private WS. Also, when running on Win7 it is not rebased (due to ASLR) and the Private WS is only 32 KB.

I created a simple .Net console app with no references other than System.Runtime.Serialization.dll -- it is still rebased and its Private WS is 1 MB. Dumpbin.exe shows its image base is 79530000 (79530000 to 7961FFFF). I don't see what it's conflicting with. The closest images are loaded at:

790C0000 - mscorlib.dll (790C0000 to 79519FFF according to dumpbin)
79E70000 - mscorwks.dll

Is there any way to fix this?

Upvotes: 1

Views: 167

Answers (1)

Richard
Richard

Reputation: 109035

al.exe can be used to set an assembly's load address (option /base[address]).

However unless you have a performance problem when loading (and control enough of the loaded assemblies), then this is unlikely to make any difference.

Upvotes: 1

Related Questions