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)
|
|
));
|
|
});
|
|
});
|
|
|