IT박스

ASP.NET MVC 3 Razor 성능

itboxs 2020. 11. 22. 19:16
반응형

ASP.NET MVC 3 Razor 성능


중요 업데이트 : 하단의 업데이트 5를 참조하십시오. asp.net mvc 3에는 성능 문제가 없습니다. 이것은 벤치 마크 문제입니다.

asp.net mvc2,3 aspx 및 3 razor에서 간단한 hello world 프로젝트를 만들고 벤치마킹했습니다. 내가 보는 것은 :

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700

면도기가 뭐가 문제 야, 너무 느려?

업데이트 : 테스트를 다시했습니다. 4 개의 테스트 가상 디렉터리 모두 동일한 .net 4 통합 모드 앱 풀을 사용합니다. 모든 프로젝트는 새로운 빈 x 프로젝트를 추가하고 코드없이 1 줄 텍스트로 1 페이지를 추가하여 수행됩니다. 모든 사이트는 릴리스 모드에서 컴파일됩니다. 내 시스템은 Windows 7, 4GB i7 4 코어입니다. iis를 워밍업하기 위해 테스트를 두 번 실행했으며 이는 두 번째 실행 결과입니다. 아파치 벤치 매개 변수 : ab -n100000 -c1000 결과 :

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%

업데이트 2 Scott Guthrie는 자신의 블로그에서 다음과 같이 답변했습니다.

우리는 아직 MVC3를 완전히 최적화하지 않았습니다 (보통 우리가하는 많은 캐시 튜닝이 있습니다). Razor는 최종적으로 출시되기 전에 .aspx 뷰 엔진과 동일한 성능을 기대합니다.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor               1960               54%
mvc 3 rc2 razor               2187               54%
mvc 3 rc2 aspx                4014               58%

업데이트 5 모든 테스트는 릴리스 모드에서 수행되었지만 문제는 debug="true"내 web.config 파일 (릴리스 빌드에도 영향을 미침)에 있었으며 false로 변경 한 후 문제가 해결되었습니다. 이 규모에서 면도기 템플릿에만 영향을 미치는 것은 흥미 롭습니다. 이것은 배포에 대한 우리의 마음에 있어야합니다.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

asp.net mvc 팀 덕분에 훌륭했습니다!


(RC2 번호에 대한 새로운 답변)

업데이트 된 번호에 감사드립니다. 몇 가지 사항 :

  1. MVC3 Aspx가 MVC2 Aspx와 동등 할 것으로 예상한다는 점에서 Aspx 번호가 좋아 보입니다 (Hello World 예제에서는 약간 느려질 것으로 예상 됨).
  2. Razor 번호가 의심스러워 보입니다. Razor는 동등한 Aspx보다 약간 느리지 만 그 차이는 5 % -7 %를 넘지 않아야합니다. 귀하의 수치는 50 % 더 느리다는 것을 나타내며 단순히 우리의 결과와 일치하지 않습니다. 프로젝트가 Release에서 컴파일 debug="false"되고 web.config에서 설정 했는지 확인하십시오 .
  3. CPU 사용률이 약간 의심됩니다. 1000 개의 동시 요청으로 CPU는 100 % 사용되어야합니다. (8 개의 가상 코어가 있으므로 8 개의 동시 요청만으로도 충분합니다.)
  4. 테스트가 약 20-25 초 동안 실행됩니다. 시스템의 다른 곳에서 짧은 (1 ~ 2 초) 활동의 폭발이 결과를 상당히 떨어 뜨릴 수 있기 때문에 이는 약간 낮은 편입니다.
  5. 포인트 4와 관련하여 각 시나리오를 한 번 또는 몇 번 실행 했습니까? 결과에 많은 차이가 있습니까? OS가 백그라운드에서 다른 작업을 수행하기 때문에 실행간에 다른 결과를 보는 것이 일반적입니다.

벤치 마크를 어떻게 수행 했습니까? 사이트가 릴리스 모드에서 IIS에 배포 되었습니까? <deployment retail="true" />machine.config 섹션 을 사용 했습니까 ? 또한 ASP.NET MVC 3은 아직 많이 개발 중이므로 아직 완전히 최적화 될 것으로 기대할 수 없습니다. 적어도 RTM에 도달 할 때까지 기다리십시오.

참고 URL : https://stackoverflow.com/questions/3828961/asp-net-mvc-3-razor-performance

반응형