(La domanda non è specifica di three.js, ma la userò come esempio)Utilizzo di javascript per rilevare le prestazioni della CPU/GPU del dispositivo?
Ho usato three.js per sviluppare un'interfaccia web app ultimamente e ho scritto un bel fallback tra WebGL e Canvas renderer (per i browser desktop).
Ma ora il problema diventa come rilevare correttamente capacità del dispositivo, ci sono 2 aspetti del problema:
- del browser caratteristiche (caratteristiche statiche come WebGL/tela): questo è in gran parte risolto all'interno della comunità web utilizzando la funzione di rilevamento semplice.
- capacità del dispositivo: questa è la parte più difficile, senza l'accesso diretto alle informazioni hardware del dispositivo, abbiamo bisogno di alcuni modi di raccontare se dovremmo fallback a meno codice hardware esigenti.
Un esempio notevole: mobile/Opera affermazioni mobili sostegno Firefox di WebGL ma sono buggy o limitata da hardware del dispositivo.
alcune soluzioni vengo in mente finora:
- Utilizzare una caratteristica comune come indicatore di performance - dispositivo touch, per esempio, ha meno potente hardware in generale. La truffa: non è a prova di futuro.
- Blacklist noto browser/dispositivo buggy - Lo sniffing UA sarà inevitabile e può essere difficile da mantenere.
- Test prestazioni - da qui la domanda, oltre a eseguire il codice e misurare il framerate, ci sono opzioni migliori?
O forse non deve essere così difficile, ci sono altri suggerimenti?
Mentre le statistiche sono interessanti, non vedo come questo possa essere applicato ai singoli utenti del mio sito (per abilitare il fallback corretto, senza una lista nera di dispositivo/browser).Anche dal codice sembra che il rilevamento sia fatto in un iframe, mi riservo il mio dubbio sulla scelta del metodo. – bitinn
Infatti. Questa è un'informazione molto interessante, tuttavia è solo una funzione di rilevamento, qualcosa che potresti fare per ciascuno dei tuoi utenti da solo. Non ti dirà le prestazioni, a meno che tu non voglia tracciare alcune correlazioni piuttosto azzardate tra l'implementazione delle caratteristiche e le prestazioni. – desau