블레이저 성능

asp.net blazor web webassembly

문제

나는 그것이 여전히 알파 레벨에 있다는 사실에도 불구하고 면도기 사용을 시작하고 싶습니다. Blaze는 WebAssembly를 사용하여 클라이언트 측에서 C #을 컴파일합니다. 그리고 나는 질문이있다 :이 시스템은 JavaScript로 컴파일 된 React / Vue보다 빠르게 작동 하는가? 페이지가로드 될 때마다 브라우저에서 Webassembly 라이브러리를 다운로드해야합니까? 인터넷에서 인기있는 JS 프레임 워크의 성능을 비교할 수는 없으므로 Microsoft의 새로운 프레임 워크의 이론적 성능을 알고 싶습니다. 미리 감사드립니다.

수락 된 답변

페이지가로드 될 때마다 브라우저에서 Webassembly 라이브러리를 다운로드해야합니까?

브라우저는 파일을 캐시 할 수 없습니다. Blazor 앱의 일반적인 CDN이 트릭을 수행합니다.

이 시스템은 예를 들어 JavaScript로 컴파일 된 React / Vue보다 빠르게 작동합니까?

Blazor 는 웹 어셈블리를 사용합니다. 종이 웹 어셈블리는 모든 js 라이브러리보다 빠르지 만 모든 브라우저가 성숙한 웹 어셈블리 파서를 아직 가지고 있지는 않습니다. 이제 브라우저가 최적의 속도로 웹 어셈블리를 실행하지 못하게 될 것입니다.

작은 면도기 응용 프로그램을 만들고 Firefox, 크롬 ​​또는 가장자리에서 실행할 수 있습니다. 대부분의 경우 파이어 폭스는 크롬이나 가장자리보다 훨씬 빠른 블레이저 앱을 실행합니다. 이는 브라우저 제조업체가 여전히 개선해야한다는 것을 의미하며 파이어 폭스도 개선 될 수 있음을 의미합니다.

응용 프로그램이 DOM에 자주 액세스해야하는 경우에는 웹 어셈블리가 호출을 사용하지 않고 DOM에 직접 액세스 할 수 없으므로 모든 JS 라이브러리와 비교할 때 웹 어셈블리 / 블레 이저가 느려질 것입니다 (현재 느립니다. 아래의 블레이저 벤치 마크를 참조하십시오. ).

Firefox 1.0에서 RegisteredFunction.InvokeUnmarshalle 빈 메소드 호출은 250ms가 걸리는 반면 크롬과 에지는 내 PC에서 2400ms 이상 필요합니다. 순수 JS에서는 동일한 시나리오에서 10 밀리 초 미만이 소요됩니다.

https://webassemblycode.com/webassembly-cant-access-dom/

또한 Blazor는 Blazor 프로젝트를 실행하는 두 명의 통역사가 있다는 것을 의미하는 브라우저 웹 어셈블리 엔진 위에 자체 MSIL 엔진이 있습니다. 대화 상대를 대신 해석하는 두 명의 번역사처럼 말입니다. 현재 Microsoft는 아직 출시되지 않은 AOT 컴파일러를 개발 중입니다. 릴리즈 Blazor가 현재 구현보다 훨씬 빠르다.

http://www.mono-project.com/news/2018/01/16/mono-static-webassembly-compilation/

우리는 안전하게 웹 어셈블리가 웹 개발의 미래라고 추측 할 수 있지만 현재로서는 블레이저스의 미래에 대해 아무 말도 할 수 없습니다. Paper Blazor는 다른 어떤 프레임 워크보다 빠르지 만 웹 어셈블리 관리자, 브라우저 개발자, Microsoft 및 커뮤니티가 이론을 실용화하기 위해 노력해야합니다.

2018 년 7 월 10 일 업데이트

WebAssembly repos에는 새로운 제안이 있습니다.

  1. WebAssembly가 DOM을 직접 처리하도록 허용합니다. https : / / 웹 사이트 / 호스트 - 바인딩 /
  2. GC가있는 WebAssembly에 대한 참조 유형입니다. https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md

위의 두 가지 제안은 앞으로 DOM과 웹 어셈블리 간의 훨씬 빠른 상호 작용을 가능하게합니다. IOW Blazor는 앞으로 훨씬 더 빨라질 것입니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.