Usando javascript para detectar o desempenho da CPU / GPU do dispositivo?

(A questão não é específica para three.js, mas vou usá-lo como exemplo)

Eu tenho usado o three.js para desenvolver uma interface de aplicativo da web recentemente e escrevi um bom substituto entre o WebGL e o renderizador Canvas (para navegadores de desktop).

Mas agora o problema é como detectar corretamente a capacidade do dispositivo, há dois aspectos para o problema:

recursos do navegador (recursos estáticos como webgl / canvas): isso é amplamente resolvido dentro da comunidade da web usando detecção de recurso simples.capacidade do dispositivo: essa é a parte difícil, sem acesso direto às informações de hardware do dispositivo, precisamos de algumas maneiras de saber se devemos recorrer a um código menos exigente de hardware.

Um exemplo notável: O Firefox Mobile / Opera Mobile reivindica o suporte do WebGL, mas é problemático ou limitado pelo hardware do dispositivo.

Algumas soluções alternativas que eu tenho até agora:

Use um recurso comum como indicador de desempenho - O dispositivo de toque, por exemplo, possui hardware menos potente em geral. O con: não é à prova do futuro.Lista negra do navegador / dispositivo de buggy conhecido - UA sniffing será inevitável, e pode ser difícil de manter.Teste de performance - daí a questão, além de rodar o código e medir o framerate, existem melhores opções?

Ou talvez não precise ser tão difícil, existem outras sugestões?

questionAnswers(3)

yourAnswerToTheQuestion