summaryrefslogtreecommitdiff
path: root/benchmark/find.js
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/find.js')
-rw-r--r--benchmark/find.js105
1 files changed, 0 insertions, 105 deletions
diff --git a/benchmark/find.js b/benchmark/find.js
deleted file mode 100644
index 2d18657..0000000
--- a/benchmark/find.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * benchmark: find a product in product list
- * using: for vs forEach vs find
- */
-
-const microtime = require('microtime');
-
-const products = require('../data/products.json');
-
-
-var selected = [];
-products.forEach( pr => {
- if (Math.floor(Math.random() * 100) > 85) {
- selected.push(pr.id);
- }
-});
-
-
-function compare() {
-
- let n = 4;
-
- var f0 = microtime.nowDouble();
- for(i=0 ; i < n ; i++) byFor();
- var f1 = microtime.nowDouble();
- //
- var e0 = microtime.nowDouble();
- for(i=0 ; i < n ; i++) byEach();
- var e1 = microtime.nowDouble();
- //
- var b0 = microtime.nowDouble();
- for(i=0 ; i < n ; i++) byFind();
- var b1 = microtime.nowDouble();
-
- return {
- n: n,
-
- for: f1-f0,
- items_for: byFor(),
-
- each: e1-e0,
- items_each: byEach(),
-
- find: b1-b0,
- items_find: byFind(),
-
- sel: selected,
- }
-}
-
-
-function byFor() {
- var items = [];
- var notFound = [];
- var found;
- selected.forEach( id => {
- found = false;
- for(i = 0; i < products.length; i++) {
- if (products[i].id == id) {
- items.push(products[i]);
- found = true;
- break;
- }
- }
- if (!found) notFound.push(id)
-
- })
- return {items: items, nf: notFound};
-}
-
-
-function byEach() {
- var items = [];
- var notFound = [];
- var found;
- selected.forEach( id => {
- found = false;
- products.forEach( pr => {
- if (pr.id == id) {
- items.push(pr);
- found = true;
- }
- });
- if (!found) notFound.push(id)
- });
- return {items: items, nf: notFound};
-}
-
-function byFind() {
- var items = [];
- var notFound = [];
- var result;
- selected.forEach( id => {
- found = false;
- result = products.find((pr) => pr.id == id);
- if (result === undefined) notFound.push(id)
- else items.push(result);
- });
- return {items: items, nf: notFound};
-}
-
-module.exports = {
- compare,
- byFor
-} \ No newline at end of file