Version: 2018.4
Utilizando Audio en WebGL
Memory in WebGL

Consideraciones de rendimiento WebGL

Qué tipo de rendimiento usted espera en WebGL?

Esto es un poco complicado de responder ya que depende de muchos factores.

En general, usted puede asumir que usted obtendrá un rendimiento cerca a apps nativas en el lado del GPU, ya que el API de gráficos de WebGL utiliza su GPU para un renderizado acelerado de hardware - simplemente hay una sobre-carga para traducir los llamados de la API de WebGL y shaders al API gráfica de su OS (típicamente DirectX en Windows o OpenGL en Mac o Linux).

Para el lado del CPU, todo su código es traducido a asm.js JavaScript. Entonces el tipo de rendimiento que usted espera depende de mucho en el motor JavaScript del navegador utilizado, y hay muchas diferencia significativas ahí actualmente. En el punto de esta escritura (Noviembre de 2015), Microsoft Edge y Mozilla Firefox entregan el mejor rendimiento en código de Unity, ya que son los únicos navegadores que hacen uso del spec asm.js para utilizar una ruta de compilación AOT optimizada de código JavaScript para este caso, que entrega rendimiento dentro de un factor de menos de una disminución 2x comparada al código nativo para muchos benchmarks de programación - y ese factor también coincide con los resultados que hemos visto en diferentes contenidos de Unity desplegado a WebGL y corridos en Firefox y Edge.

Hay otras consideraciones sin embargo. Actualmente el lenguaje JavaScript no soporta multi-hilos, ni SIMBD. Entonces, cualquier código que se beneficie de estas características verá mayores retrasos que en otro código. Usted no puede escribir hilos o código SIMBD en WebGL en sus scripts, pero algunas partes del motor son normalmente ejecutadas en multi-hilos y optimizado-SIMBD. Usted puede utilizar la nueva linea de tiempo del profile en Unity y ver cómo Unity distribuye trabajo a diferentes hilos en plataformas no-WebGL. En un futuro no muy lejano, esperamos que estas características se vuelvan disponibles en WebGL también.

Ajustes WebGL-específicos que afectan rendimiento

For best performance, set the optimization level to Fastest in the Build Player dialog, and set Exception support to None in the Player settings for WebGL.

Profiling (perfilando) WebGL

El Unity profiler es soportado en WebGL, mirar aquí para ver cómo configurarlo.

Contenido WebGL en pestañas del fondo

If Run in background is enabled in the Player settings for the WebGL platform, or if you enable Application.runInBackground, your content continues to run when the canvas or the browser window loses focus.

However, it should be noted that browsers may throttle content running in background tabs. If the tab with your content is not visible, your content will only be updated once a second in most browsers. Note that this will cause Time.time to progress slower than usual with the default settings, as the default value of Time.maximumDeltaTime is lower than one second.

Acelerando el rendimiento de WebGL

Usted podría querer ejecutar su contenido de WebGL en un frame rate menor en algunas situaciones para reducir el uso del CPU. Como en otras plataformas, usted puede utilizar la API Application.targetFrameRate para hacer esto.

Cuando no quiere acelerar el rendimiento, configure esta API al valor predeterminado de –1, en vez de un valor alto. Esto le permite al explorador ajustar el frame rate para la animación más suave en el render loop del explorador, y puede producir unos mejores resultados que Unity tratando de hacer su propio tiempo de bucle principal para que coincida con un frame rate objetivo.

Utilizando Audio en WebGL
Memory in WebGL