Skip to content

Commit

Permalink
CLI - Add helptext for --build-options (#1853)
Browse files Browse the repository at this point in the history
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
  • Loading branch information
bfops and bfops authored Oct 16, 2024
1 parent 06cc688 commit 576b12e
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion crates/cli/src/subcommands/generate/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ pub fn cli() -> clap::Command {
.alias("build-opts")
.action(Set)
.default_value("")
.help("Options to pass to the build command"),
.help("Options to pass to the build command, for example --build-options='--skip-println-checks'"),
)
.arg(common_args::yes())
.after_help("Run `spacetime help publish` for more detailed information.")
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/src/subcommands/publish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pub fn cli() -> clap::Command {
.alias("build-opts")
.action(Set)
.default_value("")
.help("Options to pass to the build command")
.help("Options to pass to the build command, for example --build-options='--skip-println-checks'")
)
.arg(
Arg::new("project_path")
Expand Down

2 comments on commit 576b12e

@github-actions
Copy link

@github-actions github-actions bot commented on 576b12e Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Criterion benchmark results

Criterion benchmark report

YOU SHOULD PROBABLY IGNORE THESE RESULTS.

Criterion is a wall time based benchmarking system that is extremely noisy when run on CI. We collect these results for longitudinal analysis, but they are not reliable for comparing individual PRs.

Go look at the callgrind report instead.

empty

db on disk new latency old latency new throughput old throughput
sqlite 💿 414.7±3.55ns 419.1±1.23ns - -
sqlite 🧠 409.7±1.61ns 418.7±3.78ns - -
stdb_raw 💿 631.7±1.11ns 631.1±0.81ns - -
stdb_raw 🧠 632.4±0.76ns 625.8±0.56ns - -

insert_1

db on disk schema indices preload new latency old latency new throughput old throughput

insert_bulk

db on disk schema indices preload count new latency old latency new throughput old throughput
sqlite 💿 u32_u64_str btree_each_column 2048 256 583.3±0.91µs 588.6±1.41µs 1714 tx/sec 1698 tx/sec
sqlite 💿 u32_u64_str unique_0 2048 256 151.8±1.70µs 150.6±0.73µs 6.4 Ktx/sec 6.5 Ktx/sec
sqlite 💿 u32_u64_u64 btree_each_column 2048 256 466.5±0.53µs 489.4±42.73µs 2.1 Ktx/sec 2043 tx/sec
sqlite 💿 u32_u64_u64 unique_0 2048 256 134.3±0.42µs 135.7±0.59µs 7.3 Ktx/sec 7.2 Ktx/sec
sqlite 🧠 u32_u64_str btree_each_column 2048 256 448.9±1.76µs 450.7±3.18µs 2.2 Ktx/sec 2.2 Ktx/sec
sqlite 🧠 u32_u64_str unique_0 2048 256 124.0±0.47µs 123.4±0.55µs 7.9 Ktx/sec 7.9 Ktx/sec
sqlite 🧠 u32_u64_u64 btree_each_column 2048 256 368.4±0.27µs 371.0±0.70µs 2.7 Ktx/sec 2.6 Ktx/sec
sqlite 🧠 u32_u64_u64 unique_0 2048 256 105.7±0.38µs 104.1±0.67µs 9.2 Ktx/sec 9.4 Ktx/sec
stdb_raw 💿 u32_u64_str btree_each_column 2048 256 623.1±17.52µs 647.0±28.96µs 1604 tx/sec 1545 tx/sec
stdb_raw 💿 u32_u64_str unique_0 2048 256 417.6±13.20µs 501.8±31.42µs 2.3 Ktx/sec 1992 tx/sec
stdb_raw 💿 u32_u64_u64 btree_each_column 2048 256 311.0±42.26µs 344.0±9.66µs 3.1 Ktx/sec 2.8 Ktx/sec
stdb_raw 💿 u32_u64_u64 unique_0 2048 256 358.9±7.64µs 350.5±13.39µs 2.7 Ktx/sec 2.8 Ktx/sec
stdb_raw 🧠 u32_u64_str btree_each_column 2048 256 308.9±0.29µs 313.5±0.70µs 3.2 Ktx/sec 3.1 Ktx/sec
stdb_raw 🧠 u32_u64_str unique_0 2048 256 240.0±0.12µs 244.6±0.20µs 4.1 Ktx/sec 4.0 Ktx/sec
stdb_raw 🧠 u32_u64_u64 btree_each_column 2048 256 246.1±0.45µs 254.0±0.13µs 4.0 Ktx/sec 3.8 Ktx/sec
stdb_raw 🧠 u32_u64_u64 unique_0 2048 256 221.9±0.60µs 225.2±0.11µs 4.4 Ktx/sec 4.3 Ktx/sec

iterate

db on disk schema indices new latency old latency new throughput old throughput
sqlite 💿 u32_u64_str unique_0 22.8±0.16µs 22.7±0.08µs 42.9 Ktx/sec 43.0 Ktx/sec
sqlite 💿 u32_u64_u64 unique_0 20.9±0.16µs 21.5±0.15µs 46.7 Ktx/sec 45.4 Ktx/sec
sqlite 🧠 u32_u64_str unique_0 20.2±0.13µs 20.2±0.11µs 48.2 Ktx/sec 48.3 Ktx/sec
sqlite 🧠 u32_u64_u64 unique_0 18.6±0.32µs 19.0±0.05µs 52.5 Ktx/sec 51.3 Ktx/sec
stdb_raw 💿 u32_u64_str unique_0 4.7±0.00µs 4.7±0.00µs 206.0 Ktx/sec 206.3 Ktx/sec
stdb_raw 💿 u32_u64_u64 unique_0 4.6±0.00µs 4.6±0.00µs 210.8 Ktx/sec 211.2 Ktx/sec
stdb_raw 🧠 u32_u64_str unique_0 4.7±0.00µs 4.7±0.00µs 205.9 Ktx/sec 206.7 Ktx/sec
stdb_raw 🧠 u32_u64_u64 unique_0 4.6±0.00µs 4.6±0.00µs 210.9 Ktx/sec 211.1 Ktx/sec

find_unique

db on disk key type preload new latency old latency new throughput old throughput

filter

db on disk key type index strategy load count new latency old latency new throughput old throughput
sqlite 💿 string index 2048 256 68.1±0.16µs 68.5±0.19µs 14.3 Ktx/sec 14.3 Ktx/sec
sqlite 💿 u64 index 2048 256 65.2±0.34µs 65.3±0.12µs 15.0 Ktx/sec 15.0 Ktx/sec
sqlite 🧠 string index 2048 256 64.7±0.11µs 65.1±0.07µs 15.1 Ktx/sec 15.0 Ktx/sec
sqlite 🧠 u64 index 2048 256 59.7±0.12µs 60.9±0.13µs 16.4 Ktx/sec 16.0 Ktx/sec
stdb_raw 💿 string index 2048 256 4.9±0.00µs 4.9±0.00µs 198.6 Ktx/sec 198.9 Ktx/sec
stdb_raw 💿 u64 index 2048 256 4.7±0.00µs 4.8±0.00µs 208.0 Ktx/sec 203.6 Ktx/sec
stdb_raw 🧠 string index 2048 256 4.9±0.01µs 4.9±0.00µs 198.6 Ktx/sec 199.1 Ktx/sec
stdb_raw 🧠 u64 index 2048 256 4.7±0.01µs 4.8±0.00µs 207.9 Ktx/sec 203.5 Ktx/sec

serialize

schema format count new latency old latency new throughput old throughput
u32_u64_str bflatn_to_bsatn_fast_path 100 3.3±0.09µs 3.2±0.01µs 29.1 Mtx/sec 29.4 Mtx/sec
u32_u64_str bflatn_to_bsatn_slow_path 100 3.4±0.00µs 3.4±0.01µs 28.2 Mtx/sec 28.2 Mtx/sec
u32_u64_str bsatn 100 2.5±0.04µs 2.4±0.00µs 38.8 Mtx/sec 39.4 Mtx/sec
u32_u64_str bsatn 100 40.5±0.09ns 40.5±0.07ns 2.3 Gtx/sec 2.3 Gtx/sec
u32_u64_str json 100 4.8±0.03µs 4.9±0.06µs 19.7 Mtx/sec 19.7 Mtx/sec
u32_u64_str json 100 8.6±0.01µs 8.6±0.00µs 11.0 Mtx/sec 11.1 Mtx/sec
u32_u64_str product_value 100 1015.2±3.40ns 1016.3±1.71ns 93.9 Mtx/sec 93.8 Mtx/sec
u32_u64_u64 bflatn_to_bsatn_fast_path 100 1185.0±15.96ns 1176.0±9.36ns 80.5 Mtx/sec 81.1 Mtx/sec
u32_u64_u64 bflatn_to_bsatn_slow_path 100 2.8±0.00µs 2.8±0.00µs 34.2 Mtx/sec 34.2 Mtx/sec
u32_u64_u64 bsatn 100 1736.5±30.34ns 1770.9±32.32ns 54.9 Mtx/sec 53.9 Mtx/sec
u32_u64_u64 bsatn 100 39.4±0.07ns 28.8±0.10ns 2.4 Gtx/sec 3.2 Gtx/sec
u32_u64_u64 json 100 3.4±0.03µs 3.1±0.06µs 28.1 Mtx/sec 30.7 Mtx/sec
u32_u64_u64 json 100 4.8±0.03µs 4.8±0.01µs 19.8 Mtx/sec 20.0 Mtx/sec
u32_u64_u64 product_value 100 1012.7±0.97ns 1013.2±3.64ns 94.2 Mtx/sec 94.1 Mtx/sec
u64_u64_u32 bflatn_to_bsatn_fast_path 100 914.9±7.73ns 919.6±1.68ns 104.2 Mtx/sec 103.7 Mtx/sec
u64_u64_u32 bflatn_to_bsatn_slow_path 100 2.8±0.00µs 2.8±0.00µs 34.1 Mtx/sec 34.2 Mtx/sec
u64_u64_u32 bsatn 100 1843.5±49.57ns 1756.7±25.45ns 51.7 Mtx/sec 54.3 Mtx/sec
u64_u64_u32 bsatn 100 756.2±0.34ns 751.1±0.45ns 126.1 Mtx/sec 127.0 Mtx/sec
u64_u64_u32 json 100 3.2±0.03µs 3.5±0.08µs 30.1 Mtx/sec 27.3 Mtx/sec
u64_u64_u32 json 100 4.7±0.01µs 4.7±0.01µs 20.5 Mtx/sec 20.5 Mtx/sec
u64_u64_u32 product_value 100 1015.0±0.79ns 1015.6±0.94ns 94.0 Mtx/sec 93.9 Mtx/sec

stdb_module_large_arguments

arg size new latency old latency new throughput old throughput
64KiB 108.0±9.68µs 116.3±7.34µs - -

stdb_module_print_bulk

line count new latency old latency new throughput old throughput
1 51.9±7.85µs 49.8±7.33µs - -
100 597.7±8.26µs 598.2±3.89µs - -
1000 4.5±0.99ms 3.6±0.14ms - -

remaining

name new latency old latency new throughput old throughput
special/db_game/circles/load=10 290.8±2.35µs 293.3±3.59µs - -
special/db_game/circles/load=100 288.4±3.05µs 293.1±3.70µs - -
special/db_game/ia_loop/load=10 0.0±0.00ns 0.0±0.00ns - -
special/db_game/ia_loop/load=100 0.0±0.00ns 0.0±0.00ns - -
sqlite/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 53.9±0.40µs 53.5±0.17µs 18.1 Ktx/sec 18.2 Ktx/sec
sqlite/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 46.5±0.22µs 45.5±0.12µs 21.0 Ktx/sec 21.4 Ktx/sec
sqlite/🧠/update_bulk/u32_u64_str/unique_0/load=2048/count=256 38.9±0.34µs 39.1±0.09µs 25.1 Ktx/sec 25.0 Ktx/sec
sqlite/🧠/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 35.6±0.17µs 35.2±0.06µs 27.4 Ktx/sec 27.7 Ktx/sec
stdb_module/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 1298.6±15.75µs 1297.1±18.69µs 770 tx/sec 770 tx/sec
stdb_module/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 1041.4±5.34µs 1014.2±6.09µs 960 tx/sec 986 tx/sec
stdb_raw/💿/update_bulk/u32_u64_str/unique_0/load=2048/count=256 541.3±20.64µs 548.9±11.30µs 1847 tx/sec 1821 tx/sec
stdb_raw/💿/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 492.2±8.82µs 457.7±7.12µs 2031 tx/sec 2.1 Ktx/sec
stdb_raw/🧠/update_bulk/u32_u64_str/unique_0/load=2048/count=256 374.9±0.48µs 375.5±0.23µs 2.6 Ktx/sec 2.6 Ktx/sec
stdb_raw/🧠/update_bulk/u32_u64_u64/unique_0/load=2048/count=256 337.0±0.33µs 339.4±0.73µs 2.9 Ktx/sec 2.9 Ktx/sec

@github-actions
Copy link

@github-actions github-actions bot commented on 576b12e Oct 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Callgrind benchmark results

Callgrind Benchmark Report

These benchmarks were run using callgrind,
an instruction-level profiler. They allow comparisons between sqlite (sqlite), SpacetimeDB running through a module (stdb_module), and the underlying SpacetimeDB data storage engine (stdb_raw). Callgrind emulates a CPU to collect the below estimates.

Measurement changes larger than five percent are in bold.

In-memory benchmarks

callgrind: empty transaction

db total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw 5386 5386 0.00% 5486 5482 0.07%
sqlite 5575 5575 0.00% 5987 5987 0.00%

callgrind: filter

db schema indices count preload _column data_type total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str no_index 64 128 1 u64 75577 75577 0.00% 75981 75985 -0.01%
stdb_raw u32_u64_str no_index 64 128 2 string 118074 118074 0.00% 118658 118686 -0.02%
stdb_raw u32_u64_str btree_each_column 64 128 2 string 24068 24068 0.00% 24464 24484 -0.08%
stdb_raw u32_u64_str btree_each_column 64 128 1 u64 23036 23036 0.00% 23352 23348 0.02%
sqlite u32_u64_str no_index 64 128 2 string 144661 144661 0.00% 146249 146253 -0.00%
sqlite u32_u64_str no_index 64 128 1 u64 124011 124011 0.00% 125295 125295 0.00%
sqlite u32_u64_str btree_each_column 64 128 1 u64 131338 131338 0.00% 132726 132730 -0.00%
sqlite u32_u64_str btree_each_column 64 128 2 string 134460 134460 0.00% 136092 136096 -0.00%

callgrind: insert bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 64 128 902512 902694 -0.02% 924682 924852 -0.02%
stdb_raw u32_u64_str btree_each_column 64 128 1048713 1052026 -0.31% 1088675 1123752 -3.12%
sqlite u32_u64_str unique_0 64 128 398284 398284 0.00% 417858 417850 0.00%
sqlite u32_u64_str btree_each_column 64 128 983611 983611 0.00% 1030111 1030107 0.00%

callgrind: iterate

db schema indices count total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 152706 152706 0.00% 152784 152784 0.00%
stdb_raw u32_u64_str unique_0 64 15731 15731 0.00% 15797 15801 -0.03%
sqlite u32_u64_str unique_0 1024 1067233 1067233 0.00% 1070657 1070657 0.00%
sqlite u32_u64_str unique_0 64 76179 76179 0.00% 77289 77289 0.00%

callgrind: serialize_product_value

count format total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
64 json 47182 47182 0.00% 49736 49736 0.00%
64 bsatn 25716 25716 0.00% 27960 27960 0.00%
16 bsatn 8117 8117 0.00% 9477 9477 0.00%
16 json 12078 12078 0.00% 13880 13880 0.00%

callgrind: update bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 1024 20506515 20724415 -1.05% 21285041 21511781 -1.05%
stdb_raw u32_u64_str unique_0 64 128 1307491 1307325 0.01% 1392603 1391853 0.05%
sqlite u32_u64_str unique_0 1024 1024 1802083 1802083 0.00% 1811283 1811283 0.00%
sqlite u32_u64_str unique_0 64 128 128429 128429 0.00% 131223 131223 0.00%
On-disk benchmarks

callgrind: empty transaction

db total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw 5396 5396 0.00% 5496 5496 0.00%
sqlite 5617 5617 0.00% 6097 6097 0.00%

callgrind: filter

db schema indices count preload _column data_type total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str no_index 64 128 1 u64 75587 75587 0.00% 75995 75995 0.00%
stdb_raw u32_u64_str no_index 64 128 2 string 118084 118084 0.00% 118772 118756 0.01%
stdb_raw u32_u64_str btree_each_column 64 128 2 string 24078 24079 -0.00% 24510 24467 0.18%
stdb_raw u32_u64_str btree_each_column 64 128 1 u64 23046 23046 0.00% 23358 23358 0.00%
sqlite u32_u64_str no_index 64 128 1 u64 125932 125932 0.00% 127472 127476 -0.00%
sqlite u32_u64_str no_index 64 128 2 string 146582 146582 0.00% 148370 148374 -0.00%
sqlite u32_u64_str btree_each_column 64 128 2 string 136582 136582 0.00% 138684 138692 -0.01%
sqlite u32_u64_str btree_each_column 64 128 1 u64 133424 133424 0.00% 135262 135262 0.00%

callgrind: insert bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 64 128 852256 851398 0.10% 904216 903460 0.08%
stdb_raw u32_u64_str btree_each_column 64 128 1000613 998374 0.22% 1068567 1066580 0.19%
sqlite u32_u64_str unique_0 64 128 415821 415821 0.00% 434705 434709 -0.00%
sqlite u32_u64_str btree_each_column 64 128 1021862 1021895 -0.00% 1066916 1066953 -0.00%

callgrind: iterate

db schema indices count total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 152716 152716 0.00% 152782 152782 0.00%
stdb_raw u32_u64_str unique_0 64 15741 15741 0.00% 15807 15807 0.00%
sqlite u32_u64_str unique_0 1024 1070301 1070301 0.00% 1074055 1074055 0.00%
sqlite u32_u64_str unique_0 64 77951 77951 0.00% 79249 79249 0.00%

callgrind: serialize_product_value

count format total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
64 json 47182 47182 0.00% 49736 49736 0.00%
64 bsatn 25716 25716 0.00% 27960 27960 0.00%
16 bsatn 8117 8117 0.00% 9477 9477 0.00%
16 json 12078 12078 0.00% 13880 13880 0.00%

callgrind: update bulk

db schema indices count preload total reads + writes old total reads + writes Δrw estimated cycles old estimated cycles Δcycles
stdb_raw u32_u64_str unique_0 1024 1024 19429585 19420322 0.05% 20289121 20292528 -0.02%
stdb_raw u32_u64_str unique_0 64 128 1260911 1261538 -0.05% 1344117 1345734 -0.12%
sqlite u32_u64_str unique_0 1024 1024 1809644 1809644 0.00% 1818188 1818188 0.00%
sqlite u32_u64_str unique_0 64 128 132555 132555 0.00% 135401 135401 0.00%

Please sign in to comment.