Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add naive benchmark suite

+209
+17
perf/package.json
··· 1 + { 2 + "name": "@wonka/perf", 3 + "private": true, 4 + "version": "1.0.0", 5 + "main": "suite.js", 6 + "license": "MIT", 7 + "scripts": { 8 + "start": "benchr suite.js" 9 + }, 10 + "devDependencies": { 11 + "benchr": "^4.3.0" 12 + }, 13 + "dependencies": { 14 + "most": "^1.7.3", 15 + "rxjs": "^6.3.3" 16 + } 17 + }
+34
perf/suite.js
··· 1 + const Wonka = require('..'); 2 + const Rx = require('rxjs'); 3 + const RxOperators = require('rxjs/operators'); 4 + const most = require('most'); 5 + 6 + const input = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 7 + 8 + suite('Promisified map, filter, scan, last', () => { 9 + benchmark('Wonka', () => { 10 + return Wonka.pipe( 11 + Wonka.fromArray(input), 12 + Wonka.map(x => x * 2), 13 + Wonka.filter(x => x > 4), 14 + Wonka.scan((acc, x) => acc + x, 0), 15 + Wonka.toPromise 16 + ); 17 + }); 18 + 19 + benchmark('RxJS', () => { 20 + return Rx.from(input).pipe( 21 + RxOperators.map(x => x * 2), 22 + RxOperators.filter(x => x > 4), 23 + RxOperators.scan((acc, x) => acc + x, 0) 24 + ).toPromise(); 25 + }); 26 + 27 + benchmark('most', () => { 28 + return most.from(input) 29 + .map(x => x * 2) 30 + .filter(x => x > 4) 31 + .scan((acc, x) => acc + x, 0) 32 + .thru(s => s.reduce((_, x) => x)) 33 + }); 34 + });
+158
perf/yarn.lock
··· 1 + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 + # yarn lockfile v1 3 + 4 + 5 + "@most/multicast@^1.2.5": 6 + version "1.3.0" 7 + resolved "https://registry.yarnpkg.com/@most/multicast/-/multicast-1.3.0.tgz#e01574840df634478ac3fabd164c6e830fb3b966" 8 + integrity sha512-DWH8AShgp5bXn+auGzf5tzPxvpmEvQJd0CNsApOci1LDF4eAEcnw4HQOr2Jaa+L92NbDYFKBSXxll+i7r1ikvw== 9 + dependencies: 10 + "@most/prelude" "^1.4.0" 11 + 12 + "@most/prelude@^1.4.0": 13 + version "1.7.2" 14 + resolved "https://registry.yarnpkg.com/@most/prelude/-/prelude-1.7.2.tgz#be4ed406518d4c8c220e45c39fa7251365425b73" 15 + integrity sha512-GM5ec7+xpkuXiCMyzhyENgH/xZ8t0nAMDBY0QOsVVD6TrZYjJKUnW1eaI18HHX8W+COWMwWR9c0zoPiBp9+tUg== 16 + 17 + ansi-regex@^3.0.0: 18 + version "3.0.0" 19 + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 20 + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 21 + 22 + ansi-styles@^3.2.1: 23 + version "3.2.1" 24 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 25 + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 26 + dependencies: 27 + color-convert "^1.9.0" 28 + 29 + benchmark@^2.1.4: 30 + version "2.1.4" 31 + resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" 32 + integrity sha1-CfPeMckWQl1JjMLuVloOvzwqVik= 33 + dependencies: 34 + lodash "^4.17.4" 35 + platform "^1.3.3" 36 + 37 + benchr@^4.3.0: 38 + version "4.3.0" 39 + resolved "https://registry.yarnpkg.com/benchr/-/benchr-4.3.0.tgz#48d7e0f7150340fff3db0222203b84c6cb7719ad" 40 + integrity sha512-ZOJkEOLOI4vyf34fnUSmh+xvg8P86cmVfyORBgIJHLfXMuvrfkMsUEThMaJND406KGCigtBO6sMjExGbp+WeLw== 41 + dependencies: 42 + benchmark "^2.1.4" 43 + chalk "^2.3.0" 44 + docopt "^0.6.2" 45 + easy-table "^1.1.1" 46 + require-all "^2.2.0" 47 + 48 + chalk@^2.3.0: 49 + version "2.4.2" 50 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 51 + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 52 + dependencies: 53 + ansi-styles "^3.2.1" 54 + escape-string-regexp "^1.0.5" 55 + supports-color "^5.3.0" 56 + 57 + clone@^1.0.2: 58 + version "1.0.4" 59 + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 60 + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 61 + 62 + color-convert@^1.9.0: 63 + version "1.9.3" 64 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 65 + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 66 + dependencies: 67 + color-name "1.1.3" 68 + 69 + color-name@1.1.3: 70 + version "1.1.3" 71 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 72 + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 73 + 74 + defaults@^1.0.3: 75 + version "1.0.3" 76 + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 77 + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 78 + dependencies: 79 + clone "^1.0.2" 80 + 81 + docopt@^0.6.2: 82 + version "0.6.2" 83 + resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11" 84 + integrity sha1-so6eIiDaXsSffqW7JKR3h0Be6xE= 85 + 86 + easy-table@^1.1.1: 87 + version "1.1.1" 88 + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.1.1.tgz#c1b9b9ad68a017091a1c235e4bcba277540e143f" 89 + integrity sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ== 90 + dependencies: 91 + ansi-regex "^3.0.0" 92 + optionalDependencies: 93 + wcwidth ">=1.0.1" 94 + 95 + escape-string-regexp@^1.0.5: 96 + version "1.0.5" 97 + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 98 + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 99 + 100 + has-flag@^3.0.0: 101 + version "3.0.0" 102 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 103 + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 104 + 105 + lodash@^4.17.4: 106 + version "4.17.11" 107 + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 108 + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== 109 + 110 + most@^1.7.3: 111 + version "1.7.3" 112 + resolved "https://registry.yarnpkg.com/most/-/most-1.7.3.tgz#406c31a66d73aa16957816fdf96965e27df84f1a" 113 + integrity sha512-mk68SM/ptK8WSo3l03raXcWy02Hl7jbzxVozMuvyYxohn4yteh2THhl3+XABF5cunWE8eXHAsLbv+RCJI5y+jg== 114 + dependencies: 115 + "@most/multicast" "^1.2.5" 116 + "@most/prelude" "^1.4.0" 117 + symbol-observable "^1.0.2" 118 + 119 + platform@^1.3.3: 120 + version "1.3.5" 121 + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" 122 + integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== 123 + 124 + require-all@^2.2.0: 125 + version "2.2.0" 126 + resolved "https://registry.yarnpkg.com/require-all/-/require-all-2.2.0.tgz#b4420c233ac0282d0ff49b277fb880a8b5de0894" 127 + integrity sha1-tEIMIzrAKC0P9Jsnf7iAqLXeCJQ= 128 + 129 + rxjs@^6.3.3: 130 + version "6.3.3" 131 + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" 132 + integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== 133 + dependencies: 134 + tslib "^1.9.0" 135 + 136 + supports-color@^5.3.0: 137 + version "5.5.0" 138 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 139 + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 140 + dependencies: 141 + has-flag "^3.0.0" 142 + 143 + symbol-observable@^1.0.2: 144 + version "1.2.0" 145 + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 146 + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== 147 + 148 + tslib@^1.9.0: 149 + version "1.9.3" 150 + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 151 + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 152 + 153 + wcwidth@>=1.0.1: 154 + version "1.0.1" 155 + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 156 + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 157 + dependencies: 158 + defaults "^1.0.3"