1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 18:18:53 +08:00
Files
sqliteviz/lib/sql-js/benchmark/README.md
saaj e4b117ffb9 Sqljs upgrade and benchmark improvements (#103)
* Update to sql.js 1.7.0

* Update to emsdk 3.0.1, replace/remove deprecated/irrelevant settings

- Renamed .bc extension to .o
- Remove deprecated INLINING_LIMIT setting
- Remove SINGLE_FILE

* Update SQLite to 3.39.3

* Collect and plot CPU and RSS charts from the benchmark containers

* Move procpath commands to a playbook, plot only top 2 RSS & CPU usage

* Optimise for size, put -flto for both compile and link
2023-03-04 17:00:46 +01:00

1.1 KiB

SQLite WebAssembly build micro-benchmark

This directory contains a micro-benchmark for evaluating SQLite WebAssembly builds performance on read and write SQL queries, run from make.sh script. If the script has permission to nice processes and Procpath is installed, e.g. it is run with sudo -E env PATH=$PATH ./make.sh, it'll renice all processes running inside the benchmark containers. It can also serve as a smoke test (e.g. for memory leaks).

The benchmark operates on a set of SQLite WebAssembly builds expected in lib/build-$NAME directories each containing sql-wasm.js and sql-wasm.wasm. Then it creates a Docker image for each, and runs the benchmark in Firefox and Chromium using Karma in the container.

After successful run, the benchmark produces the following per each build:

  • build-$NAME-result.json
  • build-$NAME.sqlite (if Procpath is installed)
  • build-$NAME.svg (if Procpath is installed)

These files can be analysed using result-analysis.ipynb Jupyter notebook. The SVG is a chart with CPU and RSS usage of each test container (i.e. Chromium run, then Firefox run per container).