[THIN] Re: DLL rebasing

  • From: "Lilley, Brian" <brian.lilley@xxxxxxxx>
  • To: "'thin@xxxxxxxxxxxxx'" <thin@xxxxxxxxxxxxx>
  • Date: Tue, 15 Nov 2005 12:09:24 -0000

I'm not sure I agree with the point about bad scaling with .net because, as I 
understand it, .net CLR dynamic (re)compilation model allows for greatly 
reduced memory usage in terms of moving running code around in the address 
space to ensure matches and sharing of code pages.  I don't know if that is how 
they implement it, but I would be surprised if that isn't the case.  In fact, 
the whole virtual model would allow for far better memory sharing opportunities 
than the traditional win32 memory model does.  
 
Also, I was confused when you said "Code pages were not written to or changed, 
and could be shared if they were located at the proper base address (this is 
what dll rebasing does - it ensures that code pages are in sharable locations). 
Data pages, being unique to each instance of each application are inherently 
unsharable."....  Isn't it the case that standard dll rebasing in fact stops 
code sharing because if a process rebases its DLL because of a conflict, then 
it can no longer share that dll code with another process... I wonder if you 
meant that your RTO software's DLL rebasing and learning and saving rebased 
images.
 
I would say in general that although the abstract level of .net looks like 
dumbing down, I believe that .net is considerably more complex and provides 
considerably more powerful possibilities.  twenty years ago, we scoffed at the 
MS programming model, then we scoffed at COM... ok, .net/Java is hugely 
bloated.. we accept that and combat that with ever more powerful and faster 
computers...  I think this is progress... but not entirely sure given that my 
windows based motorola mpx220 manages to run for all of a couple of days before 
the battery dies.... ???
 
cheers, Brian
 
 
 
 

-----Original Message-----
From: thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx]On Behalf Of 
Tim Mangan
Sent: 14 November 2005 20:29
To: thin@xxxxxxxxxxxxx
Subject: [THIN] Re: DLL rebasing



Bernd is correct, at least for C# /VB dlls.  I have seen some write/copy code 
pages in  .Net dlls that I believe are probably C++, however they are not 
rebasable for a different reason, and rebasing them will cause them to fail.  
There is a high correlation between these dlls and those which break if you let 
MPS4 mess with them.

 

tim

 


  _____  


From: thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx] On Behalf Of 
Bernd Harzog
Sent: Monday, November 14, 2005 1:50 PM
To: thin@xxxxxxxxxxxxx
Subject: [THIN] Re: DLL rebasing

 

As a part of its continuing efforts to dumb down programming, Microsoft has 
done some of the same sorts of things with memory management for .Net 
application that the Java folks did for Java applications. In the pre-.Net C++ 
and VB worlds, code was broken into two types of pages, code pages and data 
pages. Code pages were not written to or changed, and could be shared if they 
were located at the proper base address (this is what dll rebasing does - it 
ensures that code pages are in sharable locations). Data pages, being unique to 
each instance of each application are inherently unsharable.

 

What M$ did with .Net is make all pages data. So, the complexities of managing 
memory addressing are dramatically reduced for the developer, at the cost of 
making the entire application eat a whole lot more memory. As .Net applications 
start to make their way into production in TS environments, it is going to be 
really interesting to see how badly they scale in comparison to their 
predecessors.

 

Cheers,

 

Bernd Harzog

CEO

Applications Performance Management Experts

www.apmexperts.com

bernd.harzog@xxxxxxxxxxxxxx

770-475-4249

 

-----Original Message-----
From: thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx]On Behalf Of 
Lilley, Brian
Sent: Monday, November 14, 2005 6:13 AM
To: 'thin@xxxxxxxxxxxxx'
Subject: [THIN] DLL rebasing

 

    

hi list.. please tell me I'm not just making this up... but...  am I right in 
thinking that DLL rebasing would not be relevant with .net applications.  or, 
at least .net dll's being loaded post mscoree engine start up, since the .net 
dll's are being loaded in a virtual environment.

 

cheers, Brianos

 

 

==============================================================================
Please access the attached hyperlink for an important electronic communications 
disclaimer: 

http://www.csfb.com/legal_terms/disclaimer_external_email.shtml

==============================================================================


==============================================================================
Please access the attached hyperlink for an important electronic communications 
disclaimer: 

http://www.csfb.com/legal_terms/disclaimer_external_email.shtml

==============================================================================

Other related posts: