IT 이모저모

WCF와 ASP.NET Core의 성능 비교

exien 2018. 4. 16. 13:31

Microsoft는 ASP.NET Core 개발에 많은 시간과 개발자 에너지를 투자했습니다. 그 결과 새로운 기능이 공개되고 더 넓은 개발자 커뮤니티와 열린 참여를 통해 이익을 얻을 수있는 개방형 플랫폼이 탄생했습니다. ASP.NET 코어는 WCF (Windows Communication Foundation)와 같은 구형 기술보다 우수한 성능을 제공합니다. 최근에는 그렇지 않은 것처럼 보였으므로 더 자세히 살펴 보겠습니다.

개발자 Erik Heemskerk은 최근 에 ASP.NET 코어 대 WCF의 성능에 대한 조사에 대한 기사를 게시했습니다. 그는 실험을 통해 각 기술을 사용하여 간단한 프로젝트를 작성하여 "로컬 웹 서버를 세우고, 요청을 생성하고, 보내고, 역 직렬화하고, 응답을 생성하고, 다시 보내고, 응답을 역 직렬화하는 데 걸리는 시간을 측정합니다 . "

놀랍게도 WCF는 페이로드가 간단한 GUID 일 때 동등한 ASP.NET 핵심 프로젝트보다 대략 1/3 더 빠릅니다. ASP.NET Core가 JSON을 사용하는 동안 XML에 직렬화되는 WCF로 인해 차이가있을 수 있음을 알게 된 Heemskerk은 ASP.NET 코어를 XML로 직렬화하도록했습니다. 이로 인해 개선되었지만 WCF는 훨씬 더 빠르게 유지되었습니다. 다른 접근 방식을 시도하기 위해 Heemskerk는 페이로드를보다 현실적인 객체 크기로 늘리고 ASP.NET 코어에서 MessagePack을 사용했습니다. 마지막으로 ASP.NET은 WCF보다 약간 빠릅니다.

그러나 그 이야기는 끝나지 않습니다. 개발자 Josh Bartley  Heemskerk의 작업을 검토 하여 ASP.NET의 결과를 개선하기 위해 어떤 다른 변경이 이루어질 수 있는지 확인했습니다. 그의 분석에 따르면 아마도 ASP.NET의 벤치마킹은 WCF 코드의 작업과 비교했을 때 정확히 동일한 작업을 포함하지 않았습니다.

따라서 ASP.NET 코어는 성능이 후진 단계가 아닙니다. 초기 성능이 예상치를 충족시키지 못할 경우 최상의 성능을 위해 일부 분석이 필요할 수 있습니다. 성능을 향상 시키려 할 때 더 큰 교훈은 벤치 마크에 적합한 영역을 선택하여 올바른 코드 조각이 향상되도록하는 것입니다.