Skip to content

Commit

Permalink
feat: coffee
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacek Pietal committed May 23, 2024
1 parent 4ec6451 commit 2fb085d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 36 deletions.
40 changes: 7 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,36 +186,10 @@ $ cd detect-collisions
$ npm i && npm run build # will build & run tests & run benchmarks
```

```
> detect-collisions@9.5.5 benchmark-insertion
> node -e 'require(`./dist/benchmarks`).insertionBenchmark()'
┌─────────┬─────────────────────────────┬──────────────────┬────────────────────────┬───────────┬─────────┬──────────┐
│ (index) │ Task Name │ Average Time (s) │ Standard Deviation (s) │ hz │ p99 (s) │ p995 (s) │
├─────────┼─────────────────────────────┼──────────────────┼────────────────────────┼───────────┼─────────┼──────────┤
│ 0 │ 'non overlapping circles' │ 0.017 │ 0.024 │ 59546.672 │ 0.036 │ 0.179 │
│ 1 │ 'overlapping circles' │ 0.017 │ 0.019 │ 57398.492 │ 0.031 │ 0.194 │
│ 2 │ 'non-overlapping triangles' │ 0.057 │ 0.033 │ 17646.738 │ 0.263 │ 0.271 │
│ 3 │ 'overlapping triangles' │ 0.06 │ 0.031 │ 16580.923 │ 0.266 │ 0.275 │
│ 4 │ 'non-overlapping quad' │ 0.063 │ 0.032 │ 15993.04 │ 0.268 │ 0.287 │
│ 5 │ 'overlapping quad' │ 0.062 │ 0.031 │ 16138.151 │ 0.267 │ 0.277 │
└─────────┴─────────────────────────────┴──────────────────┴────────────────────────┴───────────┴─────────┴──────────┘
> detect-collisions@9.5.5 benchmark-stress
> node -r pixi-shim -e 'require(`./dist/benchmarks`).stressBenchmark()'
┌─────────┬────────────────────────────┬─────────┬────────────────────┬───────────┬─────────┐
│ (index) │ Task Name │ ops/sec │ Average Time (ns) │ Margin │ Samples │
├─────────┼────────────────────────────┼─────────┼────────────────────┼───────────┼─────────┤
│ 0 │ 'stress test, items=1000' │ '328' │ 3040152.9968011347 │ '±1.53%' │ 329 │
│ 1 │ 'stress test, items=2000' │ '142' │ 7036809.1396310115 │ '±1.24%' │ 143 │
│ 2 │ 'stress test, items=3000' │ '89' │ 11138342.555860678 │ '±1.40%' │ 90 │
│ 3 │ 'stress test, items=4000' │ '51' │ 19251488.80753953 │ '±1.92%' │ 52 │
│ 4 │ 'stress test, items=5000' │ '42' │ 23662193.696686003 │ '±2.82%' │ 43 │
│ 5 │ 'stress test, items=6000' │ '29' │ 34045372.166484594 │ '±3.89%' │ 30 │
│ 6 │ 'stress test, items=7000' │ '22' │ 43783659.75090613 │ '±4.48%' │ 24 │
│ 7 │ 'stress test, items=8000' │ '14' │ 69103674.99937613 │ '±1.96%' │ 15 │
│ 8 │ 'stress test, items=9000' │ '11' │ 89361312.33225267 │ '±43.04%' │ 12 │
│ 9 │ 'stress test, items=10000' │ '12' │ 78276474.53947708 │ '±2.32%' │ 13 │
└─────────┴────────────────────────────┴─────────┴────────────────────┴───────────┴─────────┘
```
## License

MIT

## You can buy me a coffee

https://paypal.me/jacekpietal
22 changes: 20 additions & 2 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,18 @@ <h2><a href="#md:benchmark">Benchmark</a></h2>
</p>
<pre><code class="language-bash"><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">git</span><span class="hl-1"> </span><span class="hl-2">clone</span><span class="hl-1"> </span><span class="hl-2">https://github.com/Prozi/detect-collisions.git</span><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">cd</span><span class="hl-1"> </span><span class="hl-2">detect-collisions</span><br/><span class="hl-0">$</span><span class="hl-1"> </span><span class="hl-2">npm</span><span class="hl-1"> </span><span class="hl-2">i</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><span class="hl-1"> </span><span class="hl-5"># will build &amp; run tests &amp; run benchmarks</span>
</code><button>Copy</button></pre>
<pre><code><span class="hl-1">&gt; </span><span class="hl-6">detect</span><span class="hl-1">-</span><span class="hl-6">collisions</span><span class="hl-1">@</span><span class="hl-8">9.5</span><span class="hl-1">.</span><span class="hl-8">5</span><span class="hl-1"> </span><span class="hl-6">benchmark</span><span class="hl-1">-</span><span class="hl-6">insertion</span><br/><span class="hl-1">&gt; </span><span class="hl-6">node</span><span class="hl-1"> -</span><span class="hl-6">e</span><span class="hl-1"> </span><span class="hl-2">&#39;require(`./dist/benchmarks`).insertionBenchmark()&#39;</span><br/><br/><span class="hl-1">┌─────────┬─────────────────────────────┬──────────────────┬────────────────────────┬───────────┬─────────┬──────────┐</span><br/><span class="hl-1">│ (</span><span class="hl-6">index</span><span class="hl-1">) │ </span><span class="hl-6">Task</span><span class="hl-1"> </span><span class="hl-6">Name</span><span class="hl-1"></span><span class="hl-6">Average</span><span class="hl-1"> </span><span class="hl-0">Time</span><span class="hl-1"> (</span><span class="hl-6">s</span><span class="hl-1">) │ </span><span class="hl-6">Standard</span><span class="hl-1"> </span><span class="hl-0">Deviation</span><span class="hl-1"> (</span><span class="hl-6">s</span><span class="hl-1">) │ </span><span class="hl-6">hz</span><span class="hl-1"></span><span class="hl-0">p99</span><span class="hl-1"> (</span><span class="hl-6">s</span><span class="hl-1">) │ </span><span class="hl-0">p995</span><span class="hl-1"> (</span><span class="hl-6">s</span><span class="hl-1">) │</span><br/><span class="hl-1">├─────────┼─────────────────────────────┼──────────────────┼────────────────────────┼───────────┼─────────┼──────────┤</span><br/><span class="hl-1"></span><span class="hl-8">0</span><span class="hl-1"></span><span class="hl-2">&#39;non overlapping circles&#39;</span><span class="hl-1"></span><span class="hl-8">0.017</span><span class="hl-1"></span><span class="hl-8">0.024</span><span class="hl-1"></span><span class="hl-8">59546.672</span><span class="hl-1"></span><span class="hl-8">0.036</span><span class="hl-1"></span><span class="hl-8">0.179</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">1</span><span class="hl-1"></span><span class="hl-2">&#39;overlapping circles&#39;</span><span class="hl-1"></span><span class="hl-8">0.017</span><span class="hl-1"></span><span class="hl-8">0.019</span><span class="hl-1"></span><span class="hl-8">57398.492</span><span class="hl-1"></span><span class="hl-8">0.031</span><span class="hl-1"></span><span class="hl-8">0.194</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">2</span><span class="hl-1"></span><span class="hl-2">&#39;non-overlapping triangles&#39;</span><span class="hl-1"></span><span class="hl-8">0.057</span><span class="hl-1"></span><span class="hl-8">0.033</span><span class="hl-1"></span><span class="hl-8">17646.738</span><span class="hl-1"></span><span class="hl-8">0.263</span><span class="hl-1"></span><span class="hl-8">0.271</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">3</span><span class="hl-1"></span><span class="hl-2">&#39;overlapping triangles&#39;</span><span class="hl-1"></span><span class="hl-8">0.06</span><span class="hl-1"></span><span class="hl-8">0.031</span><span class="hl-1"></span><span class="hl-8">16580.923</span><span class="hl-1"></span><span class="hl-8">0.266</span><span class="hl-1"></span><span class="hl-8">0.275</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">4</span><span class="hl-1"></span><span class="hl-2">&#39;non-overlapping quad&#39;</span><span class="hl-1"></span><span class="hl-8">0.063</span><span class="hl-1"></span><span class="hl-8">0.032</span><span class="hl-1"></span><span class="hl-8">15993.04</span><span class="hl-1"></span><span class="hl-8">0.268</span><span class="hl-1"></span><span class="hl-8">0.287</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">5</span><span class="hl-1"></span><span class="hl-2">&#39;overlapping quad&#39;</span><span class="hl-1"></span><span class="hl-8">0.062</span><span class="hl-1"></span><span class="hl-8">0.031</span><span class="hl-1"></span><span class="hl-8">16138.151</span><span class="hl-1"></span><span class="hl-8">0.267</span><span class="hl-1"></span><span class="hl-8">0.277</span><span class="hl-1"></span><br/><span class="hl-1">└─────────┴─────────────────────────────┴──────────────────┴────────────────────────┴───────────┴─────────┴──────────┘</span><br/><br/><span class="hl-1">&gt; </span><span class="hl-6">detect</span><span class="hl-1">-</span><span class="hl-6">collisions</span><span class="hl-1">@</span><span class="hl-8">9.5</span><span class="hl-1">.</span><span class="hl-8">5</span><span class="hl-1"> </span><span class="hl-6">benchmark</span><span class="hl-1">-</span><span class="hl-6">stress</span><br/><span class="hl-1">&gt; </span><span class="hl-6">node</span><span class="hl-1"> -</span><span class="hl-6">r</span><span class="hl-1"> </span><span class="hl-6">pixi</span><span class="hl-1">-</span><span class="hl-6">shim</span><span class="hl-1"> -</span><span class="hl-6">e</span><span class="hl-1"> </span><span class="hl-2">&#39;require(`./dist/benchmarks`).stressBenchmark()&#39;</span><br/><br/><span class="hl-1">┌─────────┬────────────────────────────┬─────────┬────────────────────┬───────────┬─────────┐</span><br/><span class="hl-1">│ (</span><span class="hl-6">index</span><span class="hl-1">) │ </span><span class="hl-6">Task</span><span class="hl-1"> </span><span class="hl-6">Name</span><span class="hl-1"></span><span class="hl-6">ops</span><span class="hl-1">/</span><span class="hl-6">sec</span><span class="hl-1"></span><span class="hl-6">Average</span><span class="hl-1"> </span><span class="hl-0">Time</span><span class="hl-1"> (</span><span class="hl-6">ns</span><span class="hl-1">) │ </span><span class="hl-6">Margin</span><span class="hl-1"></span><span class="hl-6">Samples</span><span class="hl-1"></span><br/><span class="hl-1">├─────────┼────────────────────────────┼─────────┼────────────────────┼───────────┼─────────┤</span><br/><span class="hl-1"></span><span class="hl-8">0</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=1000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;328&#39;</span><span class="hl-1"></span><span class="hl-8">3040152.9968011347</span><span class="hl-1"></span><span class="hl-2">&#39;±1.53%&#39;</span><span class="hl-1"></span><span class="hl-8">329</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">1</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=2000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;142&#39;</span><span class="hl-1"></span><span class="hl-8">7036809.1396310115</span><span class="hl-1"></span><span class="hl-2">&#39;±1.24%&#39;</span><span class="hl-1"></span><span class="hl-8">143</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">2</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=3000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;89&#39;</span><span class="hl-1"></span><span class="hl-8">11138342.555860678</span><span class="hl-1"></span><span class="hl-2">&#39;±1.40%&#39;</span><span class="hl-1"></span><span class="hl-8">90</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">3</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=4000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;51&#39;</span><span class="hl-1"></span><span class="hl-8">19251488.80753953</span><span class="hl-1"></span><span class="hl-2">&#39;±1.92%&#39;</span><span class="hl-1"></span><span class="hl-8">52</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">4</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=5000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;42&#39;</span><span class="hl-1"></span><span class="hl-8">23662193.696686003</span><span class="hl-1"></span><span class="hl-2">&#39;±2.82%&#39;</span><span class="hl-1"></span><span class="hl-8">43</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">5</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=6000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;29&#39;</span><span class="hl-1"></span><span class="hl-8">34045372.166484594</span><span class="hl-1"></span><span class="hl-2">&#39;±3.89%&#39;</span><span class="hl-1"></span><span class="hl-8">30</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">6</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=7000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;22&#39;</span><span class="hl-1"></span><span class="hl-8">43783659.75090613</span><span class="hl-1"></span><span class="hl-2">&#39;±4.48%&#39;</span><span class="hl-1"></span><span class="hl-8">24</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">7</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=8000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;14&#39;</span><span class="hl-1"></span><span class="hl-8">69103674.99937613</span><span class="hl-1"></span><span class="hl-2">&#39;±1.96%&#39;</span><span class="hl-1"></span><span class="hl-8">15</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">8</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=9000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;11&#39;</span><span class="hl-1"></span><span class="hl-8">89361312.33225267</span><span class="hl-1"></span><span class="hl-2">&#39;±43.04%&#39;</span><span class="hl-1"></span><span class="hl-8">12</span><span class="hl-1"></span><br/><span class="hl-1"></span><span class="hl-8">9</span><span class="hl-1"></span><span class="hl-2">&#39;stress test, items=10000&#39;</span><span class="hl-1"></span><span class="hl-2">&#39;12&#39;</span><span class="hl-1"></span><span class="hl-8">78276474.53947708</span><span class="hl-1"></span><span class="hl-2">&#39;±2.32%&#39;</span><span class="hl-1"></span><span class="hl-8">13</span><span class="hl-1"></span><br/><span class="hl-1">└─────────┴────────────────────────────┴─────────┴────────────────────┴───────────┴─────────┘</span>
</code><button>Copy</button></pre>
<a id="md:license" class="tsd-anchor"></a>
<h2><a href="#md:license">License</a></h2>
<p>MIT</p>
<a id="md:you-can-buy-me-a-coffee" class="tsd-anchor"></a>
<h2>
<a href="#md:you-can-buy-me-a-coffee">You can buy me a coffee</a>
</h2>
<p>
<a href="https://paypal.me/jacekpietal"
>https://paypal.me/jacekpietal</a
>
</p>
</div>
</div>
<div class="col-sidebar">
Expand Down Expand Up @@ -591,6 +601,14 @@ <h3>
<li>
<a href="#md:benchmark"><span>Benchmark</span></a>
</li>
<li>
<a href="#md:license"><span>License</span></a>
</li>
<li>
<a href="#md:you-can-buy-me-a-coffee"
><span>You can buy me a coffee</span></a
>
</li>
</ul>
</div>
</details>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "detect-collisions",
"version": "9.5.6",
"version": "9.5.7",
"description": "detecting collisions between bodies: Points, Lines, Boxes, Polygons (Concave too), Ellipses and Circles. Also RayCasting. All bodies can have offset, rotation, scale, bounding box padding, can be static (non moving) or be trigger bodies (non colliding).",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down

0 comments on commit 2fb085d

Please sign in to comment.