Skip to content
This repository has been archived by the owner on Jul 10, 2021. It is now read-only.

benchmark - challenge #6

Closed
dominikg opened this issue Jul 2, 2020 · 4 comments
Closed

benchmark - challenge #6

dominikg opened this issue Jul 2, 2020 · 4 comments

Comments

@dominikg
Copy link
Owner

dominikg commented Jul 2, 2020

Welcome to the svite benchmark challenge

Lets see who's got the fastest hot module updates in github town in 3 easy steps

1. install

mac/linux/wsl
npx degit dominikg/svite/examples/hmr-benchmark svite-bench && cd svite-bench && npm i 
windows
npx degit dominikg/svite/examples/hmr-benchmark svite-bench ; cd svite-bench ; npm i 

2. inside svite-bench directory execute

node benchmark --headless --gif # --gif only works with ImageMagick 'convert' in path.

3. add comment with output and svite-bench/dist/benchmark.gif below

FAQ
Whats on the line?

Bragging rights.

What does it do?
  • start vite dev-server
  • open chromium with dev page
  • trigger hot module reloads (44)
    • write App.svelte, add 1 visible change (new text character or style color)
    • after each change, wait for the browser console to log the updated message
    • measure the time it took from writing the file to the rendered update
  • close chromium
  • stop dev-server
  • create stats
  • optionally create gif

Go read the code

help
    benchmark supports the following arguments:
      --headless    - render headless
      --gif         - create a gif in ./dist (requires ImageMagick 'convert' in path)
      --resultfile  - write stats to a timestamped file
      --throttle X  - wait X milliseconds between writes to the same file
      --help,-h     - print this message
gif output does not work

Sorry, ImageMagick convert binary has to be available in path

whats that throttle thing about?

The benchmark writes to the same file in very short intervals. sometimes so short, that the update watcher misses a write and then the process gets stuck as benchmark waits for an update to complete before writing the next step. It automatically adds a throttle to prevent this which increases 10ms every time it gets stuck. You can prevent this dance by providing a throttle argument at start

@dominikg
Copy link
Owner Author

dominikg commented Jul 2, 2020

benchmark

{
  system: {
    platform: 'linux',
    cpu: { brand: 'Core™ i7-7500U', cores: 4, physicalCores: 2 },
    mem: { total: 16530305024, available: 11239120896, free: 7456063488 },
    date: 'Thu, 02 Jul 2020 19:09:21 GMT'
  },
  versions: { benchmark: '0.1.1', svite: '0.1.0', vite: '1.0.0-beta.8' },
  stats: {
    boot: { vite: 774, pageLoad: 1289 },
    updates: {
      count: 44,
      sum: 3079,
      avg: 69.98,
      min: 50,
      max: 102,
      durations: '102,79,67,70,83,83,80,71,80,70,99,81,70,79,71,83,63,50,71,83,67,62,50,67,70,79,54,83,67,63,70,62,55,62,71,67,62,54,64,64,71,63,54,63'
    }
  },
  settings: { headless: true, throttle: 0, gif: true }
}

@jakobrosenberg
Copy link

{
  system: {
    platform: 'win32',
    cpu: {
      brand: 'Ryzen 7 1700 Eight-Core Processor',
      cores: 16,
      physicalCores: 8
    },
    mem: { total: 17111248896, available: 4399017984, free: 4399017984 },
    date: 'Thu, 02 Jul 2020 20:25:05 GMT'
  },
  versions: { benchmark: '0.1.1', svite: '0.1.0', vite: '1.0.0-beta.10' },
  stats: {
    boot: { vite: 566, pageLoad: 1325 },
    updates: {
      count: 44,
      sum: 10273,
      avg: 233.48,
      min: 232,
      max: 241,
      durations: '241,234,233,234,232,232,233,235,232,234,233,233,235,232,234,233,234,233,232,235,233,233,233,234,233,232,234,233,235,232,232,235,233,233,234,234,232,236,233,232,232,234,233,234'
    }
  },
  settings: { headless: true, throttle: 0, gif: false }
}

@dominikg
Copy link
Owner Author

dominikg commented Jul 6, 2020

You can still post scores but i'm closing this as it is not really an 'issue'

@dominikg dominikg closed this as completed Jul 6, 2020
@evan70
Copy link

evan70 commented Aug 19, 2020

{
system: {
platform: 'linux',
cpu: { brand: 'Core™ i5-3320M', cores: 4, physicalCores: 2 },
mem: { total: 6104436736, available: 2888302592, free: 541343744 },
date: 'Wed, 19 Aug 2020 15:02:31 GMT'
},
versions: { benchmark: '0.2.0', svite: '0.5.0', vite: '1.0.0-rc.4' },
stats: {
boot: { vite: 1203, pageLoad: 5878 },
updates: {
count: 44,
sum: 3345,
avg: 76.02,
min: 65,
max: 163,
durations: '163,132,67,83,84,67,83,66,85,82,66,68,100,66,67,84,66,67,67,66,66,67,83,83,67,83,66,68,83,66,67,84,66,67,66,66,68,65,83,84,66,67,66,69'
}
},
settings: { headless: true, throttle: 0, gif: true, typescript: false }
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants