aboutsummaryrefslogtreecommitdiff
path: root/node_modules/reusify/benchmarks
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
committerMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
commitd25e11bee6ca5ca523884da132d18e1400e077b9 (patch)
tree8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/reusify/benchmarks
downloadkartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip
Initial commit
Diffstat (limited to 'node_modules/reusify/benchmarks')
-rw-r--r--node_modules/reusify/benchmarks/createNoCodeFunction.js30
-rw-r--r--node_modules/reusify/benchmarks/fib.js13
-rw-r--r--node_modules/reusify/benchmarks/reuseNoCodeFunction.js38
3 files changed, 81 insertions, 0 deletions
diff --git a/node_modules/reusify/benchmarks/createNoCodeFunction.js b/node_modules/reusify/benchmarks/createNoCodeFunction.js
new file mode 100644
index 0000000..ce1aac7
--- /dev/null
+++ b/node_modules/reusify/benchmarks/createNoCodeFunction.js
@@ -0,0 +1,30 @@
+'use strict'
+
+var fib = require('./fib')
+var max = 100000000
+var start = Date.now()
+
+// create a funcion with the typical error
+// pattern, that delegates the heavy load
+// to something else
+function createNoCodeFunction () {
+ /* eslint no-constant-condition: "off" */
+ var num = 100
+
+ ;(function () {
+ if (null) {
+ // do nothing
+ } else {
+ fib(num)
+ }
+ })()
+}
+
+for (var i = 0; i < max; i++) {
+ createNoCodeFunction()
+}
+
+var time = Date.now() - start
+console.log('Total time', time)
+console.log('Total iterations', max)
+console.log('Iteration/s', max / time * 1000)
diff --git a/node_modules/reusify/benchmarks/fib.js b/node_modules/reusify/benchmarks/fib.js
new file mode 100644
index 0000000..e22cc48
--- /dev/null
+++ b/node_modules/reusify/benchmarks/fib.js
@@ -0,0 +1,13 @@
+'use strict'
+
+function fib (num) {
+ var fib = []
+
+ fib[0] = 0
+ fib[1] = 1
+ for (var i = 2; i <= num; i++) {
+ fib[i] = fib[i - 2] + fib[i - 1]
+ }
+}
+
+module.exports = fib
diff --git a/node_modules/reusify/benchmarks/reuseNoCodeFunction.js b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js
new file mode 100644
index 0000000..3358d6e
--- /dev/null
+++ b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js
@@ -0,0 +1,38 @@
+'use strict'
+
+var reusify = require('../')
+var fib = require('./fib')
+var instance = reusify(MyObject)
+var max = 100000000
+var start = Date.now()
+
+function reuseNoCodeFunction () {
+ var obj = instance.get()
+ obj.num = 100
+ obj.func()
+ obj.num = 0
+ instance.release(obj)
+}
+
+function MyObject () {
+ this.next = null
+ var that = this
+ this.num = 0
+ this.func = function () {
+ /* eslint no-constant-condition: "off" */
+ if (null) {
+ // do nothing
+ } else {
+ fib(that.num)
+ }
+ }
+}
+
+for (var i = 0; i < max; i++) {
+ reuseNoCodeFunction()
+}
+
+var time = Date.now() - start
+console.log('Total time', time)
+console.log('Total iterations', max)
+console.log('Iteration/s', max / time * 1000)