Скорость выполнения приложения Node
Я написал рабочий код который вытаскивает атрибуты пользователя из Active Directory. Он в двух вариантах, как promise и как async / await. Проблема в том, что на ноутбуке оба варианта выполняются за менее чем за секунду и это доступ к 7-ми лесам AD через VPN. Когда я помещаю этот код на сервер в локальную сеть (то есть уже VPN нет), это VMware VM Debian 12, два процессора и 6 GB RAM, на котором express публикует полученные данные на страницу /api/users, время выполнения кода становится 20 секунд! Версии Node одинаковые, зависимости идентичные. Именно выполнение кода, не публикация данных express, он вообще может быть не запущен. По графикам VM, никаких проблем с ресурсами нет, ноутбук MacBook Pro mid 2015 (RAM 16 Gb, SSD500). Для меня ситуация более чем странная, есть какие то мысли?
UPD: добавил код
const getBVRP = new Promise((resolve, reject) => {
const ad = new ActiveDirectory(conn_bvrp)
ad.findUsers(fltLDP, function (err, users) {
if (err) {
reject(console.error(JSON.stringify(err.message)))
} else if (!users || users.length == 0) {
resolve('No users found')
} else {
resolve(JSON.parse(JSON.stringify(users)))
}
})
})
const promises = [getVRP, getUTT, getBVRP, getMSK, getKVRZ, getNKS, getBVRZ]
const allUsersArr = []
const allUsers = Promise.allSettled(promises).then((results) =>
results.forEach((data) => {
if (data.status === 'fulfilled') {
console.log(data.status)
allUsersArr.push(...data.value)
} else {
console.log(data.status)
}
})
)
export const usersFromPromises = (req, res) => {
res.status(200).json(allUsersArr)
}
UPD: express
const server = https.createServer(options, app).listen(port, () => {
console.log('- https://amber.domain.com')
console.log(`- process ID ${process.pid} port ${port}`)
console.log('- Рабочий каталог:', process.cwd())
// console.log('- Шаблонизатор:', app.get('view engine'))
// console.log('- Шаблонизатор:', app.get('views'))
})
app.use(morgan(':method :url :status :remote-addr :res[content-length] - :response-time ms :date[web]'.brightBlue))
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.use(router)
UPD: routes
import { Router } from 'express'
import { usersFromPromises } from "../apiPromises.js";
// import { users } from '../controllers/ldapReq.js'
const router = Router()
router.get('/api/v3/users', usersFromPromises)
export default router