You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.1 KiB
35 lines
1.1 KiB
const { createScheduler, createWorker } = Tesseract; |
|
|
|
let workers = []; |
|
|
|
before(async function cb() { |
|
this.timeout(0); |
|
const NUM_WORKERS = 5; |
|
console.log(`Initializing ${NUM_WORKERS} workers`); |
|
workers = await Promise.all(Array(NUM_WORKERS).fill(0).map(async () => { |
|
const w = createWorker(OPTIONS); |
|
await w.load(); |
|
await w.loadLanguage('eng'); |
|
await w.initialize('eng'); |
|
return w; |
|
})); |
|
console.log(`Initialized ${NUM_WORKERS} workers`); |
|
}); |
|
|
|
describe('scheduler', () => { |
|
describe('should speed up with more workers (running 10 jobs)', () => { |
|
[1, 3, 5].forEach(num => ( |
|
it(`support using ${num} workers`, async () => { |
|
const NUM_JOBS = 10; |
|
const scheduler = createScheduler(); |
|
workers.slice(0, num).forEach((w) => { |
|
scheduler.addWorker(w); |
|
}); |
|
const rets = await Promise.all(Array(NUM_JOBS).fill(0).map((_, idx) => ( |
|
scheduler.addJob('recognize', `${IMAGE_PATH}/${idx % 2 === 0 ? 'simple' : 'cosmic'}.png`) |
|
))); |
|
expect(rets.length).to.be(NUM_JOBS); |
|
}).timeout(60000) |
|
)); |
|
}); |
|
});
|
|
|