2011-03-11 3 views
1

여러 asp.net 응용 프로그램을 호스팅하는 웹 서버에서 응답 시간이 느립니다. 응용 프로그램에 대한 첫 번째 요청은로드하는 데 약간의 시간 (5 ~ 10 초)이 걸린다는 것을 이해할 수 있도록 응용 프로그램을 사전 컴파일하지 않습니다. 그러나 응용 프로그램이 일정 시간 (20-30 분) 유휴 상태 인 경우 IIS 7.5의 응용 프로그램 풀에 대해 "유휴 시간 제한"을 0으로 설정해도 응답이 여전히 느립니다. 따라서 10 분마다 개별 앱에 요청을 보내 Windows 서비스를 유지하는 Windows 서비스를 작성하려고합니다. 내 질문은 JIT 컴파일러는 응용 프로그램에서 하위 디렉토리를 처리하는 방법입니다. 단일 페이지를 요청하거나 현재 요청을 처리하기에 충분할 때 JIT 컴파일러가 앱의 모든 코드를 컴파일합니까?ASP.Net JIT 컴파일러

Windows 서비스를 작성할 때 응용 프로그램의 단일 페이지로 요청을 보내거나 각 하위 디렉토리의 페이지에도 요청을 보내야합니까?

감사합니다.

+0

이것은 ASP.NET 응용 프로그램입니까, 아니면 ASP.NET 웹 사이트 프로젝트입니까? 또한 앱을 미리 컴파일하지 않는 이유는 무엇입니까? –

+0

이들은 ASP.NET 웹 사이트입니다.필요한 경우 서버에서 직접 변경할 수있는 옵션이 있기 때문에 사이트를 미리 컴파일하지 않습니다. – kyletme

답변

0

ASP.NET은 일반적으로 사용하는 모델은 별도로을 App_Code 디렉토리의 내용에 대한 어셈블리뿐만 아니라 Global.asax 파일을 만든 다음에 각 디렉토리에 .ASPX의 모든 페이지를 컴파일 별도의 어셈블리 (요청시).

사용자 컨트롤과 마스터 페이지는 일반적으로 .aspx 페이지와 별도로 컴파일됩니다. 배포 할 때 "업데이트 가능"옵션을 사용하고 있다고 가정합니다. 파일 뒤에있는 모든 코드는 별도로 준수하는 -이 경우

  1. App_Code 폴더는 .ASPX 및 마스터 페이지 파일 뒤에 코드가 각 디렉토리 배포 시간
  2. 에서 컴파일
  3. 이 배치시 컴파일됩니다 어셈블리 배포시
  4. global.asax가있는 경우 첫 번째 요청에서 컴파일됩니다.
  5. 모든 ascx 및 .master 파일은 요청시 (폴더 별) 별도의 어셈블리로 컴파일됩니다.

이렇게 주어진다면 사이트를 "뜨겁게"유지하려면 각 폴더에서 적어도 한 페이지 이상을 요청해야합니다.

"고정 이름"옵션을 사용한 경우 더 많은 어셈블리가 있지만이 옵션은 .aspx 파일을 업데이트 할 수있는 경우에 가장 적합합니다. 그러나 사이트를 테스트하고 프로덕션 서버에서 성능을 컴파일해야합니다.

0

이것 좀보세요 :

의 새로운 "자동 시작"기능 ASP.NET 4 7.5 당신 비싼 응용 프로그램을 시작을 수행 할 수있는 잘 정의 된 접근 방식을 제공 IIS 및 임의의 최종 사용자가 응용 프로그램을 방문하기 전에 이 실행될 수있는 프리 캐시 논리. 이를 통해 응용 프로그램을 "예열"하고 바로 을 준비하고 일관된 고성능 경험을 제공 할 수 있습니다.

Auto-Start ASP.NET Applications (VS 2010 and .NET 4.0 Series)

+0

감사합니다 릭,하지만 응용 프로그램 4.0에 없습니다. 그들은 3.0과 3.5에 있습니다. – kyletme

관련 문제