js:锄地一条龙1.3.5和新js"性能测试" (#1497)

This commit is contained in:
mno
2025-08-07 13:21:18 +08:00
committed by GitHub
parent 5b240ba7c5
commit 809039b2af
7 changed files with 82 additions and 6 deletions

View File

@@ -74,6 +74,8 @@
---
### 更新日志
### 1.3.52025.08.07
1.使用dispose极大优化内存占用
### 1.3.42025.08.07
1.修复拾取失效
2.修复泥头车模式卡复活界面

View File

@@ -1,4 +1,4 @@
//当前js版本 1.3.4
//当前js版本 1.3.5
//拾取时上下滑动的时间
const timeMoveUp = 500;
@@ -501,7 +501,9 @@ async function runPath(pathFilePath, map_name, whitelistKeywords, blacklistKeywo
try {
let template = file.ReadImageMatSync(imagePath);
let recognitionObject = RecognitionObject.TemplateMatch(template, xMin, yMin, width, height);
let result = captureGameRegion().find(recognitionObject);
const gameRegion = captureGameRegion();
let result = gameRegion.find(recognitionObject);
gameRegion.dispose();
if (result.isExist()) {
return true; // 如果找到图标,返回 true
}
@@ -540,7 +542,9 @@ async function runPath(pathFilePath, map_name, whitelistKeywords, blacklistKeywo
try {
let template = file.ReadImageMatSync(imagePath);
let recognitionObject = RecognitionObject.TemplateMatch(template, xMin, yMin, width, height);
let result = captureGameRegion().find(recognitionObject);
const gameRegion = captureGameRegion();
let result = gameRegion.find(recognitionObject);
gameRegion.dispose();
if (result.isExist()) {
return true; // 如果找到图标,返回 true
}
@@ -584,7 +588,7 @@ async function runPath(pathFilePath, map_name, whitelistKeywords, blacklistKeywo
xRange.min, yRange.min,
xRange.max - xRange.min, yRange.max - yRange.min
));
ra.dispose();
// 遍历识别结果,检查是否找到目标文本
let results = [];
for (let i = 0; i < resList.count; i++) {
@@ -622,9 +626,13 @@ async function runPath(pathFilePath, map_name, whitelistKeywords, blacklistKeywo
try {
let template = file.ReadImageMatSync(imagePath);
let recognitionObject = RecognitionObject.TemplateMatch(template, xMin, yMin, width, height);
let result = captureGameRegion().find(recognitionObject);
const gameRegion = captureGameRegion();
let result = gameRegion.find(recognitionObject);
gameRegion.dispose();
if (result.isExist()) {
return { success: true, x: result.x, y: result.y, width: result.width, height: result.height };
} else {
}
} catch (error) {
log.error(`识别图像时发生异常: ${error.message}`);

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 1,
"name": "锄地一条龙",
"version": "1.3.4",
"version": "1.3.5",
"description": "一站式解决自动化锄地支持只拾取狗粮请仔细阅读README.md后使用",
"authors": [
{

View File

@@ -0,0 +1,29 @@
// 主函数
(async function () {
let startTime = Date.now();
const interval = +settings.interval || 1000;
const timeout = +settings.timeout || 60;
let lastCheck = startTime;
let ocrcount = 0;
let loopCount = 0;
let logCount = 0;
//let store = [];
while (Date.now() - startTime < timeout * 1000) {
loopCount++;
try {
let GameRegion = captureGameRegion();
// store[loopCount] = GameRegion;
if (settings.dispose) GameRegion.dispose();
ocrcount++;
} catch (error) {
log.error(`运行时发生异常: ${error.message}`);
break;
}
if (Date.now() - lastCheck >= interval) {
logCount++;
lastCheck = Date.now();
log.info(`在第${logCount}${interval}毫秒内执行了${ocrcount}次截图`);
ocrcount = 0;
}
}
})();

View File

@@ -0,0 +1,16 @@
{
"manifest_version": 1,
"name": "截图性能测试",
"version": "0.1",
"tags": [],
"bgi_version": "0.46.0",
"description": "测测你的",
"authors": [
{
"name": "mno",
}
],
"settings_ui": "settings.json",
"main": "main.js"
}

View File

@@ -0,0 +1,2 @@
运行后将会尝试满负荷循环截图并在日志输出截图次数可在自定义配置选择是否dispose

View File

@@ -0,0 +1,19 @@
[
{
"name": "dispose",
"type": "checkbox",
"label": "是否dispose"
},
{
"name": "timeout",
"type": "input-text",
"label": "运行时间(秒)",
"default": "60"
},
{
"name": "interval",
"type": "input-text",
"label": "间隔多久输出一次(毫秒)",
"default": "1000"
}
]