b3e19fe95f81c76edec864b47812a4408b729a6c
[poolifier.git] / benchmarks / versus-external-pools / functions / function-to-bench.js
1 const fs = require('fs')
2
3 const TaskTypes = {
4 CPU_INTENSIVE: 'CPU_INTENSIVE',
5 IO_INTENSIVE: 'IO_INTENSIVE'
6 }
7
8 module.exports = function (data) {
9 data = data || {}
10 data.taskType = data.taskType || TaskTypes.CPU_INTENSIVE
11 data.taskSize = data.taskSize || 5000
12 const benchmarksFilePath = '/tmp/poolifier-benchmarks'
13 switch (data.taskType) {
14 case TaskTypes.CPU_INTENSIVE:
15 // CPU intensive task
16 for (let i = 0; i < data.taskSize; i++) {
17 const o = {
18 a: i
19 }
20 JSON.stringify(o)
21 }
22 return { ok: 1 }
23 case TaskTypes.IO_INTENSIVE:
24 // IO intensive task
25 for (let i = 0; i < data.taskSize; i++) {
26 fs.writeFileSync(benchmarksFilePath, i.toString(), 'utf8')
27 fs.readFileSync(benchmarksFilePath, 'utf8')
28 fs.unlinkSync(benchmarksFilePath)
29 }
30 return { ok: 1 }
31 default:
32 throw new Error(`Unknown task type: ${data.taskType}`)
33 }
34 }