¿Usando javascript para detectar el rendimiento de la CPU / GPU del dispositivo?

(La pregunta no es específica de three.js, pero la usaré como ejemplo)

He estado usando three.js para desarrollar una interfaz de aplicación web últimamente y he escrito algunos fallback agradables entre WebGL y el renderizador de Canvas (para navegadores de escritorio).

Pero ahora el problema se convierte en cómo detectar correctamente la capacidad del dispositivo, hay 2 aspectos del problema:

características del navegador (características estáticas como webgl / canvas): esto se resuelve en gran medida dentro de la comunidad web mediante la detección simple de características.capacidad del dispositivo: esta es la parte difícil, sin acceso directo a la información del hardware del dispositivo, necesitamos algunas formas de saber si deberíamos recurrir a un código que requiera menos hardware.

Un ejemplo notable: Firefox mobile / Opera mobile admite el soporte de WebGL pero está defectuoso o está limitado por el hardware del dispositivo.

Algunas soluciones que he encontrado hasta ahora:

Utilice una característica común como indicador de rendimiento - El dispositivo táctil, por ejemplo, tiene un hardware menos potente en general. El con: no es a prueba de futuro.Lista negra conocida navegador / dispositivo con errores - La inhalación de UA será inevitable y puede ser difícil de mantener.Prueba de rendimiento - De ahí la pregunta, además de ejecutar el código y medir la tasa de cuadros, ¿hay mejores opciones?

O tal vez no tiene que ser tan difícil, ¿hay otras sugerencias?

Respuestas a la pregunta(3)

Su respuesta a la pregunta