Yeah, thats pretty what I was trying to say but not quite as clear as this, thanks Tim. And, why would a dynamic CLR compilation not share dll code? I'm sure that a .net dll can be configured to be shared across app domains? Apparently there is a version of .net dll rebasing.. which obviously isn't memory address rebasing since there isn't any memory addresses, but some kind of rebasing taken place if you precompile your code and something whizzy happens in the runtime bit of the CLR. '.Net is sh1t loads faster than Java', when we talk about Wintel Terminal Servers, adn so I don't think Java sets a precedent for .net? thats comparing apples with Oranges surely? Brianos -----Original Message----- From: thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx]On Behalf Of Tim Mangan Sent: 15 November 2005 15:59 To: thin@xxxxxxxxxxxxx Subject: [THIN] Re: DLL rebasing On the confusion - Bernd was referring to "off-line" rebasing of the dll so that the "on-the-fly" rebasing by the OS does not occur. It is the "on-the-fly" rebasing (sometimes called the write/copy issue) that causes non-sharing. The "off-line" rebasing is essentially what RTO, Appsense, triCerat, and now PS4 do. While I have not checked it, I would certainly not expect the dynamic CLR compilation to share. Maybe I need to look more closely at that. tim _____ From: thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx] On Behalf Of Lilley, Brian Sent: Tuesday, November 15, 2005 7:09 AM To: 'thin@xxxxxxxxxxxxx' Subject: [THIN] Re: DLL rebasing 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 ============================================================================== ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.csfb.com/legal_terms/disclaimer_external_email.shtml ==============================================================================