2016-07-10 3 views
1

저는 약 25 개의 컨트롤러, 많은 지원 클래스 (주로 컨트롤러의 코드에 일부 처리 도움을 제공하는 정적 함수 포함)가있는 .Net MVC 프로젝트가 있습니다. 그런 다음 컨트롤러에 대한 호출을 통해 출력되는 약 100 개의 뷰가 있으며 컨트롤러에 대한 요청을 통해 어떤 기능이 요청되었는지에 따라 다릅니다..Net MVC 메모리 관리 및 성능 향상 - 슈퍼 큰 컨트롤러

이제 각 컨트롤러에는 수천 줄의 코드가 포함되어 있습니다. 내 이해 컨트롤러 인스턴스가 모든 요청에 ​​대해 만들어지고 이것이 내 우려의 원인입니다. 컨트롤러에 대한 모든 HTTP 호출에 대해 수천 줄의 코드 행을 포함하는 객체를 인스턴스화해야하는 경우 이는 주요 성능 문제 일 수 있습니다.

질문 1) 각 컨트롤러 개체 인스턴스에 해당 수천 줄의 소스 코드 바이트 코드 복사본이 포함되어 있다고 가정합니다. 2) 컨트롤러를 더 작은 컨트롤러로 나누는 것이 코드를 더 효율적으로 만들겠습니까? (이전 컨트롤러 메소드를 가리키는 URL도 브라우저 측 javascript에서 변경해야하기 때문에 이것은 중요한 작업이 될 수 있습니다). 3) 성능을 최적화하기위한 다른 제안 사항은 무엇입니까?

미리 감사드립니다.

답변

1

코드는 변경 불가능합니다. 동일한 유형의 인스턴스간에 공유됩니다. 또한, 사용되지 않는 유형 및 메소드는 일반적으로 런타임에 전혀 영향을받지 않습니다. 이것은 관심사가 아닙니다.

(2)는 코드 품질 관점에서는 유용하지만 성능 관점에서는 유용하지 않을 수 있습니다.

느린 것을 이해하려면 코드의 프로필을 작성해야합니다. 이 질문을 통해 귀하의 경험에 대한 경험이 귀하 가설을 세우는데 충분하지 않다는 것을 알 수 있습니다. 먼저 예제를 통해 학습해야합니다.

+0

라이브 응용 프로그램에서 성능 및 병목 현상에 대한 더 자세한 정보를 얻을 수있는 프로파일 러가 있습니까? –

+0

예, 100 % 하중을가하십시오. 그런 다음 디버거를 10 번 일시 중지하십시오. 그것은 가장 뜨거운 코드에서 대부분 멈출 것입니다. 그렇지 않으면 구입할 .NET 프로파일 러가 있습니다. – usr