2013-03-24 6 views
1

의 여러 디렉토리 대신 여러 프로젝트를 사용할 때 성능 문제가 있습니까 이전에 5 개의 프로젝트가 있고 각각 C# 응용 프로그램에 5-10 개의 디렉토리가있었습니다. 이제이 프로젝트를 10 개의 프로젝트로 변경했습니다. 각각 2-3 개의 디렉토리가 있습니다.하나의 프로젝트에서 C#

내 웹 응용 프로그램에서는 이제 2-3 개 정도였던 이전의 10 개 프로젝트를 참조했습니다.

이 방법으로 개발을 계속하고 응용 프로그램이 커질수록 더 많은 프로젝트를 추가하면 성능이 저하 될 수 있습니다. 내가 궁금한 사항은로드 시간, 메모리 사용량 (프로젝트 자체에 저장된 모든 DLL) 및 시간대에서 코드가 한 프로젝트의 객체에서 다른 프로젝트로 이동해야하는 시간입니다.

답변

5

이러한 프로젝트를 모두 참조하는 경우 지터가 어셈블리를로드하는 데 약간의 불이익이 있습니다.

하지만 나는 잘못된 질문을하고 있다고 생각합니다. 코드 나 클래스의 수에 따라 코드를 다른 어셈블리로 나누지 마십시오. 그렇다면 하나의 프로젝트가 최적 일 것입니다.

내부에 만들어 질 수있는 것에 신경 써야합니다. 어셈블리가 10 개있는 경우 프로그램의 나머지 부분을 숨길 수 있습니다. 어떤 프로젝트가 다른 프로젝트를 참조하지 않아도되는 의존성 트리가 있습니까?

얼마나 많은 텍스트 파일이 어디에 있는지가 아니라 전화를해야합니다.

1

성능 차이는 무시해도 좋습니다 (시작 시간이 몇 밀리 초 더 느릴 수 있음). 응용 프로그램 아키텍처가 여러 프로젝트에서 더 나은 경우에는 사용하십시오.

1

예 (런타임에는 눈에 띄지 않음).

여러 프로젝트를로드하는 속도가 느려집니다. 5-10 개의 프로젝트를 사용하면 알 수 없지만 30-40으로 알기 시작합니다.

컴파일은 (일반적으로) 느립니다. 이는 프로젝트 종속성이 프로젝트 종속성에 의존하는 프로젝트의 출력 폴더에 복사되어야하기 때문입니다. 프로젝트가 더 많은 경우 복사 할 출력 파일이 더 많습니다. 각 프로젝트의 출력 폴더를 같은 위치로 설정하여이 문제를 완화 할 수 있지만 웹 응용 프로그램 프로젝트에서는이 작업이 더 어려워서 어쨌든 고통 스럽습니다.

어셈블리를 해결할 때 모든 추가 디스크 액세스에 성능 저하가 발생할 수 있습니다.

그러나 실제로 코드를 실행할 때 성능에 미치는 영향은 무시할 수 있습니다. 한 어셈블리에서 다른 어셈블리보다 코드를 호출하는 것이 더 이상 비용이 들지 않습니다 (일단로드되고 JITed되고 인라인되지 않았다고 가정하면).

관련 문제