Anonymous
Как увеличить скорость выполнения моего кода? [закрыто]
Сообщение
Anonymous » 16 янв 2025, 17:03
Приведенный ниже код используется в ServiceNow. У меня время выполнения кода в среднем 12-16 секунд. Мне нужно увеличить время выполнения кода до менее 5 секунд. Ниже приведен мой код.
Код: Выделить всё
var usedByOrgVal = "All";
var arrFinCount = [];
var arr = [];
if (usedByOrgVal == "All") {
arr = ["operational_status!=6", "operational_status!=6^owned_by!=null", "operational_status!=6^u_in_coverage=Yes", "operational_status!=6^u_complete=Yes", "operational_status!=6^u_correct=Yes", "operational_status!=6^u_in_coverage=No", "operational_status!=6^u_complete=No", "operational_status!=6^u_correct=No", "nameISNOTEMPTY^operational_status!=6^u_resp_orgISNOTEMPTY^NQnameISNOTEMPTY^operational_status!=6^u_resp_orgISEMPTY^assetISEMPTY"];
filterList(arr);
} else {
arr = ["operational_status!=6^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^owned_by!=null^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_in_coverage=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_complete=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_correct=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_in_coverage=No^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_complete=No^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_correct=No^owned_by.u_program=" + usedByOrgVal, "nameISNOTEMPTY^operational_status!=6^u_resp_orgISNOTEMPTY^NQnameISNOTEMPTY^operational_status!=6^u_resp_orgISEMPTY^assetISEMPTY^owned_by.u_program=" + usedByOrgVal];
filterList(arr);
}
gs.info("arrFinCount: " + JSON.stringify(arrFinCount));
function filterList(arrVal) {
for (var i = 0; i < arrVal.length; i++) {
var cal = new GlideRecord("cmdb_ci_server");
cal.addEncodedQuery(arrVal[i]);
cal.query();
arrFinCount.push(cal.getRowCount());
}
}
var obj = {
Ownership: [{
Value: arrFinCount[1],
Percentage: isNaN(((arrFinCount[1] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[1] / arrFinCount[0]) * 100).toFixed(2),
}],
Coverage: [{
InCoverage: arrFinCount[2],
OutOfCoverage: arrFinCount[5],
Percentage: isNaN(((arrFinCount[2] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[2] / arrFinCount[0]) * 100).toFixed(2),
}],
Completeness: [{
Complete: arrFinCount[3],
NotComplete: arrFinCount[6],
Percentage: isNaN(((arrFinCount[3] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[3] / arrFinCount[0]) * 100).toFixed(2),
}],
Correctness: [{
Correct: arrFinCount[4],
NotCorrect: arrFinCount[7],
Percentage: isNaN(((arrFinCount[4] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[4] / arrFinCount[0]) * 100).toFixed(2),
}],
ActiveServerCount: [{
Count: arrFinCount[8]
}],
};
gs.info("obj:" + JSON.stringify(obj));
return obj;
Я попробовал добавить функцию обратного вызова sync/async, но не помогло. Есть ли какая-либо другая логика, которую мы можем использовать, чтобы уменьшить время выполнения
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ution-time
1737036210
Anonymous
Приведенный ниже код используется в ServiceNow. У меня время выполнения кода в среднем 12-16 секунд. Мне нужно увеличить время выполнения кода до менее 5 секунд. Ниже приведен мой код. [code]var usedByOrgVal = "All"; var arrFinCount = []; var arr = []; if (usedByOrgVal == "All") { arr = ["operational_status!=6", "operational_status!=6^owned_by!=null", "operational_status!=6^u_in_coverage=Yes", "operational_status!=6^u_complete=Yes", "operational_status!=6^u_correct=Yes", "operational_status!=6^u_in_coverage=No", "operational_status!=6^u_complete=No", "operational_status!=6^u_correct=No", "nameISNOTEMPTY^operational_status!=6^u_resp_orgISNOTEMPTY^NQnameISNOTEMPTY^operational_status!=6^u_resp_orgISEMPTY^assetISEMPTY"]; filterList(arr); } else { arr = ["operational_status!=6^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^owned_by!=null^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_in_coverage=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_complete=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_correct=Yes^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_in_coverage=No^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_complete=No^owned_by.u_program=" + usedByOrgVal, "operational_status!=6^u_correct=No^owned_by.u_program=" + usedByOrgVal, "nameISNOTEMPTY^operational_status!=6^u_resp_orgISNOTEMPTY^NQnameISNOTEMPTY^operational_status!=6^u_resp_orgISEMPTY^assetISEMPTY^owned_by.u_program=" + usedByOrgVal]; filterList(arr); } gs.info("arrFinCount: " + JSON.stringify(arrFinCount)); function filterList(arrVal) { for (var i = 0; i < arrVal.length; i++) { var cal = new GlideRecord("cmdb_ci_server"); cal.addEncodedQuery(arrVal[i]); cal.query(); arrFinCount.push(cal.getRowCount()); } } var obj = { Ownership: [{ Value: arrFinCount[1], Percentage: isNaN(((arrFinCount[1] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[1] / arrFinCount[0]) * 100).toFixed(2), }], Coverage: [{ InCoverage: arrFinCount[2], OutOfCoverage: arrFinCount[5], Percentage: isNaN(((arrFinCount[2] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[2] / arrFinCount[0]) * 100).toFixed(2), }], Completeness: [{ Complete: arrFinCount[3], NotComplete: arrFinCount[6], Percentage: isNaN(((arrFinCount[3] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[3] / arrFinCount[0]) * 100).toFixed(2), }], Correctness: [{ Correct: arrFinCount[4], NotCorrect: arrFinCount[7], Percentage: isNaN(((arrFinCount[4] / arrFinCount[0]) * 100).toFixed(2)) ? "0.00" : ((arrFinCount[4] / arrFinCount[0]) * 100).toFixed(2), }], ActiveServerCount: [{ Count: arrFinCount[8] }], }; gs.info("obj:" + JSON.stringify(obj)); return obj;[/code] Я попробовал добавить функцию обратного вызова sync/async, но не помогло. Есть ли какая-либо другая логика, которую мы можем использовать, чтобы уменьшить время выполнения Подробнее здесь: [url]https://stackoverflow.com/questions/79361813/how-to-increase-the-speed-of-my-code-execution-time[/url]