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 번호에 대한 새로운 답변)
업데이트 된 번호에 감사드립니다. 몇 가지 사항 :
- MVC3 Aspx가 MVC2 Aspx와 동등 할 것으로 예상한다는 점에서 Aspx 번호가 좋아 보입니다 (Hello World 예제에서는 약간 느려질 것으로 예상 됨).
- Razor 번호가 의심스러워 보입니다. Razor는 동등한 Aspx보다 약간 느리지 만 그 차이는 5 % -7 %를 넘지 않아야합니다. 귀하의 수치는 50 % 더 느리다는 것을 나타내며 단순히 우리의 결과와 일치하지 않습니다. 프로젝트가 Release에서 컴파일
debug="false"
되고 web.config에서 설정 했는지 확인하십시오 . - CPU 사용률이 약간 의심됩니다. 1000 개의 동시 요청으로 CPU는 100 % 사용되어야합니다. (8 개의 가상 코어가 있으므로 8 개의 동시 요청만으로도 충분합니다.)
- 테스트가 약 20-25 초 동안 실행됩니다. 시스템의 다른 곳에서 짧은 (1 ~ 2 초) 활동의 폭발이 결과를 상당히 떨어 뜨릴 수 있기 때문에 이는 약간 낮은 편입니다.
- 포인트 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
'IT박스' 카테고리의 다른 글
.NET에 RAII가없는 이유는 무엇입니까? (0) | 2020.11.22 |
---|---|
Mac에서 어떤 사용자가 / usr / local / mysql을 소유해야합니까? (0) | 2020.11.22 |
Outlook (2003/2007) PST 파일을 C #으로 읽을 수 있습니까? (0) | 2020.11.22 |
Amazon의 S3에서 파일의 md5sum을 가져 오는 방법 (0) | 2020.11.22 |
Java가 소스 코드에서 이스케이프 된 유니 코드 문자를 허용하는 이유는 무엇입니까? (0) | 2020.11.22 |