Skip to content

Commit

Permalink
consolidate namespaced construction into utility
Browse files Browse the repository at this point in the history
  • Loading branch information
planttheidea committed Dec 29, 2022
1 parent 0e7bfff commit 4afed9d
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 139 deletions.
220 changes: 110 additions & 110 deletions results_latest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,54 +6,54 @@ Boolean:
10,000: 0.001 sec
50,000: 0.003 sec
100,000: 0.002 sec
500,000: 0.009 sec
1,000,000: 0.02 sec
5,000,000: 0.102 sec
Average: 47,956,835 ops/sec
500,000: 0.01 sec
1,000,000: 0.019 sec
5,000,000: 0.1 sec
Average: 48,656,934 ops/sec

Infinity:
1,000: 0 sec
5,000: 0.002 sec
1,000: 0.001 sec
5,000: 0.001 sec
10,000: 0.001 sec
50,000: 0.003 sec
100,000: 0.004 sec
500,000: 0.018 sec
50,000: 0.004 sec
100,000: 0.003 sec
500,000: 0.02 sec
1,000,000: 0.035 sec
5,000,000: 0.177 sec
Average: 27,775,000 ops/sec
5,000,000: 0.174 sec
Average: 27,891,213 ops/sec

NaN:
1,000: 0 sec
5,000: 0.001 sec
10,000: 0 sec
5,000: 0 sec
10,000: 0.001 sec
50,000: 0.001 sec
100,000: 0.003 sec
500,000: 0.014 sec
500,000: 0.013 sec
1,000,000: 0.026 sec
5,000,000: 0.145 sec
Average: 35,084,211 ops/sec
5,000,000: 0.132 sec
Average: 37,875,000 ops/sec

null:
1,000: 0 sec
5,000: 0 sec
10,000: 0.001 sec
50,000: 0.001 sec
100,000: 0.003 sec
10,000: 0 sec
50,000: 0.002 sec
100,000: 0.002 sec
500,000: 0.013 sec
1,000,000: 0.028 sec
5,000,000: 0.137 sec
Average: 36,426,230 ops/sec
1,000,000: 0.027 sec
5,000,000: 0.133 sec
Average: 37,661,017 ops/sec

Number:
1,000: 0 sec
5,000: 0 sec
10,000: 0.001 sec
50,000: 0.001 sec
100,000: 0.003 sec
500,000: 0.012 sec
1,000,000: 0.026 sec
5,000,000: 0.127 sec
Average: 39,211,765 ops/sec
10,000: 0 sec
50,000: 0.002 sec
100,000: 0.002 sec
500,000: 0.013 sec
1,000,000: 0.025 sec
5,000,000: 0.125 sec
Average: 39,916,168 ops/sec

String:
1,000: 0 sec
Expand All @@ -62,127 +62,127 @@ String:
50,000: 0.001 sec
100,000: 0.003 sec
500,000: 0.01 sec
1,000,000: 0.022 sec
5,000,000: 0.108 sec
Average: 46,291,667 ops/sec
1,000,000: 0.021 sec
5,000,000: 0.104 sec
Average: 47,956,835 ops/sec

undefined:
1,000: 0 sec
5,000: 0 sec
10,000: 0.001 sec
50,000: 0.001 sec
10,000: 0 sec
50,000: 0.002 sec
100,000: 0.004 sec
500,000: 0.018 sec
1,000,000: 0.035 sec
5,000,000: 0.174 sec
Average: 28,609,442 ops/sec
1,000,000: 0.037 sec
5,000,000: 0.185 sec
Average: 27,097,561 ops/sec

Function:
1,000: 0.001 sec
5,000: 0.001 sec
10,000: 0.003 sec
50,000: 0.007 sec
10,000: 0.002 sec
50,000: 0.008 sec
100,000: 0.016 sec
500,000: 0.079 sec
1,000,000: 0.157 sec
5,000,000: 0.785 sec
Average: 6,354,623 ops/sec
500,000: 0.077 sec
1,000,000: 0.155 sec
5,000,000: 0.774 sec
Average: 6,446,809 ops/sec

RegExp:
1,000: 0 sec
5,000: 0.003 sec
10,000: 0.004 sec
1,000: 0.001 sec
5,000: 0.002 sec
10,000: 0.007 sec
50,000: 0.016 sec
100,000: 0.03 sec
500,000: 0.152 sec
1,000,000: 0.304 sec
5,000,000: 1.519 sec
Average: 3,286,982 ops/sec
100,000: 0.032 sec
500,000: 0.162 sec
1,000,000: 0.323 sec
5,000,000: 1.617 sec
Average: 3,086,111 ops/sec

Array:
1,000: 0.002 sec
5,000: 0.008 sec
10,000: 0.007 sec
50,000: 0.035 sec
100,000: 0.07 sec
500,000: 0.349 sec
1,000,000: 0.69 sec
5,000,000: 3.416 sec
Average: 1,456,412 ops/sec
5,000: 0.005 sec
10,000: 0.011 sec
50,000: 0.036 sec
100,000: 0.072 sec
500,000: 0.354 sec
1,000,000: 0.7 sec
5,000,000: 3.482 sec
Average: 1,429,858 ops/sec

