| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 3a6bc90 commit b9c7c90
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,15 +3,55 @@ | |||
| 3 | 3 | const common = require('../common'); | |
| 4 | 4 | ||
| 5 | 5 | const bench = common.createBenchmark(main, { | |
| 6 | - n: [1e5], | ||
| 6 | + n: [1e6], | ||
| 7 | + operation: ['get', 'set', 'enumerate', 'query', 'delete'] | ||
| 7 | 8 | }); | |
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | - function main({ n }) { | ||
| 11 | - bench.start(); | ||
| 12 | - for (var i = 0; i < n; i++) { | ||
| 13 | - // Access every item in object to process values. | ||
| 14 | - Object.keys(process.env); | ||
| 11 | + function main({ n, operation }) { | ||
| 12 | + switch (operation) { | ||
| 13 | + case 'get': | ||
| 14 | + bench.start(); | ||
| 15 | + for (let i = 0; i < n; i++) { | ||
| 16 | + process.env.PATH; | ||
| 17 | + } | ||
| 18 | + bench.end(n); | ||
| 19 | + break; | ||
| 20 | + case 'set': | ||
| 21 | + bench.start(); | ||
| 22 | + for (let i = 0; i < n; i++) { | ||
| 23 | + process.env.DUMMY = 'hello, world'; | ||
| 24 | + } | ||
| 25 | + bench.end(n); | ||
| 26 | + break; | ||
| 27 | + case 'enumerate': | ||
| 28 | + // First, normalize process.env so that benchmark results are comparable. | ||
| 29 | + for (const key of Object.keys(process.env)) | ||
| 30 | + delete process.env[key]; | ||
| 31 | + for (let i = 0; i < 64; i++) | ||
| 32 | + process.env[Math.random()] = Math.random(); | ||
| 33 | + | ||
| 34 | + n /= 10; // Enumeration is comparatively heavy. | ||
| 35 | + bench.start(); | ||
| 36 | + for (let i = 0; i < n; i++) { | ||
| 37 | + // Access every item in object to process values. | ||
| 38 | + Object.keys(process.env); | ||
| 39 | + } | ||
| 40 | + bench.end(n); | ||
| 41 | + break; | ||
| 42 | + case 'query': | ||
| 43 | + bench.start(); | ||
| 44 | + for (let i = 0; i < n; i++) { | ||
| 45 | + 'PATH' in process.env; | ||
| 46 | + } | ||
| 47 | + bench.end(n); | ||
| 48 | + break; | ||
| 49 | + case 'delete': | ||
| 50 | + bench.start(); | ||
| 51 | + for (let i = 0; i < n; i++) { | ||
| 52 | + delete process.env.DUMMY; | ||
| 53 | + } | ||
| 54 | + bench.end(n); | ||
| 55 | + break; | ||
| 15 | 56 | } | |
| 16 | - bench.end(n); | ||
| 17 | 57 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,5 +7,6 @@ const runBenchmark = require('../common/benchmark'); | |||
| 7 | 7 | runBenchmark('process', | |
| 8 | 8 | [ | |
| 9 | 9 | 'n=1', | |
| 10 | - 'type=raw' | ||
| 10 | + 'type=raw', | ||
| 11 | + 'operation=enumerate', | ||
| 11 | 12 | ], { NODEJS_BENCHMARK_ZERO_ALLOWED: 1 }); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments