test GPU
This commit is contained in:
@@ -21,11 +21,14 @@ export class example extends plugin {
|
||||
|
||||
})
|
||||
this.interval_key = 'yenai:state:interval'
|
||||
this.isGPU = false
|
||||
}
|
||||
async init() {
|
||||
si.networkStats()
|
||||
if ((await si.graphics()).controllers.find(item => item.memoryUsed && item.memoryFree && item.utilizationGpu)) {
|
||||
this.isGPU = true
|
||||
}
|
||||
}
|
||||
|
||||
async execSync(cmd) {
|
||||
return new Promise((resolve, reject) => {
|
||||
child_process.exec(cmd, (error, stdout, stderr) => {
|
||||
@@ -57,13 +60,13 @@ export class example extends plugin {
|
||||
let Usingmemory = CPU.getfilesize((os.totalmem() - os.freemem()))
|
||||
//nodejs占用
|
||||
let nodeoccupy = CPU.getmemory();
|
||||
let node = Circle(nodeoccupy.occupy)
|
||||
let node = CPU.Circle(nodeoccupy.occupy)
|
||||
let [node_leftCircle, node_rightCircle] = node
|
||||
//cpu
|
||||
let cpu = Circle(cpu_info)
|
||||
let cpu = CPU.Circle(cpu_info)
|
||||
let [cpu_leftCircle, cpu_rightCircle] = cpu
|
||||
//ram
|
||||
let ram = Circle(MemUsage)
|
||||
let ram = CPU.Circle(MemUsage)
|
||||
let [ram_leftCircle, ram_rightCircle] = ram
|
||||
//最大mhz
|
||||
// let maxspeed = CPU.getmaxspeed()
|
||||
@@ -106,9 +109,9 @@ export class example extends plugin {
|
||||
<div class='word mount'>${i.mount}</div>
|
||||
<div class='progress'>
|
||||
<div class='word'>${CPU.getfilesize(i.used)} / ${CPU.getfilesize(i.size)}</div>
|
||||
<div class='current' style=width:${Math.round(i.use)}%></div>
|
||||
<div class='current' style=width:${Math.ceil(i.use)}%></div>
|
||||
</div>
|
||||
<div>${Math.round(i.use)}%</div>
|
||||
<div>${Math.ceil(i.use)}%</div>
|
||||
</li>`
|
||||
}
|
||||
if (HardDisk) HardDisk = `<div class="box memory"><ul>${HardDisk}</ul></div>`
|
||||
@@ -124,6 +127,15 @@ export class example extends plugin {
|
||||
<p>↑${network.tx_sec}/s ↓${network.rx_sec}/s</p>
|
||||
</div>`
|
||||
}
|
||||
let GPU = ''
|
||||
//GPU
|
||||
try {
|
||||
if (await redis.get('yenai:isGPU') == '1') {
|
||||
GPU = await CPU.getGPU()
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
//FastFetch
|
||||
let FastFetch = ""
|
||||
if (/pro/.test(e.msg)) {
|
||||
@@ -201,6 +213,8 @@ export class example extends plugin {
|
||||
networkhtml,
|
||||
//FastFetch
|
||||
FastFetch,
|
||||
//GPU
|
||||
GPU
|
||||
}
|
||||
//渲染图片
|
||||
await render('state/state', {
|
||||
@@ -234,22 +248,7 @@ function Formatting(time, repair) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 圆形进度条渲染
|
||||
* @param {Number} res 百分比小数
|
||||
* @return {*} css样式
|
||||
*/
|
||||
function Circle(res) {
|
||||
let num = (res * 360).toFixed(0)
|
||||
let leftCircle = `style=transform:rotate(-180deg)`;
|
||||
let rightCircle;
|
||||
if (num > 180) {
|
||||
leftCircle = `style=transform:rotate(${num}deg)`
|
||||
} else {
|
||||
rightCircle = `style=transform:rotate(-${180 - num}deg)`;
|
||||
}
|
||||
return [leftCircle, rightCircle]
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 取插件包
|
||||
|
||||
50
model/CPU.js
50
model/CPU.js
@@ -7,7 +7,6 @@ class OSUtils {
|
||||
constructor() {
|
||||
this.cpuUsageMSDefault = 1000; // CPU 利用率默认时间段
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某时间段 CPU 利用率
|
||||
* @param { Number } Options.ms [时间段,默认是 1000ms,即 1 秒钟]
|
||||
@@ -103,5 +102,54 @@ class OSUtils {
|
||||
let occupy = (memory.rss / (os.totalmem() - os.freemem())).toFixed(2)
|
||||
return { rss, heapTotal, heapUsed, occupy }
|
||||
}
|
||||
/**
|
||||
* @description: 圆形进度条渲染
|
||||
* @param {Number} res 百分比小数
|
||||
* @return {*} css样式
|
||||
*/
|
||||
Circle(res) {
|
||||
let num = (res * 360).toFixed(0)
|
||||
let leftCircle = `style=transform:rotate(-180deg)`;
|
||||
let rightCircle;
|
||||
if (num > 180) {
|
||||
leftCircle = `style=transform:rotate(${num}deg)`
|
||||
} else {
|
||||
rightCircle = `style=transform:rotate(-${180 - num}deg)`;
|
||||
}
|
||||
return [leftCircle, rightCircle]
|
||||
}
|
||||
|
||||
/**获取GPU */
|
||||
async getGPU() {
|
||||
let graphics = (await si.graphics()).controllers.find(item => item.memoryUsed && item.memoryFree && item.utilizationGpu)
|
||||
console.log(graphics);
|
||||
let { vendor, temperatureGpu, utilizationGpu, memoryTotal, memoryUsed, powerDraw } = graphics
|
||||
let GPUstyle = this.Circle(utilizationGpu / 100)
|
||||
temperatureGpu = temperatureGpu ? temperatureGpu + '℃' : ''
|
||||
powerDraw = powerDraw ? powerDraw + "W" : ""
|
||||
return `<li class="li">
|
||||
<div class="cpu">
|
||||
<div class="left">
|
||||
<div class="left-circle" ${GPUstyle[0]}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="right-circle" ${GPUstyle[1]}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inner">
|
||||
${utilizationGpu}%
|
||||
</div>
|
||||
</div>
|
||||
<article>
|
||||
<p>GPU</p>
|
||||
<p>${vendor} ${temperatureGpu} ${powerDraw}</p>
|
||||
<p>总共 ${(memoryTotal / 1024).toFixed(2)}G</p>
|
||||
<p>已用 ${(memoryUsed / 1024).toFixed(2)}G</p>
|
||||
</article>
|
||||
</li>`
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
export default new OSUtils();
|
||||
@@ -66,6 +66,7 @@
|
||||
<p>空闲 {{freemem}}</p>
|
||||
</article>
|
||||
</li>
|
||||
{{@GPU}}
|
||||
<li class="li">
|
||||
<div class="cpu">
|
||||
<div class="left">
|
||||
|
||||
Reference in New Issue
Block a user