vray renderizar para con javascript memory webgl cpu gpu

javascript - para - renderizar con gpu vray



Obtener informaciĆ³n de CPU/GPU/memoria (3)

Necesito obtener información sobre la CPU / GPU / memoria. La cantidad de núcleos, el valor de la memoria, la memoria y el uso de la CPU ... Encontré una forma de hacerlo para IE: Cómo usar JavaScript para encontrar información del hardware

soluciones para otros navegadores, no lo sé. ¿Alguna idea de cómo hacerlo? tal vez webgl tiene acceso a la información sobre su computadora? o flash? o cualquier otra tecnología?

Muchas gracias


Actualmente, Chrome Canary admite la devolución de la cantidad de núcleos de CPU utilizando:

navigator.hardwareConcurrency

Esto worked para mí en Chrome Canary 37.


Escribí este guión rápido para obtener la velocidad de la CPU:

var _speedconstant = 8.9997e-9; //if speed=(c*a)/t, then constant=(s*t)/a and time=(a*c)/s var d = new Date(); var amount = 150000000; var estprocessor = 1.7; //average processor speed, in GHZ console.log("JSBenchmark by Aaron Becker, running loop "+amount+" times. Estimated time (for "+estprocessor+"ghz processor) is "+(Math.round(((_speedconstant*amount)/estprocessor)*100)/100)+"s"); for (var i = amount; i>0; i--) {} var newd = new Date(); var accnewd = Number(String(newd.getSeconds())+"."+String(newd.getMilliseconds())); var accd = Number(String(d.getSeconds())+"."+String(d.getMilliseconds())); var di = accnewd-accd; //console.log(accnewd,accd,di); if (d.getMinutes() != newd.getMinutes()) { di = (60*(newd.getMinutes()-d.getMinutes()))+di} spd = ((_speedconstant*amount)/di); console.log("Time: "+Math.round(di*1000)/1000+"s, estimated speed: "+Math.round(spd*1000)/1000+"GHZ");

Tenga en cuenta que esto depende de las pestañas del navegador, del uso de la memoria, etc., pero me pareció bastante preciso si solo lo ejecuta una vez, por ejemplo, al cargar una página.

Esto puede no ser exacto para dispositivos de escritorio, especialmente PC, pero lo uso en mi sitio web solo cuando otras soluciones como la primera falla, para obtener la velocidad promedio de los dispositivos móviles (me permite estimar los núcleos utilizados) usando solo el lado del cliente JS. Puede que no sea el mejor, pero lo hace bastante bien.

Si desea cambiar el valor _speedconstant para cambiar la velocidad, simplemente calcúlelo con la ecuación (knowncpuspeed * knowntimetocomplete) / knowncycles. ¡Espero que encuentres esto útil!

ACTUALIZACIÓN 19/10/17: Cambié _speedconstant para el nuevo motor chrome V8 JS y agregué una sección sobre para qué lo uso.


Este código imprimirá las informaciones de la GPU y mostrará toda la información que pueda tener con el objeto de rendimiento de este navegador (no hay un estándar para la lista de materiales, por lo que cambia para cada navegador).

<html> <body> <canvas id="glcanvas" width="0" height="0"></canvas> <script> var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; document.write("<br>"); for (var value in performance) { document.write(value + "<br>"); } document.write("<br><br><br>"); var canvas; canvas = document.getElementById("glcanvas"); var gl = canvas.getContext("experimental-webgl"); document.write(gl.getParameter(gl.RENDERER) + "<br>"); document.write(gl.getParameter(gl.VENDOR) + "<br>"); document.write(getUnmaskedInfo(gl).vendor + "<br>"); document.write(getUnmaskedInfo(gl).renderer + "<br>"); function getUnmaskedInfo(gl) { var unMaskedInfo = { renderer: '''', vendor: '''' }; var dbgRenderInfo = gl.getExtension("WEBGL_debug_renderer_info"); if (dbgRenderInfo != null) { unMaskedInfo.renderer = gl.getParameter(dbgRenderInfo.UNMASKED_RENDERER_WEBGL); unMaskedInfo.vendor = gl.getParameter(dbgRenderInfo.UNMASKED_VENDOR_WEBGL); } return unMaskedInfo; } </script> </body>

Salida en Chrome:

onresourcetimingbufferfull onwebkitresourcetimingbufferfull timing navigation memory now getEntries getEntriesByType getEntriesByName clearResourceTimings setResourceTimingBufferSize webkitClearResourceTimings webkitSetResourceTimingBufferSize mark clearMarks measure clearMeasures addEventListener removeEventListener dispatchEvent WebKit WebGL WebKit NVIDIA Corporation NVIDIA GeForce GTX 775M OpenGL Engine

Salida en Firfox:

now getEntries getEntriesByType getEntriesByName clearResourceTimings setResourceTimingBufferSize mark clearMarks measure clearMeasures toJSON timing navigation onresourcetimingbufferfull Mozilla Mozilla

Salida en Safari:

navigation timing now WebKit WebGL WebKit NVIDIA Corporation NVIDIA GeForce GTX 775M OpenGL Engine