.NET Core - .NET Core 2.1에 의한 Microsoft Bing의 고속화
Microsoft의 검색 엔진 Bing은 .NET Core 2.1로 마이그레이션 후 내부 서버의 대기 시간이 34% 감소했다. Microsoft의 엔지니어인 Mukul Sabharwal 씨에 의하면, 대다수는 .NET 커뮤니티의 기여 덕분이다.
그에 따르면 .NET Core에 대한 많은 개선이 속도에 영향을 주었다. 문자열 일치의 벡터화, 새로운 Span
대부분의 개선은 .NET 커뮤니티에서 이루어졌다.
그러나 GitHub의 풀 요청의 대부분은 Microsoft 직원에 의해 만들어지고 있다.
Bing을 .NET Core 2.1로 마이그레이션 할 수 있는데는 두 가지 요인이 있었다.
하나는 ReadyToRun 이미지의 지원이다. 이것에 의해 배포 전에 JIT 컴파일을 할 수 있다.
이것이 없으면, 각 실행 시스템에서 JIT 컴파일을 할 필요가 있다. 그렇게되면, Bing을 구성하는 서버의 대수가 많기 때문에 중요한 서비스 용량 저하가 일어나 버린다.
NET Core의 crossgen 도구를 사용하여 미리 컴파일하여 이미지를 배포 할 수있게 되었다.
두 번째 요소는 .NET Standard 2.0 이다. 이것은 32000개 이상의 API 컬렉션이며, 이것을 사용하여 개발자는 여러 플랫폼에서 .NET Core 2.1으로의 전환을 쉽게 구현할 수 있다.
그리고 마지막으로 그가 강조한 것은 지속적인 통합 파이프 라인에서 Bing 응용 프로그램 중 .NET Core 런타임을 xcopy를 사용하여 배포 하는 것의 중요성이다. 이것에 의해 .Net Core 2.1이 공식 출시된지 불과 이틀 만에 Bing을 2.1으로 마이그레이션 할 수 있었다.
InfoQ이 이전에 보도 한 바와 같이, .NET Core 2.1의 최대의 세일즈 포인트 중 하나는 속도 개선이다 . 또한 자체 내장 배치 라는 형태로 새로운 배치 옵션을 제공한다.
성능면에서는 .NET Core 2.1은 새로운 System.Span
이 글은 2018-10-13에 작성되었습니다.