2011-02-11 23 views
16

Quiero incluir algunas características de "campanas y silbidos" en un sitio que estoy desarrollando actualmente, pero no quiero empantanar todo el equipo para mis usuarios. ¿Hay alguna manera de probar para ver si el navegador actual está acelerado por GPU?¿Hay alguna manera de probar mediante programación la aceleración de la GPU del navegador?

Pude consultar a UserAgents, pero siempre escuché que no es lo suficientemente preciso como para confiar.

Supongo que podría construir un elemento de lienzo, hacer bastantes llamadas de dibujo, y cronometrarlas? ¿Algo por debajo de un umbral determinado que podría considerar lo suficientemente bueno para mis extras superfluos? ¿Sería esto lo suficientemente bueno?

Respuesta

7

¿Por qué es importante si su GPU se aceleró? Lo único que debería importar es el rendimiento.

Por lo tanto, cronometrar el elemento de lienzo es la mejor opción, incluso si puede averiguar si hay aceleración de GPU o no.

+1

Bueno, yo sólo esperaba que si había algún tipo de indicador GPUEnabled pude comprobar que me daría un sí o no definitivo sobre sus capacidades sin recurrir a algún truco. – Emrikol

+1

Mi punto es que la aceleración de la GPU es solo un detalle de implementación que no debería importarle. La OMI que verifica la aceleración de la GPU cuando realmente desea saber si el costo de rendimiento es aceptable es un hack, y no al revés. – CodesInChaos

+2

¿Por qué? Si el compost de la GPU está habilitado, se garantiza que su máquina y su tarjeta gráfica sean lo suficientemente potentes. No se puede simplemente habilitar la aceleración en su tarjeta RIVA TNT2. Si tuviera que ejecutar un punto de referencia, es variable dependiendo de qué más esté haciendo la máquina. Si se está ejecutando otro proceso intensivo de CPU, entonces podría obtener un falso negativo. – Emrikol

1

La mejor manera en que el navegador no se deje engañar por los hackers de UserAgent es verificando el soporte para las últimas características incluidas en las versiones del navegador que soportan la aceleración de la GPU. Tendría que investigar un poco para encontrar lo que se agregó en las mismas versiones que la aceleración de la GPU para hacer eso.

Solo tenga en cuenta que el soporte de GPU para lienzo actualmente funciona only en Windows, por lo que tendría que quitar todas las máquinas ejecutando OSX de ecuación y solo en ie9, chrome 11 y firefox 4 - todas ellas RC, betas o compilaciones de desarrollo.

para IE9 por ejemplo: única IE tienen propiedades de color CSS scrollabar y forma única IE9 todo el IE soporta CSS opacidad

function isIE9() { 
    var bodyStyle = document.body.style; 
    return (bodyStyle.scrollbar3dLightColor != undefined && bodyStyle.opacity != undefined) 
} 
+0

Algo así estaría bien. No hay ninguna funcionalidad adicional que esté buscando y los usuarios de otros sistemas/navegadores antiguos no perderán el contenido. Simplemente se perderían las animaciones inútiles y cosas por el estilo. Prefiero que el usuario simplemente no los vea en lugar de ejecutar a 4 fps en un Pentium II. – Emrikol

+0

@Emrikol Sí, creo que este es el mejor enfoque, si los efectos que está planeando no pueden ser reemplazados por otros menos sofisticados que requerirían menos CPU, es mejor no agregarlos si fueran a congelar el navegador o incluso colgarlo.Aunque siempre puedes agregar un tipo de cinta en la parte superior de la página con el mensaje de que hay algo interesante para ver si tienes un navegador más nuevo; por ejemplo, me perdería si no lo viera :) –

+1

Mi navegador es compatible con todos las últimas características, sin embargo, mi computadora vieja no funciona. La verificación de las características del navegador le daría un falso positivo en mi caso, y atascaría mi computadora horriblemente. –

Cuestiones relacionadas