aspnet_intern.exe


É comum termos aplicações ASP.NET que fazem uso de uma mesma DLL, como por exemplo, NHibernate, log4Net, etc., e além destas, há também aplicações que consomem uma DLL que é criada para uso exclusivo, para uma empresa reutilizar alguns recursos em diversas de suas aplicações.

Quando há diversas aplicações que consomem a mesma DLL, ela deve estar fisicamente em todos os diretórios (bin) de suas respectivas aplicações, obrigando o sistema operacional a ler, carregar e manter separadamente cada uma dessas DLLs, ocupando memória RAM desnecessária, afinal, trata-se exatamente da mesma DLL para todas as aplicações.

O utilitário, tema deste post, tem a finalidade de diminuir a quantidade de RAM que é utilizada, centralizando as DLLs que são consumidas por várias aplicações em um local, e uma vez que ela está carregada, todas as aplicações fazem uso dela, sem a necessidade de cada aplicação fazer o mesmo (carregamento) para si, mantendo em memória uma única DLL. Fisicamente falando, esta DLL também deverá estar separada dos diretórios virtuais das aplicações, ou seja, cada site ainda manterá a sua própria cópia da DLL localmente (diretório bin), mas ao rodar o utilitário, vamos copiar estas DLLs que são candidatas à serem compartilhadas para um outro diretório a nossa escolha.

aspnet_intern.exe
-mode exec
-sourcedir “C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Files”
-interndir C:Common

Local: C:Program Files(86)Microsoft SDKsWindowsv8.1AbinNETFX 4.5.1 Tools

Ao rodar este utilitário ele sai em busca de DLLs que estão sendo utilizadas por, no mínimo, três aplicações e separa todas elas no diretório especificado no atributo -interndir. Mas é importante dizer que esse número mínimo pode ser configurado através do atributo -minrefcount. Ao rodar esse utilitário ele faz uma varredura, sugere e/ou adiciona as DLLs no diretório compartilhado, e inclui nas aplicações (dentro do diretório Temporary ASP.NET Files) o link para esta DLL, agora, compartilhada.

É importante dizer que na medida em que novas aplicações vão sendo instaladas neste servidor, pode ser com que elas façam uso das mesmas DLLs já compartilhadas ou trazerem novas DLLs, mas não farão uso daquelas que já estão compartilhadas. Para evitar isso e garantir a reutilização, basta rodar este utilitário periodicamente ou, no mínimo, quando novas aplicações forem instaladas no servidor web.

Um comentário sobre “aspnet_intern.exe

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s