前言
之前虚幻引擎的进程都是通过UE实例自己退出的,最近尝试一个新的方案,通过nodejs来杀死进程来实现UE实例的退出。不过由于担心反正强杀进程会导致系统问题,这里进行一下压力测试。
测试环境
操作系统:win11专业版
![69ae6157ac218e39b5863bd082e6bc6f.png](https://img-blog.csdnimg.cn/img_convert/69ae6157ac218e39b5863bd082e6bc6f.png)
显卡:rtx4060 TI
![3296be31cf6acff4f21e39a212ac5ed5.png](https://img-blog.csdnimg.cn/img_convert/3296be31cf6acff4f21e39a212ac5ed5.png)
显卡驱动:551.76
![861031c91da6371ca7ca7b581f090c2d.png](https://img-blog.csdnimg.cn/img_convert/861031c91da6371ca7ca7b581f090c2d.png)
测试方案
这里采用puppeteer的压力测试方案。Puppeteer 是一个用于控制无头 Chrome 或 Chromium 浏览器的 Node.js 库。它提供了一个高层次的 API,适合用于自动化网页任务,如抓取网页内容、生成截图和 PDF、自动化表单提交、进行 UI 测试等。
npm i puppeteer
测试代码
const puppeteer = require('puppeteer')
let count = 0;
puppeteer
.launch({
headless: false,
})
.then(async (browser) => {
while(true){
const page = await browser.newPage()
await page.goto('http://127.0.0.1:5500/test.html')
count = count+1
console.log(`open ue count = ${count}`)
// 其他操作...
await sleep(10 * 1000)
page.close();
await sleep(30 * 1000)
}
//await browser.close()
})
function sleep(duration) {
return new Promise((resolve) => {
setTimeout(resolve, duration)
})
}
这里设置UE实例20秒没有访问就会被杀掉,然后30秒之后再打开网页,如此反复进行。
![2d3fef009ed35063e617f0b8631fd6e9.png](https://img-blog.csdnimg.cn/img_convert/2d3fef009ed35063e617f0b8631fd6e9.png)
20秒之后UE实例就会被自动杀掉,如下面两个图片
![51f3f711fe39b2b6b05841079fc9f46e.png](https://img-blog.csdnimg.cn/img_convert/51f3f711fe39b2b6b05841079fc9f46e.png)
![3c23e4f0e1d46224723ad1cc9e6de676.png](https://img-blog.csdnimg.cn/img_convert/3c23e4f0e1d46224723ad1cc9e6de676.png)
测试结果
基本上还算可以,跑了半天,等下继续跑,画面一直可以出来。
![43eabc02dcdc963bcebc9700332e4e08.png](https://img-blog.csdnimg.cn/img_convert/43eabc02dcdc963bcebc9700332e4e08.png)
我的知识星球
请关注公众号g0415shenw 加入知识星球。星球地址 https://t.zsxq.com/15EvfoA7n 星球有本人经验心得全部总结 涵盖音视频,gb28181、虚幻引擎、其他编程工具等等。另外还可以在星球提问,我会尽力答复,等于给您多了一个引路人。