Date:
1,000: 0 sec
5,000: 0.002 sec
10,000: 0.002 sec
50,000: 0.011 sec
100,000: 0.015 sec
500,000: 0.074 sec
1,000,000: 0.149 sec
5,000,000: 0.748 sec
Average: 6,659,341 ops/sec
10,000: 0.003 sec
50,000: 0.008 sec
100,000: 0.016 sec
500,000: 0.081 sec
1,000,000: 0.161 sec
5,000,000: 0.803 sec
Average: 6,206,704 ops/sec

Error:
1,000: 0.001 sec
5,000: 0.006 sec
10,000: 0.013 sec
50,000: 0.046 sec
100,000: 0.093 sec
500,000: 0.459 sec
1,000,000: 0.92 sec
5,000,000: 4.609 sec
Average: 1,084,431 ops/sec
5,000: 0.007 sec
10,000: 0.014 sec
50,000: 0.048 sec
100,000: 0.096 sec
500,000: 0.481 sec
1,000,000: 0.963 sec
5,000,000: 4.818 sec
Average: 1,037,026 ops/sec

Event:
1,000: 0.002 sec
5,000: 0.008 sec
5,000: 0.006 sec
10,000: 0.009 sec
50,000: 0.032 sec
100,000: 0.063 sec
500,000: 0.312 sec
1,000,000: 0.626 sec
5,000,000: 3.13 sec
Average: 1,593,974 ops/sec
50,000: 0.03 sec
100,000: 0.061 sec
500,000: 0.303 sec
1,000,000: 0.606 sec
5,000,000: 3.037 sec
Average: 1,644,302 ops/sec

Map:
1,000: 0.001 sec
1,000: 0.002 sec
5,000: 0.006 sec
10,000: 0.007 sec
50,000: 0.032 sec
100,000: 0.062 sec
500,000: 0.313 sec
1,000,000: 0.629 sec
5,000,000: 3.144 sec
Average: 1,589,413 ops/sec
50,000: 0.033 sec
100,000: 0.065 sec
500,000: 0.321 sec
1,000,000: 0.648 sec
5,000,000: 3.211 sec
Average: 1,552,760 ops/sec

Object:
1,000: 0.002 sec
5,000: 0.008 sec
1,000: 0.003 sec
5,000: 0.007 sec
10,000: 0.012 sec
50,000: 0.057 sec
100,000: 0.113 sec
500,000: 0.562 sec
1,000,000: 1.121 sec
5,000,000: 5.602 sec
Average: 891,534 ops/sec
50,000: 0.055 sec
100,000: 0.11 sec
500,000: 0.552 sec
1,000,000: 1.098 sec
5,000,000: 5.476 sec
Average: 911,527 ops/sec

Object (circular):
1,000: 0.002 sec
5,000: 0.006 sec
1,000: 0.001 sec
5,000: 0.008 sec
10,000: 0.011 sec
50,000: 0.052 sec
100,000: 0.102 sec
500,000: 0.507 sec
1,000,000: 1.01 sec
5,000,000: 5.049 sec
Average: 989,168 ops/sec
50,000: 0.053 sec
100,000: 0.101 sec
500,000: 0.504 sec
1,000,000: 1.011 sec
5,000,000: 5.052 sec
Average: 988,874 ops/sec

Set:
1,000: 0.001 sec
5,000: 0.005 sec
10,000: 0.006 sec
10,000: 0.007 sec
50,000: 0.029 sec
100,000: 0.06 sec
500,000: 0.286 sec
1,000,000: 0.572 sec
5,000,000: 2.857 sec
Average: 1,746,855 ops/sec
100,000: 0.059 sec
500,000: 0.284 sec
1,000,000: 0.566 sec
5,000,000: 2.841 sec
Average: 1,757,911 ops/sec
10 changes: 8 additions & 2 deletions src/cache.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { SEPARATOR } from './constants';
import { namespaceComplexValue } from './utils';

import type { Class } from './constants';

export const NON_ENUMERABLE_CLASS_CACHE = new WeakMap<
NonEnumerableObject,
Expand All @@ -14,15 +17,18 @@ type NonEnumerableObject =
let refId = 0;
export function getUnsupportedHash(
value: NonEnumerableObject,
prefix: string,
classType: Class,
): string {
const cached = NON_ENUMERABLE_CLASS_CACHE.get(value);

if (cached) {
return cached;
}

const toCache = prefix + 'NOT_ENUMERABLE' + SEPARATOR + refId++;
const toCache = namespaceComplexValue(
classType,
'NOT_ENUMERABLE' + SEPARATOR + refId++,
);

NON_ENUMERABLE_CLASS_CACHE.set(value, toCache);

Expand Down
Loading

0 comments on commit 4afed9d

Please sign in to comment.