Saltar al contenido

Rendimiento Blazor

Te damos la bienvenida a nuestra web, en este sitio vas a encontrar la respuesta que buscabas.

Lo es true que el navegador necesitará descargar la biblioteca de WebAssembly cada vez que se cargue la página?

No, los navegadores pueden almacenar en caché los archivos. Los CDN comunes para aplicaciones Blazor funcionarán.

¿Es este sistema más rápido de trabajar que, por ejemplo, React / Vue.js, compilado en JavaScript?

Blazor utiliza WebAssembly, WebAssembly en papel debería ser más rápido que cualquier biblioteca de JavaScript. Sin embargo, no todos los navegadores tienen todavía un analizador de WebAssembly maduro. Por lo tanto, es posible que los navegadores no ejecuten WebAssembly a una velocidad óptima a partir de ahora.

Puede crear una pequeña aplicación Blazor y ejecutarla en Firefox, Chrome o Edge. En la mayoría de los casos, Firefox ejecuta aplicaciones Blazor mucho más rápido que Chrome o Edge, lo que implica que los fabricantes de navegadores aún necesitan mejorar, e incluso Firefox puede mejorar.

Si su aplicación necesita acceder al DOM con frecuencia, definitivamente WebAssembly / Blazor será más lento en comparación con cualquier biblioteca de JavaScript, ya que WebAssembly no puede acceder directamente al DOM sin usar Invokes (que es lento en este momento. Consulte mi punto de referencia Blazor a continuación). .

En Firefox, 10,000 RegisteredFunction.InvokeUnmarshalle las llamadas a métodos vacíos toman 250 ms, mientras que Chrome y Edge necesitan más de 2400 ms en mi PC. En JavaScript puro, se necesitan menos de 10 milisegundos para el mismo escenario.

Además, la implementación actual de Blazor tiene su propio motor MSIL en la parte superior del motor WebAssembly del navegador, lo que significa que hay dos intérpretes trabajando para ejecutar un proyecto Blazor, como dos traductores que interpretan una conversación en lugar de uno. Actualmente, Microsoft está trabajando en un compilador AOT, que aún no se ha lanzado. Una vez que se lance, Blazor será mucho más rápido que la implementación actual.

Mono y WebAssembly: actualizaciones de la compilación estática

Podemos asumir con seguridad que el ensamblaje web es el futuro del desarrollo web, pero por el momento no podemos decir nada sobre el futuro de Blazor. Sobre el papel, Blazor puede ser más rápido que cualquier marco que exista, sin embargo, necesitamos el compromiso de los mantenedores de WebAssembly, los desarrolladores de navegadores, Microsoft y las comunidades para que las teorías sean prácticas.

Actualización 10 de julio de 2018

Hay nuevas propuestas en los repositorios de WebAssembly.

  1. Permitir que WebAssembly maneje DOM directamente.
    Tipos de interfaz # 8

  2. Tipos de referencia para WebAssembly con GC. Tipos de referencia para WebAssembly

Las dos propuestas anteriores allanarán el camino hacia una interacción mucho más rápida entre DOM y WebAssembly en el futuro. En otras palabras, Blazor será mucho más rápido en el futuro.

Actualización 17 de octubre de 2018

El equipo de Firefox pudo alcanzar una llamada de JavaScript a WebAssembly tan rápido como las llamadas de método de JavaScript a JavaScript. A partir de ahora, Firefox está muy por delante de cualquier otro navegador en lo que respecta al soporte de WebAssembly.

Las llamadas entre JavaScript y WebAssembly finalmente son rápidas

Según tengo entendido, Blazor usa WebAssembly para compilar C # en el lado del cliente.

Mitad true. Puede escribir su código en el lado del cliente de WebAssembly (WASM) (sí, es C # en el lado del cliente), pero también puede ejecutar el lado del servidor lógico. Ambos tienen beneficios. Todo su código es visible si sigue la ruta WASM. Pero puede volver a procesarse más rápido que si la lógica estuviera basada en un servidor, pero si se basa en un servidor, su código no se puede ver.

¿Este enfoque se ejecuta más rápido que, por ejemplo, React / Vue.js, compilado en JavaScript?

No. He hecho un montón de Vue.js y Vue.js se ejecuta más rápido. Pero Puedo escribir codigo a lote más rápido con Blazor. Y Blazor ofrece una solución de desplazamiento virtual que puede hacer que aparezca más rápido. En mi caso, los componentes de trazado disponibles eran demasiado lentos. Escribí un componente Blazor usando C # y JavaScript que funcionó muy bien. La mayoría de las veces no me preocupa que el código WASM se ejecute demasiado lento … pero el trazado tenía que ser mucho más rápido … y Blazor me dejó comer mi pastel … Solo tenía que hacer un trabajo de bajo nivel en JavaScript. La ejecución de Blazor se ha acelerado en los últimos seis meses y el equipo dice que habrá más por venir cuando salga .NET 6. Pero es lo suficientemente rápido para el 99% de lo que he necesitado hacer.

Lo es true que el navegador necesitará descargar la biblioteca de WebAssembly cada vez que se cargue la página?

No si están almacenados en caché. E incluso la primera vez que se cargan, no es lento si tiene una conexión decente. Es del orden de 10 MB.

La gran pregunta no formulada: ¿vale la pena usarla? Lo he estado usando durante unos seis meses.

Para mi ha sido genial. C # es un muy buen lenguaje. A veces echo de menos agregar una propiedad dinámicamente y, a menudo, tienes que iniciar manualmente un redibujo, pero con características como verificaciones de objetos que aceptan valores NULL, te advierten que no verificaste si tu código podría causar un null verificación de referencia: es mucho mejor que JavaScript. A menudo sentí que era doloroso trabajar con la “cadena de herramientas” de JavaScript. Es muy bueno poder optar por no participar en la biblioteca thrash de JavaScript.

Si te gusta la invitación, tienes la opción de dejar un escrito acerca de qué te ha impresionado de esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *