获取CPU/GPU/内存信息
Get CPU/GPU/memory information
我需要获得有关CPU/GPU/内存的任何信息。核数、内存值、内存和cpu使用率……我为IE找到了一种方法:如何使用JavaScript查找硬件信息
我不知道其他浏览器的解决方案。知道怎么做吗?也许webgl可以访问您的计算机信息?还是闪?或者其他技术?
非常感谢
这段代码将打印GPU信息,并列出您可以从该浏览器的Performance
对象获得的所有信息(每个浏览器都不同)。
<html>
<body>
<canvas id="glcanvas" width="0" height="0"></canvas>
<script>
var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {};
const performanceKeys = [];
for (var value in performance) {
performanceKeys.push(value);
}
document.write("<br>");
document.write(performanceKeys.sort().map((p) => '<a href="https://developer.mozilla.org/en-US/docs/Web/API/Performance/' + p + '">' + p + "</a>").join("<br>"));
document.write("<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>
Chrome输出:
addEventListener
clearMarks
clearMeasures
clearResourceTimings
dispatchEvent
eventCounts
getEntries
getEntriesByName
getEntriesByType
mark
measure
memory
navigation
now
onresourcetimingbufferfull
removeEventListener
setResourceTimingBufferSize
timeOrigin
timing
toJSON
WebKit WebGL
WebKit
NVIDIA Corporation
NVIDIA GeForce GTX 775M OpenGL Engine
Firefox输出:
addEventListener
clearMarks
clearMeasures
clearResourceTimings
dispatchEvent
eventCounts
getEntries
getEntriesByName
getEntriesByType
mark
measure
navigation
now
onresourcetimingbufferfull
removeEventListener
setResourceTimingBufferSize
timeOrigin
timing
toJSON
Mozilla
Mozilla
Safari的输出:
addEventListener
clearMarks
clearMeasures
clearResourceTimings
dispatchEvent
getEntries
getEntriesByName
getEntriesByType
mark
measure
navigation
now
onresourcetimingbufferfull
removeEventListener
setResourceTimingBufferSize
timeOrigin
timing
toJSON
WebKit WebGL
WebKit
NVIDIA Corporation
NVIDIA GeForce GTX 775M OpenGL Engine
目前Chrome金丝雀支持返回CPU内核的数量使用:
navigator.hardwareConcurrency
通过计时减少变量数百万次所需的时间来估计CPU速度:
const runs = 150000000;
const start = performance.now(); // in ms, usually with 100us resolution
for (let i = runs; i>0; i--) {}
const end = performance.now();
const ms = end - start;
const cyclesPerRun = 2;
const speed = (runs / ms / 1000000) * cyclesPerRun;
console.log(`Time: ${Math.round(ms)/1000}s, estimated speed: ${Math.round(speed*10)/10} GHz`);
* cyclesPerRun
是一种非常粗略的映射"每秒减法"的方法。不同的浏览器(因为它们的JavaScript引擎可能会以不同的方式优化代码)和cpu(因为它们可能能够流水线更多的指令,它们可能会更快地提高频率,等等),它会有很大的不同。您可能最好只是使用runs / ms
作为通用的"CPU速度";参数,而不是尝试用cyclesPerRun
估计GHz的时钟速度。
你也可以通过在你知道时钟速度的CPU上运行上面的代码来估计cyclesPerRun
,然后这样做:
const knownSpeed = 3.2; // GHz
const estimatedCyclesPerRun = knownSpeed / (runs/ms/1000000);
console.log("cyclesPerRun = " + estimatedCyclesPerRun);
这个基准还取决于用户打开的浏览器选项卡的数量,或者是否有其他程序(如视频游戏)已经在使用计算机的资源等。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何通过解析类信息来使用jQuery创建类
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- ng在更新$scope后重复不更新信息
- 谷歌地图点击潜水触发信息窗口
- 重复应用 d3 转换导致的内存泄漏
- 根据CHECKBOX输入值动态更新DIV信息
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- 是否所有面向对象的语言都会在内存中创建大量重复信息
- Node.js创建一个模块来收集内存(ram)信息
- 获取CPU/GPU/内存信息
- 内存和有关JavaScript的更多信息