2010-02-23 3 views
7

오늘 동료는 컴파일 할 때 크기가 5MB 인 대규모 "enterprisey frameworky"프로젝트에 문제가 있다고 언급했습니다. 우려 사항은 전체 기능을 참조해야했던 어셈블리 기능의 작은 조각을 사용하는 것이었고 그 이유는 무엇보다 나쁘다.5MB .Net 어셈블리를 참조 할 때 성능에 대한 고려 사항이 있습니까?

IIS에서 호스팅되는 웹 사이트 배포에 큰 어셈블리를로드하면 성능이나 단점이 있는지 궁금합니다.

+3

흥미로운 질문입니다. –

+2

5MB는 너무 작습니다! 어젯밤 베개 아래에 2GB의 RAM 스틱이있는 것을 발견했습니다. 치아 요정이 세계에서 움직이고 있습니다. D –

+1

ㅎ, 예, 저는 더 이상 MB 단위로 측정하지 않습니다. 그것의 x 공연이나 <공연. ;) – jfar

답변

7

형식을 처음 사용하면 어셈블리가로드됩니다. 디스크에서 5MB를로드하는 데 성능 비용이 들지만 (거대한 것은 아니지만). 또한 어셈블리는 AppDomain의 수명 동안 메모리에 남아있게되므로 약간의 메모리 비용이 (다시는 거대하지 않음) 있습니다.

4

주요 단점은 자원 소비입니다. .DLL은 프로그램이 실행되는 동안 메모리에 남아 있습니다. 실제로 5MB는 그렇게 나쁘지는 않지만 ... 예를 들어 System.dll만으로도 3MB입니다.

5

일화적인 증거를 사용하여 최적화하지 마십시오. 하드 번호를 구한 다음 문제가 있는지 여부를 확인하십시오.

일반적으로 나는 어디에서나 문제가되지 않는다고 말하지만, 메모리가 부족한 서버에서 신뢰할 수없는 링크를 통해 HTTP를 통해 이러한 어셈블리를 다운로드하지 않습니다. 사용 사례가 다를 수 있습니다.

관련 문제