Verwenden Sie Javascript, um die CPU- / GPU-Leistung des Geräts zu ermitteln?

(Die Frage ist nicht spezifisch für three.js, aber ich werde sie als Beispiel verwenden.)

Ich habe in letzter Zeit three.js verwendet, um eine Web-App-Oberfläche zu entwickeln, und ein paar nette Fallbacks zwischen WebGL und Canvas-Renderer (für Desktop-Browser) geschrieben.

Aber jetzt wird das Problem, wie man die Gerätefähigkeit richtig erkennt. Das Problem besteht aus zwei Aspekten:

Browser-Funktionen (statische Funktionen wie webgl / canvas): Dies wird weitgehend in der Web-Community mithilfe der einfachen Funktionserkennung gelöst.Gerätefähigkeit: Dies ist der schwierige Teil. Ohne direkten Zugriff auf die Hardwareinformationen des Geräts müssen wir feststellen, ob wir auf weniger hardwareintensiven Code zurückgreifen sollten.

Ein bemerkenswertes Beispiel: Firefox Mobile / Opera Mobile behauptet, WebGL zu unterstützen, ist jedoch fehlerhaft oder durch Gerätehardware eingeschränkt.

Ein paar Workarounds, die ich mir bisher ausgedacht habe:

Verwenden Sie eine gemeinsame Funktion als Leistungsindikator - Das Touch-Gerät hat im Allgemeinen weniger leistungsfähige Hardware. Der Nachteil: Es ist nicht zukunftssicher.Schwarze Liste bekannter fehlerhafter Browser / Gerät - UA-Schnüffeln ist unvermeidlich und kann schwierig zu warten sein.Leistungstest - daher die Frage, ob es neben dem Ausführen des Codes und der Framerate bessere Optionen gibt?

Oder muss es nicht so schwer sein, gibt es noch andere Vorschläge?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage