Last post Dec 16, 2018 06:16 PM by DA924
Dec 14, 2018 07:17 PM|Sam Hobbs|LINK
This is about Complicated question about DLLs. It is more than 13 years old but it has incomplete and/or misleading answers. An important question is whether it is more efficient to split
a web application into small projects since then the DLLs are small.
No one mentioned the difference between virtual and physical storage. That is important here. Windows loads DLLs into
physical memory only once. Then it maps (virtually) the DLL into each address space that loads it. The important thing is that Windows never loads a DLL into physical memory
more than once.
I am not a performance specialist but probably for this context it is very slightly more efficient to keep everything in one DLL since there would be fewer portions of virtual storage mapping data, whatever that is called.
So the answer should be that the efficiency of people is much more important. Do whatever is more efficient for the people.
Also, that other thread mentions processes. Before IIS, processes in Windows were simple to understand but because of IIS and ASP the concept of a process has been made complicated. ASP.Net uses technology based on the Common Gateway
Interface (CGI) and in the beginning of CGI, each CGI session would use a separate process but long ago IIS was improved to allow software such as ASP and ASP.Net and PHP to execute all sessions in one process but isolated for security purposes.
I am not sure what to do with this but if it helps I can rephrase the preceding as a question and move most of this into a reply as an answer.
Dec 16, 2018 06:16 PM|DA924|LINK
What's the point of your post?
One should be using Speration of Concerns.
One should be using loose coupling.
One should be using a known Architectural Pattern.
I am not in favor of the one big DLL theory and things should be segregated and distributed.
Each client of the IIS Web server is processing in their own thread with the DLL being used within a thread. and many DLL(s) are loaded and unloaded for a single user session and not just an application's DLL, right?
So I really don't understand your point here about some big DLL.