Initial commit: New MoreminiMore website with fresh design
This commit is contained in:
48
node_modules/promise-limit/test/memoryUsageSpec.js
generated
vendored
Normal file
48
node_modules/promise-limit/test/memoryUsageSpec.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
/* 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)
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user