Files
dealplustech/dealplustech-astro/node_modules/promise-limit/test/memoryUsageSpec.js
Kunthawat Greethong 6402d885f9 Complete Astro migration - PDPA compliant website
- Migrated all pages from Next.js to Astro
- Added PDPA-compliant Privacy Policy (Thai)
- Added PDPA-compliant Terms & Conditions (Thai)
- Added Cookie Policy with disclosure (Thai)
- Implemented cookie consent banner (client-side)
- Integrated Umami Analytics placeholder
- Blog system with 3 posts
- Optimized Docker configuration for production
- Static site build (184KB, 11 pages)
- Ready for Easypanel deployment

Backup: /Users/kunthawatgreethong/Gitea/dealplustech-backup-nextjs-20260309.tar.gz
2026-03-09 18:28:01 +07:00

49 lines
1.0 KiB
JavaScript

/* eslint-env mocha */
var times = require('lowscore/times')
var limiter = require('..')
var expect = require('chai').expect
var max = require('./max')
describe('promise-limit memory usage', function () {
var memoryProfile
beforeEach(function () {
memoryProfile = []
})
function checkMemory () {
var memory = process.memoryUsage().heapUsed
memoryProfile.push(memory)
}
function load (i) {
checkMemory()
return new Promise(function (resolve, reject) {
setTimeout(resolve, 10)
}).then(function () {
checkMemory()
var array = new Array(1024 * 1024)
return {
i: i,
array: array
}
})
}
it("doesn't use too much memory", function () {
this.timeout(20000)
var limit = limiter(5)
return Promise.all(times(1000, function (i) {
return limit(function () {
return load(i).then(function () {})
})
})).then(function () {
var maxMemoryUsage = max(memoryProfile)
expect(maxMemoryUsage).to.be.lessThan(2000 * 1024 * 1024)
})
})
})