donmccurdy / glTF-Transform

glTF 2.0 SDK for JavaScript and TypeScript, on Web and Node.js.
https://gltf-transform.dev
MIT License
1.38k stars 149 forks source link

fix(functions): Fix models broken by instance() #1269

Closed donmccurdy closed 7 months ago

donmccurdy commented 7 months ago

Changes:

Benchmark - before

┌─────────┬───────────────┬─────────┬────────────────────┬──────────┬─────────┐
│ (index) │   Task Name   │ ops/sec │ Average Time (ns)  │  Margin  │ Samples │
├─────────┼───────────────┼─────────┼────────────────────┼──────────┼─────────┤
│    0    │  'clone::sm'  │  '78'   │ 12677701.50567912  │ '±2.87%' │   79    │
│    1    │  'clone::md'  │  '18'   │ 53056004.270126946 │ '±3.53%' │   19    │
│    2    │ 'create::sm'  │  '136'  │ 7318512.770381287  │ '±3.62%' │   137   │
│    3    │ 'create::md'  │  '32'   │ 30542272.728500944 │ '±3.83%' │   33    │
│    4    │ 'dispose::md' │ '2,106' │ 474742.61903649825 │ '±3.22%' │  2110   │
│    5    │  'join::sm'   │  '33'   │ 30217317.439177457 │ '±4.72%' │   34    │
│    6    │  'join::md'   │   '1'   │ 673517695.8978176  │ '±2.95%' │   10    │
│    7    │  'weld::sm'   │ '1,039' │ 962347.0165981696  │ '±1.68%' │  1040   │
│    8    │  'weld::md'   │  '14'   │ 68677394.60865657  │ '±5.81%' │   15    │
└─────────┴───────────────┴─────────┴────────────────────┴──────────┴─────────┘

Benchmark - after

┌─────────┬───────────────┬─────────┬────────────────────┬──────────┬─────────┐
│ (index) │   Task Name   │ ops/sec │ Average Time (ns)  │  Margin  │ Samples │
├─────────┼───────────────┼─────────┼────────────────────┼──────────┼─────────┤
│    0    │  'clone::sm'  │  '80'   │ 12358921.778790744 │ '±2.58%' │   81    │
│    1    │  'clone::md'  │  '19'   │ 52141376.95133686  │ '±2.04%' │   20    │
│    2    │ 'create::sm'  │  '140'  │ 7125451.551684251  │ '±3.33%' │   141   │
│    3    │ 'create::md'  │  '33'   │ 29450553.65562439  │ '±3.63%' │   35    │
│    4    │ 'dispose::md' │ '2,150' │ 465001.9054521466  │ '±3.04%' │  2151   │
│    5    │  'join::sm'   │  '33'   │ 29864753.61270063  │ '±4.87%' │   34    │
│    6    │  'join::md'   │   '1'   │ 672021404.6120644  │ '±2.77%' │   10    │
│    7    │  'weld::sm'   │ '1,040' │ 961322.8369285921  │ '±1.75%' │  1041   │
│    8    │  'weld::md'   │  '14'   │ 68112480.53312302  │ '±3.49%' │   15    │
└─────────┴───────────────┴─────────┴────────────────────┴──────────┴─────────┘
donmccurdy commented 7 months ago

Current dependencies on/for this PR:

This stack of pull requests is managed by Graphite.