fix: load steps never re-read the page; failed steps are recorded; Spinel host override

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 3618d3ecab82da080b41cfea1b80bbc71e24d391 parent 8b3a64a
16 files changed, +2001 −659
  • harness/apps.go +11 −1
  • harness/cmd/bakeoff/main.go +7 −1
  • harness/cmd/host/main.go +11 −0
  • harness/harness_test.go +3 −0
  • harness/load.go +3 −4
  • harness/session.go +4 −0
  • results/go-rastrillo.json +210 −75
  • results/go.json +193 −96
  • results/haskell.json +201 −92
  • results/nim.json +317 −15
  • results/ocaml.json +249 −90
  • results/rust.json +258 −97
  • results/spinel.json +11 −11
  • results/swift.json +271 −90
  • results/zig.json +251 −86
  • scripts/measure-live.sh +1 −1
diff --git a/harness/apps.go b/harness/apps.go
index 882442c..0e93631 100644
--- a/harness/apps.go
+++ b/harness/apps.go
@@ -32,5 +32,15 @@ func AppName(slug string) string { return "todo-" + slug }
// Measurement hosts carry "-2": the first instances were deleted to empty
// their databases, and a deleted host stays parked until an operator purges
// it (2026-10-24).
-func Host(slug string) string { return AppName(slug) + "-2.bfj.oncarlos.com" }
+func Host(slug string) string {
+ if h, ok := hostOverride[slug]; ok {
+ return h
+ }
+ return AppName(slug) + "-2.bfj.oncarlos.com"
+}
+
+// hostOverride: Spinel's -2 run broke mid-way (its process exits under
+// load), and a used database can't be reset, so it was measured on a third
+// fresh instance (2026-10-24).
+var hostOverride = map[string]string{"spinel": "todo-spinel-3.bfj.oncarlos.com"}
func URL(slug string) string { return "https://" + Host(slug) }
diff --git a/harness/cmd/bakeoff/main.go b/harness/cmd/bakeoff/main.go
index f80a2b6..a523a56 100644
--- a/harness/cmd/bakeoff/main.go
+++ b/harness/cmd/bakeoff/main.go
@@ -181,7 +181,13 @@ func load(slug, url, levels string, d, rest time.Duration) error {
}
r, err := b.RunLoad(s, sc, c, d)
if err != nil {
- return err
+ // A step that can't run at all (oha failed, or the app is
+ // down) is a step where every request failed: record it and
+ // end this scenario, rather than losing the whole run.
+ fmt.Printf("%s %s c=%d: step failed: %v\n", slug, sc, c, err)
+ r = b.LoadResult{Scenario: sc, Concurrency: c, ErrorRate: 1, Errors: map[string]int{err.Error(): 1}}
+ sweep = append(sweep, r)
+ break
}
fmt.Printf("%s %s c=%d: %.0f rps, p50 %.1fms, p99 %.1fms, errors %.2f%%", slug, sc, c, r.RPS, r.P50Ms, r.P99Ms, r.ErrorRate*100)
if r.ErrorRate > 0 {
diff --git a/harness/cmd/host/main.go b/harness/cmd/host/main.go
new file mode 100644
index 0000000..3a17a81
--- /dev/null
+++ b/harness/cmd/host/main.go
@@ -0,0 +1,11 @@
+// Command host prints a contestant's measurement hostname.
+package main
+
+import (
+ "fmt"
+ "os"
+
+ b "bakeoff/harness"
+)
+
+func main() { fmt.Println(b.Host(os.Args[1])) }
diff --git a/harness/harness_test.go b/harness/harness_test.go
index 0609ac2..413ced9 100644
--- a/harness/harness_test.go
+++ b/harness/harness_test.go
@@ -41,6 +41,9 @@ func TestSeed(t *testing.T) {
if len(done) != 25 {
t.Fatalf("want 25 completed, got %d", len(done))
}
+ if s.ToggleID != ids[0] {
+ t.Fatalf("Seed must remember the toggle target: got %q, want %q", s.ToggleID, ids[0])
+ }
if !strings.Contains(s.CookieHeader(), "=") {
t.Fatalf("no cookie: %q", s.CookieHeader())
}
diff --git a/harness/load.go b/harness/load.go
index 9611f50..dd53498 100644
--- a/harness/load.go
+++ b/harness/load.go
@@ -75,12 +75,11 @@ func RunLoad(s *Session, scenario string, concurrency int, d time.Duration) (Loa
switch scenario {
case "read", "read-after":
case "toggle":
- ids, err := s.IDs("/")
- if err != nil || len(ids) == 0 {
- return LoadResult{}, fmt.Errorf("toggle needs a seeded list: %v", err)
+ if s.ToggleID == "" {
+ return LoadResult{}, fmt.Errorf("toggle needs a list seeded by Seed")
}
ok = 303
- target = s.Base.String() + "/todos/" + ids[0] + "/toggle"
+ target = s.Base.String() + "/todos/" + s.ToggleID + "/toggle"
args = append(args, "-m", "POST", "-T", "application/x-www-form-urlencoded", "-d", "filter=all")
default:
return LoadResult{}, fmt.Errorf("unknown scenario %q", scenario)
diff --git a/harness/session.go b/harness/session.go
index 375742c..df37b10 100644
--- a/harness/session.go
+++ b/harness/session.go
@@ -18,6 +18,9 @@ import (
type Session struct {
Base *url.URL
Client *http.Client
+ // ToggleID is the item load tests toggle, chosen once by Seed so a
+ // load step never has to fetch the page from an app under strain.
+ ToggleID string
}
// SessionNoFetch starts a visitor for the app at base without making any
@@ -133,5 +136,6 @@ func Seed(s *Session, n int) ([]string, error) {
return nil, err
}
}
+ s.ToggleID = ids[0]
return ids, nil
}
diff --git a/results/go-rastrillo.json b/results/go-rastrillo.json
index 1e51bfc..ece525b 100644
--- a/results/go-rastrillo.json
+++ b/results/go-rastrillo.json
@@ -18,138 +18,273 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 50.697,
- "P95": 57.54,
- "P99": 58.387,
- "Min": 46.991,
- "Max": 58.387
+ "P50": 56.635,
+ "P95": 67.487,
+ "P99": 67.932,
+ "Min": 46.233,
+ "Max": 67.932
},
"TTFB50": {
"N": 30,
- "P50": 55.036,
- "P95": 65.028,
- "P99": 66.947,
- "Min": 43.397,
- "Max": 66.947
+ "P50": 54.058,
+ "P95": 59.506,
+ "P99": 64.063,
+ "Min": 48.03,
+ "Max": 64.063
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 57.99192633501968,
- "P50Ms": 16.477262,
- "P95Ms": 23.438197000000002,
- "P99Ms": 29.363121999999997,
- "ErrorRate": 0
+ "RPS": 66.38935693629935,
+ "P50Ms": 13.830784000000001,
+ "P95Ms": 20.574993,
+ "P99Ms": 27.179045,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 663
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 107.86552509952294,
- "P50Ms": 17.736047000000003,
- "P95Ms": 26.824119,
- "P99Ms": 38.105382,
- "ErrorRate": 0
+ "RPS": 118.69208552865248,
+ "P50Ms": 16.532695999999998,
+ "P95Ms": 22.722982,
+ "P99Ms": 29.551419999999997,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1185
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 97.68322319946515,
- "P50Ms": 39.531777,
- "P95Ms": 51.049011,
- "P99Ms": 65.773552,
- "ErrorRate": 0
+ "RPS": 207.07157605092033,
+ "P50Ms": 17.678483,
+ "P95Ms": 29.174643,
+ "P99Ms": 46.391329,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2067
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 183.5710623717267,
- "P50Ms": 41.418768,
- "P95Ms": 55.891783000000004,
- "P99Ms": 76.985568,
- "ErrorRate": 0
+ "RPS": 303.45433901319063,
+ "P50Ms": 23.114886000000002,
+ "P95Ms": 45.537688,
+ "P99Ms": 65.524003,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3027
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 313.91875611810264,
- "P50Ms": 47.616062,
- "P95Ms": 74.380572,
- "P99Ms": 96.741354,
- "ErrorRate": 0
+ "RPS": 336.0487035096041,
+ "P50Ms": 43.117768,
+ "P95Ms": 87.289749,
+ "P99Ms": 110.44098,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3345
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 325.3577657313955,
- "P50Ms": 86.209065,
- "P95Ms": 193.47635899999997,
- "P99Ms": 293.914985,
- "ErrorRate": 0
+ "RPS": 319.64425484106636,
+ "P50Ms": 86.06021799999999,
+ "P95Ms": 197.978067,
+ "P99Ms": 317.425744,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3165
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 323.75368667899147,
- "P50Ms": 162.148961,
- "P95Ms": 451.165504,
- "P99Ms": 639.8625810000001,
- "ErrorRate": 0
+ "RPS": 330.43588202319074,
+ "P50Ms": 161.60340100000002,
+ "P95Ms": 442.15261,
+ "P99Ms": 618.243098,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3241
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 25.795839394223275,
- "P50Ms": 37.065559,
- "P95Ms": 42.996107,
- "P99Ms": 46.49059,
- "ErrorRate": 0
+ "RPS": 26.396701626544957,
+ "P50Ms": 37.087085,
+ "P95Ms": 42.778312,
+ "P99Ms": 50.690356,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 263
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 135.48058487349635,
- "P50Ms": 14.165082,
- "P95Ms": 19.361393,
- "P99Ms": 24.168968999999997,
- "ErrorRate": 0
+ "RPS": 52.19211696006568,
+ "P50Ms": 36.490811,
+ "P95Ms": 42.466494,
+ "P99Ms": 97.711311,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 520
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 223.86000523862205,
- "P50Ms": 17.025084,
- "P95Ms": 23.403494000000002,
- "P99Ms": 28.705041,
- "ErrorRate": 0
+ "RPS": 105.18763725491837,
+ "P50Ms": 36.513507000000004,
+ "P95Ms": 43.423343,
+ "P99Ms": 51.016984,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1048
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 301.2533089605215,
- "P50Ms": 24.607858,
- "P95Ms": 41.447399000000004,
- "P99Ms": 56.895905,
- "ErrorRate": 0
+ "RPS": 207.97931204825537,
+ "P50Ms": 37.776849,
+ "P95Ms": 44.322362999999996,
+ "P99Ms": 50.285772,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2072
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 314.15104797842065,
- "P50Ms": 46.084265,
- "P95Ms": 96.995763,
- "P99Ms": 129.784737,
- "ErrorRate": 0
+ "RPS": 286.6553076283187,
+ "P50Ms": 47.789087,
+ "P95Ms": 116.326087,
+ "P99Ms": 182.763647,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2851
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 312.74472903060655,
- "P50Ms": 88.91874299999999,
- "P95Ms": 222.08951199999998,
- "P99Ms": 300.757584,
- "ErrorRate": 0
+ "RPS": 292.5391596655851,
+ "P50Ms": 93.9515,
+ "P95Ms": 241.690162,
+ "P99Ms": 333.75972199999995,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2894
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 64,
+ "RPS": 308.55310187938557,
+ "P50Ms": 173.95269199999998,
+ "P95Ms": 479.980394,
+ "P99Ms": 663.634681,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 3023
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 60.492996852789645,
+ "P50Ms": 16.002378,
+ "P95Ms": 22.689337000000002,
+ "P99Ms": 34.779427,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 604
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 107.69357496900928,
+ "P50Ms": 18.159891000000002,
+ "P95Ms": 24.251697,
+ "P99Ms": 28.927315,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1075
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 220.0566636934856,
+ "P50Ms": 17.181931000000002,
+ "P95Ms": 26.599655,
+ "P99Ms": 33.791053,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2198
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 186.9655489240034,
+ "P50Ms": 40.270655000000005,
+ "P95Ms": 56.580746,
+ "P99Ms": 99.18809300000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1862
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 310.5483192319197,
+ "P50Ms": 47.533324,
+ "P95Ms": 75.708775,
+ "P99Ms": 124.583215,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3090
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 317.23836553449513,
+ "P50Ms": 87.680991,
+ "P95Ms": 204.584494,
+ "P99Ms": 281.92094099999997,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3141
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 336.31082957134606,
+ "P50Ms": 142.530464,
+ "P95Ms": 506.24814799999996,
+ "P99Ms": 737.802824,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3300
+ }
}
],
"Weight": {
diff --git a/results/go.json b/results/go.json
index 965e054..9ca4aee 100644
--- a/results/go.json
+++ b/results/go.json
@@ -18,165 +18,262 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 51.896,
- "P95": 58.886,
- "P99": 76.149,
- "Min": 47.354,
- "Max": 76.149
+ "P50": 95.854,
+ "P95": 99.995,
+ "P99": 101.884,
+ "Min": 85.333,
+ "Max": 101.884
},
"TTFB50": {
"N": 30,
- "P50": 54.344,
- "P95": 63.288,
- "P99": 68.356,
- "Min": 45.74,
- "Max": 68.356
+ "P50": 96.952,
+ "P95": 107.022,
+ "P99": 108.968,
+ "Min": 86.404,
+ "Max": 108.968
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 26.397101096754653,
- "P50Ms": 37.415341999999995,
- "P95Ms": 43.973933,
- "P99Ms": 51.416360000000005,
- "ErrorRate": 0
+ "RPS": 26.19700985757665,
+ "P50Ms": 37.080992,
+ "P95Ms": 45.513455,
+ "P99Ms": 87.950397,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 261
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 52.694969200751416,
- "P50Ms": 37.250367,
- "P95Ms": 44.205175,
- "P99Ms": 52.51072,
- "ErrorRate": 0
+ "RPS": 49.69603780944951,
+ "P50Ms": 39.203263,
+ "P95Ms": 49.312338999999994,
+ "P99Ms": 64.148218,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 495
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 99.18649964618396,
- "P50Ms": 38.063772,
- "P95Ms": 49.921562,
- "P99Ms": 110.464989,
- "ErrorRate": 0
+ "RPS": 221.6533468911837,
+ "P50Ms": 16.250929,
+ "P95Ms": 28.482484999999997,
+ "P99Ms": 42.428147,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2213
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 200.77325069872686,
- "P50Ms": 38.678756,
- "P95Ms": 49.328532,
- "P99Ms": 63.743903,
- "ErrorRate": 0
+ "RPS": 328.5426444707159,
+ "P50Ms": 21.383586,
+ "P95Ms": 41.831233000000005,
+ "P99Ms": 64.782697,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3278
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 327.5620385405477,
- "P50Ms": 45.270411,
- "P95Ms": 72.645807,
- "P99Ms": 105.352213,
- "ErrorRate": 0
+ "RPS": 344.14500452701253,
+ "P50Ms": 41.705826,
+ "P95Ms": 88.494744,
+ "P99Ms": 117.759515,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3426
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 334.8053083538595,
- "P50Ms": 83.184358,
- "P95Ms": 190.878471,
- "P99Ms": 350.47273,
- "ErrorRate": 0
- },
- {
- "Scenario": "read",
- "Concurrency": 64,
- "RPS": 362.73355073202134,
- "P50Ms": 162.90021700000003,
- "P95Ms": 323.304439,
- "P99Ms": 407.480976,
- "ErrorRate": 0
+ "RPS": 348.6114213130776,
+ "P50Ms": 84.14116800000001,
+ "P95Ms": 174.428096,
+ "P99Ms": 261.806561,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3457
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 29.5974394633574,
- "P50Ms": 32.721875999999995,
- "P95Ms": 39.37764,
- "P99Ms": 47.072869000000004,
- "ErrorRate": 0
+ "RPS": 90.4889434546128,
+ "P50Ms": 10.373047999999999,
+ "P95Ms": 14.379687,
+ "P99Ms": 18.298227,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 904
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 169.86405481256503,
- "P50Ms": 10.855027999999999,
- "P95Ms": 16.067277,
- "P99Ms": 26.746589,
- "ErrorRate": 0
+ "RPS": 178.59532431600363,
+ "P50Ms": 10.718494,
+ "P95Ms": 15.195796,
+ "P99Ms": 18.419508,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1785
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 308.6614894171468,
- "P50Ms": 12.359297,
- "P95Ms": 17.707689,
- "P99Ms": 20.827004,
- "ErrorRate": 0
+ "RPS": 114.8820982672733,
+ "P50Ms": 34.05589,
+ "P95Ms": 39.101232,
+ "P99Ms": 52.71856,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1145
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 564.2460116545043,
- "P50Ms": 14.158867,
- "P95Ms": 18.978194000000002,
- "P99Ms": 23.111986,
- "ErrorRate": 0
+ "RPS": 231.44924288015238,
+ "P50Ms": 33.569687,
+ "P95Ms": 38.528214,
+ "P99Ms": 42.534389999999995,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2307
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 986.2311519011463,
- "P50Ms": 14.932877000000001,
- "P95Ms": 22.105383999999997,
- "P99Ms": 33.804784999999995,
- "ErrorRate": 0
+ "RPS": 440.6066098601266,
+ "P50Ms": 35.368354,
+ "P95Ms": 41.826858,
+ "P99Ms": 61.499335,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4391
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 1736.243961646239,
- "P50Ms": 16.271177,
- "P95Ms": 32.25958,
- "P99Ms": 44.864916,
- "ErrorRate": 0
+ "RPS": 809.8263019761417,
+ "P50Ms": 36.397498,
+ "P95Ms": 53.485908,
+ "P99Ms": 102.051645,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 8068
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 2279.229991854429,
- "P50Ms": 24.351043,
- "P95Ms": 54.125499,
- "P99Ms": 72.407609,
- "ErrorRate": 0
+ "RPS": 737.0021586888215,
+ "P50Ms": 63.941333,
+ "P95Ms": 214.911373,
+ "P99Ms": 409.866859,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 7307
+ }
},
{
"Scenario": "toggle",
"Concurrency": 128,
- "RPS": 2352.1752401964277,
- "P50Ms": 48.026381,
- "P95Ms": 101.027269,
- "P99Ms": 191.64778199999998,
- "ErrorRate": 0
+ "RPS": 2123.892688780495,
+ "P50Ms": 44.575598,
+ "P95Ms": 167.01138200000003,
+ "P99Ms": 269.950022,
+ "ErrorRate": 0.42585839450627516,
+ "Status": {
+ "303": 12123,
+ "503": 8992
+ }
},
{
- "Scenario": "toggle",
- "Concurrency": 256,
- "RPS": 2366.197606911559,
- "P50Ms": 100.61768000000001,
- "P95Ms": 186.897535,
- "P99Ms": 321.48467600000004,
- "ErrorRate": 0.0005548678987579496
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 66.39343975716841,
+ "P50Ms": 13.739421,
+ "P95Ms": 20.199078,
+ "P99Ms": 39.481995,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 663
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 121.88655367041757,
+ "P50Ms": 15.622307000000001,
+ "P95Ms": 22.650622,
+ "P99Ms": 28.559434000000003,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1217
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 217.72982206625127,
+ "P50Ms": 17.020872,
+ "P95Ms": 26.880566,
+ "P99Ms": 43.940514,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2175
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 320.27317494374086,
+ "P50Ms": 21.505298999999997,
+ "P95Ms": 44.038238,
+ "P99Ms": 78.484053,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3195
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 339.83960723933336,
+ "P50Ms": 42.302873999999996,
+ "P95Ms": 89.360748,
+ "P99Ms": 121.13966599999999,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3383
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 343.42720445666845,
+ "P50Ms": 84.309285,
+ "P95Ms": 196.58251299999998,
+ "P99Ms": 272.1716,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3403
+ }
}
],
"Weight": {
diff --git a/results/haskell.json b/results/haskell.json
index 783c239..d148388 100644
--- a/results/haskell.json
+++ b/results/haskell.json
@@ -18,165 +18,274 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 94.894,
- "P95": 102.998,
- "P99": 109.047,
- "Min": 83.41,
- "Max": 109.047
+ "P50": 99.332,
+ "P95": 107.298,
+ "P99": 111.009,
+ "Min": 83.908,
+ "Max": 111.009
},
"TTFB50": {
"N": 30,
- "P50": 93.402,
- "P95": 104.227,
- "P99": 106.57,
- "Min": 85.989,
- "Max": 106.57
+ "P50": 98.459,
+ "P95": 110.62,
+ "P99": 168.219,
+ "Min": 89.266,
+ "Max": 168.219
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 26.69685811884951,
- "P50Ms": 36.262171,
- "P95Ms": 44.0769,
- "P99Ms": 111.19597300000001,
- "ErrorRate": 0
+ "RPS": 26.59610993859711,
+ "P50Ms": 37.506243000000005,
+ "P95Ms": 42.345214999999996,
+ "P99Ms": 55.210443,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 265
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 52.690018903374124,
- "P50Ms": 37.28053499999999,
- "P95Ms": 43.251211999999995,
- "P99Ms": 50.474092999999996,
- "ErrorRate": 0
+ "RPS": 50.69475714314678,
+ "P50Ms": 38.755004,
+ "P95Ms": 45.726567,
+ "P99Ms": 56.355788,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 505
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 102.98877191691257,
- "P50Ms": 38.027154,
- "P95Ms": 47.025681,
- "P99Ms": 57.853970999999994,
- "ErrorRate": 0
+ "RPS": 104.18854732398793,
+ "P50Ms": 37.774133,
+ "P95Ms": 44.549024,
+ "P99Ms": 55.789260999999996,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1038
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 195.1703423636662,
- "P50Ms": 38.720434,
- "P95Ms": 51.520193,
- "P99Ms": 115.521567,
- "ErrorRate": 0
+ "RPS": 200.02596464909874,
+ "P50Ms": 38.891755,
+ "P95Ms": 48.065269,
+ "P99Ms": 61.747381,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1994
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 339.65757221781854,
- "P50Ms": 43.630158,
- "P95Ms": 67.872754,
- "P99Ms": 107.755159,
- "ErrorRate": 0
+ "RPS": 362.62808178567985,
+ "P50Ms": 41.568044,
+ "P95Ms": 58.232081,
+ "P99Ms": 80.397633,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3611
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 369.828732782758,
- "P50Ms": 83.000771,
- "P95Ms": 114.744872,
- "P99Ms": 189.50821000000002,
- "ErrorRate": 0
+ "RPS": 391.3376172226424,
+ "P50Ms": 79.11072399999999,
+ "P95Ms": 106.98137700000001,
+ "P99Ms": 144.924763,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3882
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 360.8407627205243,
- "P50Ms": 168.370403,
- "P95Ms": 213.026833,
- "P99Ms": 447.776088,
- "ErrorRate": 0
+ "RPS": 399.99541739816476,
+ "P50Ms": 158.280656,
+ "P95Ms": 188.15194599999998,
+ "P99Ms": 225.93614,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3937
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 30.497864176625768,
- "P50Ms": 31.611998000000003,
- "P95Ms": 37.714902,
- "P99Ms": 44.652508,
- "ErrorRate": 0
+ "RPS": 94.39117616182652,
+ "P50Ms": 9.829907,
+ "P95Ms": 15.140255,
+ "P99Ms": 17.012545,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 943
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 158.76927135066884,
- "P50Ms": 11.357509,
- "P95Ms": 19.434861,
- "P99Ms": 30.646698999999998,
- "ErrorRate": 0
+ "RPS": 62.189142882619436,
+ "P50Ms": 31.007856,
+ "P95Ms": 36.883623,
+ "P99Ms": 42.004796,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 620
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 289.76146111717236,
- "P50Ms": 13.038028,
- "P95Ms": 18.335882,
- "P99Ms": 28.368924,
- "ErrorRate": 0
+ "RPS": 114.85210578752539,
+ "P50Ms": 34.145729,
+ "P95Ms": 39.691365,
+ "P99Ms": 42.286877000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1145
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 556.813397197575,
- "P50Ms": 14.036183000000001,
- "P95Ms": 19.3087,
- "P99Ms": 26.480953000000003,
- "ErrorRate": 0
+ "RPS": 223.75596701849923,
+ "P50Ms": 34.765794,
+ "P95Ms": 39.601362,
+ "P99Ms": 44.554303000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2230
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 1043.2346820426112,
- "P50Ms": 14.757032,
- "P95Ms": 21.686774999999997,
- "P99Ms": 31.180517000000002,
- "ErrorRate": 0
+ "RPS": 432.6315926775869,
+ "P50Ms": 36.019937,
+ "P95Ms": 42.519154,
+ "P99Ms": 61.721464,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4313
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 1699.3133769785475,
- "P50Ms": 16.336224,
- "P95Ms": 35.68449,
- "P99Ms": 51.337275,
- "ErrorRate": 0
+ "RPS": 862.4576009191986,
+ "P50Ms": 35.808892,
+ "P95Ms": 45.280590000000004,
+ "P99Ms": 68.382225,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 8594
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 2012.416983517745,
- "P50Ms": 28.678796,
- "P95Ms": 56.738705,
- "P99Ms": 94.237454,
- "ErrorRate": 0
+ "RPS": 780.1442624533769,
+ "P50Ms": 60.939885,
+ "P95Ms": 178.966504,
+ "P99Ms": 239.56328,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 7739
+ }
},
{
"Scenario": "toggle",
"Concurrency": 128,
- "RPS": 2038.995130732286,
- "P50Ms": 59.185701,
- "P95Ms": 109.540237,
- "P99Ms": 157.091061,
- "ErrorRate": 0
+ "RPS": 1813.0549918620309,
+ "P50Ms": 49.445799,
+ "P95Ms": 201.391374,
+ "P99Ms": 274.141735,
+ "ErrorRate": 0.4451910262105731,
+ "Status": {
+ "303": 9991,
+ "503": 8017
+ }
},
{
- "Scenario": "toggle",
- "Concurrency": 256,
- "RPS": 2089.620372460251,
- "P50Ms": 114.763561,
- "P95Ms": 207.5359,
- "P99Ms": 285.86652499999997,
- "ErrorRate": 0
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 26.9955735115153,
+ "P50Ms": 37.093659,
+ "P95Ms": 42.204928,
+ "P99Ms": 50.499763,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 269
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 50.79291338796198,
+ "P50Ms": 38.764284,
+ "P95Ms": 46.634456,
+ "P99Ms": 53.920227000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 506
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 238.76902860074694,
+ "P50Ms": 15.970498999999998,
+ "P95Ms": 23.360366,
+ "P99Ms": 32.031116,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2384
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 368.7594607974367,
+ "P50Ms": 20.246022999999997,
+ "P95Ms": 33.163141,
+ "P99Ms": 50.387125999999995,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3680
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 390.6594583065769,
+ "P50Ms": 38.311910999999995,
+ "P95Ms": 59.198389,
+ "P99Ms": 96.509428,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3892
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 368.5312716354635,
+ "P50Ms": 81.38664800000001,
+ "P95Ms": 121.239345,
+ "P99Ms": 191.46308100000002,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3658
+ }
}
],
"Weight": {
diff --git a/results/nim.json b/results/nim.json
index 30835be..798d11e 100644
--- a/results/nim.json
+++ b/results/nim.json
@@ -17,26 +17,328 @@
"Skipped": 3
},
"TTFBEmpty": {
- "N": 0,
- "P50": 0,
- "P95": 0,
- "P99": 0,
- "Min": 0,
- "Max": 0
+ "N": 30,
+ "P50": 50.615,
+ "P95": 57.717,
+ "P99": 59.587,
+ "Min": 42.26,
+ "Max": 59.587
},
"TTFB50": {
- "N": 0,
- "P50": 0,
- "P95": 0,
- "P99": 0,
- "Min": 0,
- "Max": 0
+ "N": 30,
+ "P50": 50.809,
+ "P95": 54.648,
+ "P99": 55.361,
+ "Min": 42.03,
+ "Max": 55.361
},
"Wake": null,
- "Load": null,
+ "Load": [
+ {
+ "Scenario": "read",
+ "Concurrency": 1,
+ "RPS": 70.59193464557255,
+ "P50Ms": 13.352138,
+ "P95Ms": 19.413396,
+ "P99Ms": 28.020539,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 705
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 2,
+ "RPS": 135.58301603079727,
+ "P50Ms": 14.069557999999999,
+ "P95Ms": 20.590862,
+ "P99Ms": 27.337004,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1354
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 4,
+ "RPS": 111.6613971587395,
+ "P50Ms": 34.91854300000001,
+ "P95Ms": 41.811622,
+ "P99Ms": 49.115617,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1113
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 8,
+ "RPS": 216.75821172625683,
+ "P50Ms": 36.132830999999996,
+ "P95Ms": 43.474199,
+ "P99Ms": 55.392836,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2160
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 16,
+ "RPS": 433.5203144575914,
+ "P50Ms": 35.824301000000006,
+ "P95Ms": 41.654306000000005,
+ "P99Ms": 60.738893000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4320
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 32,
+ "RPS": 1424.4061633833335,
+ "P50Ms": 20.257495,
+ "P95Ms": 38.103735,
+ "P99Ms": 51.929142999999996,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 14215
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 64,
+ "RPS": 1491.066704245307,
+ "P50Ms": 39.070859999999996,
+ "P95Ms": 74.962377,
+ "P99Ms": 97.52377600000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 14850
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 128,
+ "RPS": 1417.8833757244988,
+ "P50Ms": 81.74195200000001,
+ "P95Ms": 148.453518,
+ "P99Ms": 297.54496800000004,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 14054
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 1,
+ "RPS": 28.796133145815876,
+ "P50Ms": 33.794711,
+ "P95Ms": 38.067634000000005,
+ "P99Ms": 43.782537000000005,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 287
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 2,
+ "RPS": 64.36845576836099,
+ "P50Ms": 30.397894,
+ "P95Ms": 34.127030000000005,
+ "P99Ms": 39.119851999999995,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 642
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 4,
+ "RPS": 118.98251432969411,
+ "P50Ms": 32.773073,
+ "P95Ms": 38.083487999999996,
+ "P99Ms": 43.003522000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1186
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 8,
+ "RPS": 236.52626400850843,
+ "P50Ms": 33.238577,
+ "P95Ms": 38.282985,
+ "P99Ms": 41.840529000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2359
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 16,
+ "RPS": 458.65213405425544,
+ "P50Ms": 34.240441000000004,
+ "P95Ms": 39.559746,
+ "P99Ms": 46.756,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4571
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 32,
+ "RPS": 895.0417781841239,
+ "P50Ms": 34.465638,
+ "P95Ms": 41.20333,
+ "P99Ms": 53.813195,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 8920
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 64,
+ "RPS": 2325.1274106361657,
+ "P50Ms": 20.904494,
+ "P95Ms": 65.712754,
+ "P99Ms": 100.531819,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 23193
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 128,
+ "RPS": 3561.491925126408,
+ "P50Ms": 29.560194000000003,
+ "P95Ms": 76.113329,
+ "P99Ms": 101.019791,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 35498
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 256,
+ "RPS": 3406.282792881299,
+ "P50Ms": 68.735961,
+ "P95Ms": 134.273197,
+ "P99Ms": 235.909711,
+ "ErrorRate": 0.010259897696697318,
+ "Status": {
+ "303": 33474,
+ "502": 347
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 26.095720354053377,
+ "P50Ms": 38.273187,
+ "P95Ms": 41.876851,
+ "P99Ms": 44.739115000000005,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 260
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 52.65499968929753,
+ "P50Ms": 37.820025,
+ "P95Ms": 42.809588000000005,
+ "P99Ms": 53.856609,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 525
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 108.68806828907607,
+ "P50Ms": 35.618672,
+ "P95Ms": 41.342202,
+ "P99Ms": 48.127457,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1083
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 215.77333524908593,
+ "P50Ms": 36.282261000000005,
+ "P95Ms": 43.485331,
+ "P99Ms": 57.049493,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2150
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 970.8744694262514,
+ "P50Ms": 15.260093000000001,
+ "P95Ms": 25.168376,
+ "P99Ms": 38.804123000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 9694
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 1356.1885018606595,
+ "P50Ms": 20.504082,
+ "P95Ms": 42.118472999999994,
+ "P99Ms": 62.477528,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13532
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 1446.5294092910453,
+ "P50Ms": 41.003801,
+ "P95Ms": 76.852761,
+ "P99Ms": 100.06628500000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 14405
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 128,
+ "RPS": 1478.9207711427773,
+ "P50Ms": 80.23451800000001,
+ "P95Ms": 144.006777,
+ "P99Ms": 212.011805,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 14665
+ }
+ }
+ ],
"Weight": {
- "HTMLBytes": 0,
- "JSBytes": 0
+ "HTMLBytes": 34737,
+ "JSBytes": 3994
},
"Code": {
"Server": 0,
diff --git a/results/ocaml.json b/results/ocaml.json
index 3658bf8..f6e51d5 100644
--- a/results/ocaml.json
+++ b/results/ocaml.json
@@ -18,165 +18,324 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 96.057,
- "P95": 101.822,
- "P99": 102.331,
- "Min": 86.162,
- "Max": 102.331
+ "P50": 51.659,
+ "P95": 58.82,
+ "P99": 60.574,
+ "Min": 45.08,
+ "Max": 60.574
},
"TTFB50": {
"N": 30,
- "P50": 95.203,
- "P95": 106.555,
- "P99": 113.121,
- "Min": 88.32,
- "Max": 113.121
+ "P50": 52.9,
+ "P95": 75.3,
+ "P99": 125.31,
+ "Min": 41.961,
+ "Max": 125.31
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 26.097771440832684,
- "P50Ms": 38.226589,
- "P95Ms": 44.264452000000006,
- "P99Ms": 50.147892999999996,
- "ErrorRate": 0
+ "RPS": 76.49275580710622,
+ "P50Ms": 12.132339,
+ "P95Ms": 17.773377,
+ "P99Ms": 21.198332,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 764
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 56.09235238550346,
- "P50Ms": 35.695487,
- "P95Ms": 38.983720999999996,
- "P99Ms": 44.003782,
- "ErrorRate": 0
+ "RPS": 135.78443915758632,
+ "P50Ms": 14.967083,
+ "P95Ms": 19.172369000000003,
+ "P99Ms": 23.660912999999997,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1356
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 109.07833426131818,
- "P50Ms": 35.775185,
- "P95Ms": 41.810899,
- "P99Ms": 49.892291,
- "ErrorRate": 0
+ "RPS": 256.95806647352026,
+ "P50Ms": 15.260728,
+ "P95Ms": 20.263771,
+ "P99Ms": 26.014457,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2566
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 215.36901793916604,
- "P50Ms": 36.418364000000004,
- "P95Ms": 43.308951,
- "P99Ms": 52.758119,
- "ErrorRate": 0
+ "RPS": 492.85122625980637,
+ "P50Ms": 15.869159000000002,
+ "P95Ms": 22.015221,
+ "P99Ms": 26.571461,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4921
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 406.71250576884023,
- "P50Ms": 38.005461999999994,
- "P95Ms": 46.911025,
- "P99Ms": 59.219037,
- "ErrorRate": 0
+ "RPS": 828.1460486433324,
+ "P50Ms": 17.966468,
+ "P95Ms": 29.617344,
+ "P99Ms": 43.507917,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 8267
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 867.0518112211872,
- "P50Ms": 32.428450999999995,
- "P95Ms": 68.15821,
- "P99Ms": 111.648028,
- "ErrorRate": 0
+ "RPS": 789.7537081554362,
+ "P50Ms": 33.62263,
+ "P95Ms": 83.737086,
+ "P99Ms": 130.308392,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 7867
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 909.8830326254017,
- "P50Ms": 67.644181,
- "P95Ms": 113.581701,
- "P99Ms": 149.138608,
- "ErrorRate": 0
+ "RPS": 924.1786622729835,
+ "P50Ms": 66.602672,
+ "P95Ms": 114.55368200000001,
+ "P99Ms": 146.556476,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 9179
+ }
},
{
"Scenario": "read",
"Concurrency": 128,
- "RPS": 916.0918394238943,
- "P50Ms": 135.63406799999998,
- "P95Ms": 231.30990300000002,
- "P99Ms": 287.81981099999996,
- "ErrorRate": 0
+ "RPS": 991.611349175018,
+ "P50Ms": 126.64852600000002,
+ "P95Ms": 207.557649,
+ "P99Ms": 270.630206,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 9791
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 256,
+ "RPS": 8969.860389280351,
+ "P50Ms": 19.927958999999998,
+ "P95Ms": 82.329991,
+ "P99Ms": 127.97465899999999,
+ "ErrorRate": 0.8957115554413063,
+ "Status": {
+ "200": 9331,
+ "503": 80142
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 99.18566547933501,
- "P50Ms": 9.530047999999999,
- "P95Ms": 14.040671,
- "P99Ms": 18.262036,
- "ErrorRate": 0
+ "RPS": 31.888753656126454,
+ "P50Ms": 30.738936000000002,
+ "P95Ms": 34.59509,
+ "P99Ms": 37.999565,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 318
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 169.48285145391733,
- "P50Ms": 10.978765999999998,
- "P95Ms": 16.772228,
- "P99Ms": 21.389759,
- "ErrorRate": 0
+ "RPS": 63.09187247344204,
+ "P50Ms": 30.806395000000002,
+ "P95Ms": 36.620787,
+ "P99Ms": 43.047184,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 629
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 308.7607119284671,
- "P50Ms": 12.235388,
- "P95Ms": 17.818839999999998,
- "P99Ms": 21.339118,
- "ErrorRate": 0
+ "RPS": 124.08132513395665,
+ "P50Ms": 30.81785,
+ "P95Ms": 37.607333,
+ "P99Ms": 61.74071,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1238
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 228.05756204540134,
- "P50Ms": 33.938655,
- "P95Ms": 39.584764,
- "P99Ms": 52.930212,
- "ErrorRate": 0
+ "RPS": 237.36710293715328,
+ "P50Ms": 33.29061299999999,
+ "P95Ms": 38.181529999999995,
+ "P99Ms": 42.025779,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2366
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 447.1144834978313,
- "P50Ms": 34.847996,
- "P95Ms": 41.056208,
- "P99Ms": 50.974013,
- "ErrorRate": 0
+ "RPS": 460.81160803896915,
+ "P50Ms": 34.166177999999995,
+ "P95Ms": 39.529419000000004,
+ "P99Ms": 52.621012,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4593
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 857.8113253205815,
- "P50Ms": 35.817308,
- "P95Ms": 47.484265,
- "P99Ms": 67.73130400000001,
- "ErrorRate": 0
+ "RPS": 887.0204034015048,
+ "P50Ms": 34.534487000000006,
+ "P95Ms": 42.144569,
+ "P99Ms": 79.96372,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 8839
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 895.578060352702,
- "P50Ms": 54.791554,
- "P95Ms": 155.255649,
- "P99Ms": 209.875608,
- "ErrorRate": 0
+ "RPS": 1057.6661271736937,
+ "P50Ms": 44.443495999999996,
+ "P95Ms": 140.51767800000002,
+ "P99Ms": 177.552036,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 10515
+ }
},
{
"Scenario": "toggle",
"Concurrency": 128,
- "RPS": 1359.6478507388142,
- "P50Ms": 59.477766,
- "P95Ms": 272.794435,
- "P99Ms": 369.32636,
- "ErrorRate": 0.4022860535886588
+ "RPS": 1362.4340145959552,
+ "P50Ms": 62.144081,
+ "P95Ms": 254.80678899999998,
+ "P99Ms": 412.619422,
+ "ErrorRate": 0.2856507889473294,
+ "Status": {
+ "303": 9643,
+ "503": 3856
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 27.69546377660531,
+ "P50Ms": 36.003156000000004,
+ "P95Ms": 40.474782,
+ "P99Ms": 61.204169,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 276
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 52.19290268383009,
+ "P50Ms": 37.93591,
+ "P95Ms": 42.595862999999994,
+ "P99Ms": 48.882318,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 520
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 108.48845981130873,
+ "P50Ms": 36.692753,
+ "P95Ms": 41.509272,
+ "P99Ms": 45.983484,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1081
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 213.48600927977625,
+ "P50Ms": 36.586635,
+ "P95Ms": 42.996452999999995,
+ "P99Ms": 72.03171499999999,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2127
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 413.3553858724856,
+ "P50Ms": 37.597107,
+ "P95Ms": 45.717586999999995,
+ "P99Ms": 61.104552999999996,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4120
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 742.6962395042211,
+ "P50Ms": 40.184226,
+ "P95Ms": 58.782751000000005,
+ "P99Ms": 82.288609,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 7397
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 713.3670865858147,
+ "P50Ms": 69.819616,
+ "P95Ms": 196.194665,
+ "P99Ms": 332.292778,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 7071
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 128,
+ "RPS": 3047.9283526262448,
+ "P50Ms": 21.520699,
+ "P95Ms": 109.87831000000001,
+ "P99Ms": 163.49684100000002,
+ "ErrorRate": 0.6972561678579663,
+ "Status": {
+ "200": 9191,
+ "503": 21168
+ }
}
],
"Weight": {
diff --git a/results/rust.json b/results/rust.json
index 40cd98c..e797fab 100644
--- a/results/rust.json
+++ b/results/rust.json
@@ -18,178 +18,339 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 92.325,
- "P95": 105.63,
- "P99": 160.783,
- "Min": 85.641,
- "Max": 160.783
+ "P50": 93.22,
+ "P95": 100.757,
+ "P99": 102.341,
+ "Min": 85.547,
+ "Max": 102.341
},
"TTFB50": {
"N": 30,
- "P50": 93.96,
- "P95": 101.951,
- "P99": 107.206,
- "Min": 86.482,
- "Max": 107.206
+ "P50": 95.758,
+ "P95": 101.193,
+ "P99": 102.563,
+ "Min": 79.697,
+ "Max": 102.563
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 28.185612101864606,
- "P50Ms": 35.462399,
- "P95Ms": 39.121629999999996,
- "P99Ms": 50.12424,
- "ErrorRate": 0
+ "RPS": 27.896439658306086,
+ "P50Ms": 35.808963999999996,
+ "P95Ms": 41.530607999999994,
+ "P99Ms": 45.00327,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 278
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 38.39254057891703,
- "P50Ms": 36.419970000000006,
- "P95Ms": 72.873043,
- "P99Ms": 282.45779999999996,
- "ErrorRate": 0
+ "RPS": 51.295747905661834,
+ "P50Ms": 38.975769,
+ "P95Ms": 43.033366,
+ "P99Ms": 49.329375,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 511
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 237.96649874315383,
- "P50Ms": 15.607902,
- "P95Ms": 26.506323,
- "P99Ms": 41.046028,
- "ErrorRate": 0
+ "RPS": 110.88463090226456,
+ "P50Ms": 35.619257000000005,
+ "P95Ms": 40.349394,
+ "P99Ms": 46.899803,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1105
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 513.0003530672191,
- "P50Ms": 15.382689999999998,
- "P95Ms": 20.712524,
- "P99Ms": 26.247308,
- "ErrorRate": 0
+ "RPS": 217.25988771972408,
+ "P50Ms": 36.251855,
+ "P95Ms": 42.355033,
+ "P99Ms": 50.262031,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2165
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 901.761816814653,
- "P50Ms": 15.933392000000001,
- "P95Ms": 27.924761,
- "P99Ms": 50.763132000000006,
- "ErrorRate": 0
+ "RPS": 370.24114557892005,
+ "P50Ms": 37.485039,
+ "P95Ms": 71.613409,
+ "P99Ms": 111.75089200000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3687
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 1289.131957753337,
- "P50Ms": 21.488584000000003,
- "P95Ms": 46.228396999999994,
- "P99Ms": 67.645938,
- "ErrorRate": 0
+ "RPS": 755.8236863719462,
+ "P50Ms": 38.287504999999996,
+ "P95Ms": 64.49403600000001,
+ "P99Ms": 104.37146899999999,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 7527
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 1366.7087002798423,
- "P50Ms": 42.768637999999996,
- "P95Ms": 83.634758,
- "P99Ms": 111.480954,
- "ErrorRate": 0
+ "RPS": 904.4230202423414,
+ "P50Ms": 51.510092,
+ "P95Ms": 173.672529,
+ "P99Ms": 239.69119,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 8982
+ }
},
{
"Scenario": "read",
"Concurrency": 128,
- "RPS": 1354.4764813961515,
- "P50Ms": 89.141547,
- "P95Ms": 144.245797,
- "P99Ms": 253.83596400000002,
- "ErrorRate": 0
+ "RPS": 3089.4440282357054,
+ "P50Ms": 23.442237000000002,
+ "P95Ms": 85.606979,
+ "P99Ms": 135.174558,
+ "ErrorRate": 0.5589640269067039,
+ "Status": {
+ "200": 13572,
+ "503": 17201
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 29.191697163211032,
- "P50Ms": 32.976131,
- "P95Ms": 37.089355,
- "P99Ms": 57.698962,
- "ErrorRate": 0
+ "RPS": 101.28069807648163,
+ "P50Ms": 9.484541,
+ "P95Ms": 13.258976,
+ "P99Ms": 16.052227,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1012
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 57.59188585616497,
- "P50Ms": 33.514239,
- "P95Ms": 41.247702999999994,
- "P99Ms": 48.346012,
- "ErrorRate": 0
+ "RPS": 181.88163801191737,
+ "P50Ms": 10.496462,
+ "P95Ms": 15.29558,
+ "P99Ms": 18.750016000000002,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1817
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 114.18116860225956,
- "P50Ms": 33.755286000000005,
- "P95Ms": 41.985884,
- "P99Ms": 66.76484500000001,
- "ErrorRate": 0
+ "RPS": 323.2568406861726,
+ "P50Ms": 11.672455,
+ "P95Ms": 16.952855999999997,
+ "P99Ms": 21.727927,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 3229
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 486.2910784332009,
- "P50Ms": 15.267147,
- "P95Ms": 25.780468,
- "P99Ms": 44.980184,
- "ErrorRate": 0
+ "RPS": 236.5608461046787,
+ "P50Ms": 33.287513999999994,
+ "P95Ms": 37.432587000000005,
+ "P99Ms": 41.04903,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2358
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 983.9711746498187,
- "P50Ms": 15.495027,
- "P95Ms": 24.780343,
- "P99Ms": 35.839623,
- "ErrorRate": 0
+ "RPS": 446.34219462408225,
+ "P50Ms": 34.806162,
+ "P95Ms": 40.841651999999996,
+ "P99Ms": 71.60932000000001,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4448
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 1733.262851949785,
- "P50Ms": 16.226934,
- "P95Ms": 30.03119,
- "P99Ms": 62.253621,
- "ErrorRate": 0
+ "RPS": 873.9763299895703,
+ "P50Ms": 34.988298,
+ "P95Ms": 44.67085,
+ "P99Ms": 84.14837999999999,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 8709
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 2221.0739811919975,
- "P50Ms": 24.848551,
- "P95Ms": 56.078465,
- "P99Ms": 82.48298,
- "ErrorRate": 0
+ "RPS": 1021.7259457156242,
+ "P50Ms": 47.003821,
+ "P95Ms": 136.623008,
+ "P99Ms": 169.532449,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 10155
+ }
},
{
"Scenario": "toggle",
"Concurrency": 128,
- "RPS": 2218.212308943644,
- "P50Ms": 50.257066,
- "P95Ms": 120.648697,
- "P99Ms": 187.86395100000001,
- "ErrorRate": 0
+ "RPS": 1541.1129774768578,
+ "P50Ms": 53.413306,
+ "P95Ms": 237.209585,
+ "P99Ms": 341.468442,
+ "ErrorRate": 0.32568027210884354,
+ "Status": {
+ "303": 10309,
+ "503": 4979
+ }
},
{
- "Scenario": "toggle",
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 26.497040805183467,
+ "P50Ms": 37.38619,
+ "P95Ms": 43.146285,
+ "P99Ms": 67.921425,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 264
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 52.893435401021726,
+ "P50Ms": 37.638214000000005,
+ "P95Ms": 41.345954,
+ "P99Ms": 46.976573,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 527
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 104.78800956913224,
+ "P50Ms": 37.759797999999996,
+ "P95Ms": 43.010639000000005,
+ "P99Ms": 52.446515,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1044
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 218.15609881206532,
+ "P50Ms": 35.933694,
+ "P95Ms": 43.158117000000004,
+ "P99Ms": 56.509759,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2174
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 426.64814288081425,
+ "P50Ms": 36.386053000000004,
+ "P95Ms": 42.918265999999996,
+ "P99Ms": 59.735639,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4251
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 807.918523355924,
+ "P50Ms": 37.090711999999996,
+ "P95Ms": 55.653822,
+ "P99Ms": 77.34257799999999,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 8048
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 915.4650480925231,
+ "P50Ms": 54.654946,
+ "P95Ms": 155.00248299999998,
+ "P99Ms": 229.42922299999998,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 9093
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 128,
+ "RPS": 1384.7978847385973,
+ "P50Ms": 85.781212,
+ "P95Ms": 155.319064,
+ "P99Ms": 215.698699,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13723
+ }
+ },
+ {
+ "Scenario": "read-after",
"Concurrency": 256,
- "RPS": 1975.5429685760184,
- "P50Ms": 97.572354,
- "P95Ms": 387.185339,
- "P99Ms": 599.826717,
- "ErrorRate": 0
+ "RPS": 1398.2946720839582,
+ "P50Ms": 173.7648,
+ "P95Ms": 290.510786,
+ "P99Ms": 391.953787,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13733
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 512,
+ "RPS": 1398.1784484204934,
+ "P50Ms": 347.999482,
+ "P95Ms": 531.2550110000001,
+ "P99Ms": 1619.185671,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13479
+ }
}
],
"Weight": {
- "HTMLBytes": 36949,
+ "HTMLBytes": 36699,
"JSBytes": 4596
},
"Code": {
diff --git a/results/spinel.json b/results/spinel.json
index 9ba6a57..2d26765 100644
--- a/results/spinel.json
+++ b/results/spinel.json
@@ -2,7 +2,7 @@
"Slug": "spinel",
"Language": "Spinel",
"Status": "LIVE",
- "URL": "https://todo-spinel-2.bfj.oncarlos.com",
+ "URL": "https://todo-spinel-3.bfj.oncarlos.com",
"Version": "e344882",
"Stack": "",
"Source": "",
@@ -18,19 +18,19 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 50.27,
- "P95": 55.968,
- "P99": 56.094,
- "Min": 46.013,
- "Max": 56.094
+ "P50": 96.832,
+ "P95": 133.322,
+ "P99": 135.335,
+ "Min": 84.652,
+ "Max": 135.335
},
"TTFB50": {
"N": 30,
- "P50": 52.578,
- "P95": 59.272,
- "P99": 66.029,
- "Min": 47.702,
- "Max": 66.029
+ "P50": 93.83,
+ "P95": 103.919,
+ "P99": 105.906,
+ "Min": 84.234,
+ "Max": 105.906
},
"Wake": null,
"Load": null,
diff --git a/results/swift.json b/results/swift.json
index 19dd3ec..9803d8c 100644
--- a/results/swift.json
+++ b/results/swift.json
@@ -18,165 +18,346 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 98.354,
- "P95": 105.084,
- "P99": 105.193,
- "Min": 84.397,
- "Max": 105.193
+ "P50": 58.706,
+ "P95": 66.484,
+ "P99": 75.791,
+ "Min": 49.085,
+ "Max": 75.791
},
"TTFB50": {
"N": 30,
- "P50": 94.061,
- "P95": 102.592,
- "P99": 108.775,
- "Min": 87.038,
- "Max": 108.775
+ "P50": 56.312,
+ "P95": 61.926,
+ "P99": 63.425,
+ "Min": 47.876,
+ "Max": 63.425
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 27.296510045652877,
- "P50Ms": 36.656496,
- "P95Ms": 42.049067,
- "P99Ms": 52.302723,
- "ErrorRate": 0
+ "RPS": 62.0924958672952,
+ "P50Ms": 16.085201,
+ "P95Ms": 21.323919,
+ "P99Ms": 25.819993,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 620
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 52.39227567581642,
- "P50Ms": 38.237572,
- "P95Ms": 42.074146,
- "P99Ms": 46.992537,
- "ErrorRate": 0
+ "RPS": 137.9826535107139,
+ "P50Ms": 13.746804,
+ "P95Ms": 19.8949,
+ "P99Ms": 23.4948,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1378
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 104.2877625610778,
- "P50Ms": 37.759178,
- "P95Ms": 43.572641000000004,
- "P99Ms": 55.681293,
- "ErrorRate": 0
+ "RPS": 102.88624191797862,
+ "P50Ms": 37.969286,
+ "P95Ms": 45.995428999999994,
+ "P99Ms": 62.940053999999996,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1025
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 204.47678491225412,
- "P50Ms": 38.14147,
- "P95Ms": 46.680825,
- "P99Ms": 62.819841000000004,
- "ErrorRate": 0
+ "RPS": 195.1791877504414,
+ "P50Ms": 39.65168,
+ "P95Ms": 48.991596,
+ "P99Ms": 61.681878000000005,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1944
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 379.7445561555676,
- "P50Ms": 40.535737000000005,
- "P95Ms": 53.863342,
- "P99Ms": 69.03654900000001,
- "ErrorRate": 0
+ "RPS": 367.539230328579,
+ "P50Ms": 41.264191,
+ "P95Ms": 57.833427,
+ "P99Ms": 74.200124,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3660
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 539.9130204983195,
- "P50Ms": 56.092084,
- "P95Ms": 94.803026,
- "P99Ms": 142.277387,
- "ErrorRate": 0
+ "RPS": 482.9160524811834,
+ "P50Ms": 59.77146,
+ "P95Ms": 127.28985700000001,
+ "P99Ms": 195.709147,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4798
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 445.1102596291372,
- "P50Ms": 135.003106,
- "P95Ms": 248.05947,
- "P99Ms": 311.61767899999995,
- "ErrorRate": 0
+ "RPS": 536.5676017832897,
+ "P50Ms": 118.30839499999999,
+ "P95Ms": 179.611211,
+ "P99Ms": 238.626453,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 5303
+ }
},
{
"Scenario": "read",
"Concurrency": 128,
- "RPS": 488.7957721223273,
- "P50Ms": 250.78503800000001,
- "P95Ms": 463.785598,
- "P99Ms": 592.699952,
- "ErrorRate": 0
+ "RPS": 348.07940625373016,
+ "P50Ms": 367.14313100000004,
+ "P95Ms": 616.229955,
+ "P99Ms": 693.192401,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3354
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 256,
+ "RPS": 534.8700128941944,
+ "P50Ms": 402.73589599999997,
+ "P95Ms": 854.790501,
+ "P99Ms": 1065.22288,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 5094
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 512,
+ "RPS": 952.9658157743403,
+ "P50Ms": 314.52034499999996,
+ "P95Ms": 2053.502059,
+ "P99Ms": 2537.476385,
+ "ErrorRate": 0.4311204699102294,
+ "Status": {
+ "200": 5133,
+ "502": 3890
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 88.76384082449914,
- "P50Ms": 10.504337000000001,
- "P95Ms": 15.692309000000002,
- "P99Ms": 24.551641999999998,
- "ErrorRate": 0
+ "RPS": 88.39134892654133,
+ "P50Ms": 10.934498000000001,
+ "P95Ms": 14.850686999999999,
+ "P99Ms": 17.477161000000002,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 883
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 165.16492357833332,
- "P50Ms": 11.407713999999999,
- "P95Ms": 17.554529,
- "P99Ms": 21.497001,
- "ErrorRate": 0
+ "RPS": 164.47616896564048,
+ "P50Ms": 11.279753,
+ "P95Ms": 17.263004,
+ "P99Ms": 23.367166,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1643
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 287.77742066701927,
- "P50Ms": 13.158547,
- "P95Ms": 19.177643,
- "P99Ms": 35.318489,
- "ErrorRate": 0
+ "RPS": 115.6764887883567,
+ "P50Ms": 33.671655,
+ "P95Ms": 38.997323,
+ "P99Ms": 46.591305999999996,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1153
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 508.0341937720431,
- "P50Ms": 15.322446,
- "P95Ms": 21.420319,
- "P99Ms": 27.503838,
- "ErrorRate": 0
+ "RPS": 222.60113188846984,
+ "P50Ms": 35.10275,
+ "P95Ms": 41.989121,
+ "P99Ms": 49.290602,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2220
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 854.9581791952519,
- "P50Ms": 16.998088000000003,
- "P95Ms": 30.234149,
- "P99Ms": 44.735781,
- "ErrorRate": 0
+ "RPS": 430.8344605140308,
+ "P50Ms": 35.732986000000004,
+ "P95Ms": 44.978485,
+ "P99Ms": 93.453748,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 4293
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 1241.6565248502343,
- "P50Ms": 23.726373,
- "P95Ms": 43.463809999999995,
- "P99Ms": 54.458228999999996,
- "ErrorRate": 0
+ "RPS": 1187.6571228291066,
+ "P50Ms": 24.091721,
+ "P95Ms": 47.122064,
+ "P99Ms": 62.629355999999994,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 11846
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 836.0748744661419,
- "P50Ms": 63.149631,
- "P95Ms": 146.399683,
- "P99Ms": 237.186814,
- "ErrorRate": 0
+ "RPS": 1318.2371265117147,
+ "P50Ms": 45.52474,
+ "P95Ms": 81.330266,
+ "P99Ms": 114.22493899999999,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 13121
+ }
},
{
"Scenario": "toggle",
"Concurrency": 128,
- "RPS": 2847.0211770372075,
- "P50Ms": 24.255105999999998,
- "P95Ms": 97.30545000000001,
- "P99Ms": 216.814023,
- "ErrorRate": 0.5562923250564334
+ "RPS": 1409.929545847585,
+ "P50Ms": 90.76343200000001,
+ "P95Ms": 146.288902,
+ "P99Ms": 213.733196,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 13976
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 256,
+ "RPS": 1453.3720610260882,
+ "P50Ms": 198.724234,
+ "P95Ms": 279.23400399999997,
+ "P99Ms": 358.414454,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 14286
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 60.09625655009286,
+ "P50Ms": 17.007264000000003,
+ "P95Ms": 21.515174000000002,
+ "P99Ms": 26.001507,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 600
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 116.98474952879565,
+ "P50Ms": 16.739255,
+ "P95Ms": 22.699843,
+ "P99Ms": 29.978254,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1168
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 234.36507451817465,
+ "P50Ms": 16.269068,
+ "P95Ms": 23.239594999999998,
+ "P99Ms": 29.501097,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2340
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 398.84339268676257,
+ "P50Ms": 18.998329000000002,
+ "P95Ms": 29.765583000000003,
+ "P99Ms": 37.536835999999994,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3984
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 337.618541356529,
+ "P50Ms": 29.846004,
+ "P95Ms": 97.98349400000001,
+ "P99Ms": 368.31043,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 3361
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 475.8270092787615,
+ "P50Ms": 61.699927,
+ "P95Ms": 120.93642200000001,
+ "P99Ms": 187.719178,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4727
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 511.8747541268479,
+ "P50Ms": 120.925931,
+ "P95Ms": 200.568238,
+ "P99Ms": 264.991386,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 5056
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 128,
+ "RPS": 531.9302033045054,
+ "P50Ms": 235.33870000000002,
+ "P95Ms": 362.72706700000003,
+ "P99Ms": 433.713977,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 5193
+ }
}
],
"Weight": {
diff --git a/results/zig.json b/results/zig.json
index 3a010fd..e585344 100644
--- a/results/zig.json
+++ b/results/zig.json
@@ -18,160 +18,325 @@
},
"TTFBEmpty": {
"N": 30,
- "P50": 95.268,
- "P95": 102.395,
- "P99": 102.948,
- "Min": 81.977,
- "Max": 102.948
+ "P50": 50.229,
+ "P95": 58.291,
+ "P99": 58.392,
+ "Min": 44.68,
+ "Max": 58.392
},
"TTFB50": {
"N": 30,
- "P50": 94.987,
- "P95": 106.136,
- "P99": 106.341,
- "Min": 87.479,
- "Max": 106.341
+ "P50": 54.132,
+ "P95": 61.266,
+ "P99": 65.122,
+ "Min": 48.154,
+ "Max": 65.122
},
"Wake": null,
"Load": [
{
"Scenario": "read",
"Concurrency": 1,
- "RPS": 29.39574477781065,
- "P50Ms": 34.249815000000005,
- "P95Ms": 37.864086,
- "P99Ms": 41.005205000000004,
- "ErrorRate": 0
+ "RPS": 77.88700892202256,
+ "P50Ms": 12.89359,
+ "P95Ms": 17.391070000000003,
+ "P99Ms": 21.104159,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 778
+ }
},
{
"Scenario": "read",
"Concurrency": 2,
- "RPS": 56.59066082060851,
- "P50Ms": 35.540171,
- "P95Ms": 39.507695000000005,
- "P99Ms": 44.439894,
- "ErrorRate": 0
+ "RPS": 146.06805739900383,
+ "P50Ms": 13.036715000000001,
+ "P95Ms": 18.88113,
+ "P99Ms": 24.536747000000002,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1459
+ }
},
{
"Scenario": "read",
"Concurrency": 4,
- "RPS": 283.35657268666307,
- "P50Ms": 14.016504000000001,
- "P95Ms": 18.088931,
- "P99Ms": 21.902407,
- "ErrorRate": 0
+ "RPS": 112.38885203737756,
+ "P50Ms": 35.100674,
+ "P95Ms": 39.683425,
+ "P99Ms": 44.626512,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1120
+ }
},
{
"Scenario": "read",
"Concurrency": 8,
- "RPS": 539.0283164568906,
- "P50Ms": 14.725098000000001,
- "P95Ms": 19.244354,
- "P99Ms": 24.920043,
- "ErrorRate": 0
+ "RPS": 222.8484551077639,
+ "P50Ms": 35.448401,
+ "P95Ms": 40.447213000000005,
+ "P99Ms": 47.030191,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2221
+ }
},
{
"Scenario": "read",
"Concurrency": 16,
- "RPS": 940.7968704115435,
- "P50Ms": 15.535354,
- "P95Ms": 27.759521999999997,
- "P99Ms": 43.640426000000005,
- "ErrorRate": 0
+ "RPS": 412.4167107959877,
+ "P50Ms": 36.62036,
+ "P95Ms": 46.308214,
+ "P99Ms": 104.57195800000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 4110
+ }
},
{
"Scenario": "read",
"Concurrency": 32,
- "RPS": 775.7980624619867,
- "P50Ms": 37.371939,
- "P95Ms": 60.208033,
- "P99Ms": 109.217875,
- "ErrorRate": 0
+ "RPS": 1381.6088099712952,
+ "P50Ms": 19.012087,
+ "P95Ms": 46.697122,
+ "P99Ms": 80.0428,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13792
+ }
},
{
"Scenario": "read",
"Concurrency": 64,
- "RPS": 809.3032064490328,
- "P50Ms": 63.381702999999995,
- "P95Ms": 179.77062899999999,
- "P99Ms": 252.835274,
- "ErrorRate": 0
+ "RPS": 1322.2119551198723,
+ "P50Ms": 44.491989000000004,
+ "P95Ms": 83.988829,
+ "P99Ms": 128.54729,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13162
+ }
+ },
+ {
+ "Scenario": "read",
+ "Concurrency": 128,
+ "RPS": 1191.4827795829715,
+ "P50Ms": 90.87234600000001,
+ "P95Ms": 181.238567,
+ "P99Ms": 624.785731,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 11789
+ }
},
{
"Scenario": "toggle",
"Concurrency": 1,
- "RPS": 29.491687847407768,
- "P50Ms": 33.419122,
- "P95Ms": 36.965662,
- "P99Ms": 40.05267,
- "ErrorRate": 0
+ "RPS": 97.58213406764388,
+ "P50Ms": 9.74184,
+ "P95Ms": 14.121995,
+ "P99Ms": 16.461793,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 975
+ }
},
{
"Scenario": "toggle",
"Concurrency": 2,
- "RPS": 60.48882212538628,
- "P50Ms": 32.054846999999995,
- "P95Ms": 37.797934999999995,
- "P99Ms": 41.654875000000004,
- "ErrorRate": 0
+ "RPS": 57.890097482017,
+ "P50Ms": 33.737747999999996,
+ "P95Ms": 38.267145,
+ "P99Ms": 42.018508000000004,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 577
+ }
},
{
"Scenario": "toggle",
"Concurrency": 4,
- "RPS": 120.27733757258152,
- "P50Ms": 32.573297000000004,
- "P95Ms": 38.51065,
- "P99Ms": 46.633263,
- "ErrorRate": 0
+ "RPS": 116.28319278779234,
+ "P50Ms": 33.452189,
+ "P95Ms": 38.918751,
+ "P99Ms": 61.337942,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 1159
+ }
},
{
"Scenario": "toggle",
"Concurrency": 8,
- "RPS": 234.6660418994756,
- "P50Ms": 33.676768,
- "P95Ms": 39.092808,
- "P99Ms": 42.925565999999996,
- "ErrorRate": 0
+ "RPS": 233.1553677207922,
+ "P50Ms": 33.461301999999996,
+ "P95Ms": 37.974313,
+ "P99Ms": 42.06469,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 2324
+ }
},
{
"Scenario": "toggle",
"Concurrency": 16,
- "RPS": 1122.2904086748506,
- "P50Ms": 13.571422,
- "P95Ms": 20.309955000000002,
- "P99Ms": 27.69751,
- "ErrorRate": 0
+ "RPS": 1164.6645316189908,
+ "P50Ms": 13.249912,
+ "P95Ms": 18.737178,
+ "P99Ms": 26.308294,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 11633
+ }
},
{
"Scenario": "toggle",
"Concurrency": 32,
- "RPS": 1909.8778647203133,
- "P50Ms": 14.917698,
- "P95Ms": 27.771401,
- "P99Ms": 46.223282,
- "ErrorRate": 0
+ "RPS": 2005.7317940043981,
+ "P50Ms": 14.225914,
+ "P95Ms": 24.668327,
+ "P99Ms": 56.775147,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 20030
+ }
},
{
"Scenario": "toggle",
"Concurrency": 64,
- "RPS": 2526.0084045366834,
- "P50Ms": 21.814139,
- "P95Ms": 50.538366,
- "P99Ms": 72.851228,
- "ErrorRate": 0
+ "RPS": 2955.2850468024517,
+ "P50Ms": 18.466985,
+ "P95Ms": 41.679489,
+ "P99Ms": 64.940055,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 29496
+ }
+ },
+ {
+ "Scenario": "toggle",
+ "Concurrency": 128,
+ "RPS": 3113.0801640486206,
+ "P50Ms": 37.396502,
+ "P95Ms": 74.641883,
+ "P99Ms": 99.03120899999999,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 31014
+ }
},
{
"Scenario": "toggle",
+ "Concurrency": 256,
+ "RPS": 2852.029798919397,
+ "P50Ms": 82.560651,
+ "P95Ms": 143.569693,
+ "P99Ms": 292.787836,
+ "ErrorRate": 0,
+ "Status": {
+ "303": 28275
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 1,
+ "RPS": 83.88846385978232,
+ "P50Ms": 10.831252,
+ "P95Ms": 16.408281,
+ "P99Ms": 18.249034,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 838
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 2,
+ "RPS": 53.79174863085629,
+ "P50Ms": 37.299525,
+ "P95Ms": 40.807924,
+ "P99Ms": 45.99678,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 536
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 4,
+ "RPS": 109.88744945770132,
+ "P50Ms": 35.907785,
+ "P95Ms": 40.107679,
+ "P99Ms": 56.229563000000006,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 1095
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 8,
+ "RPS": 226.2769583983479,
+ "P50Ms": 34.819027000000006,
+ "P95Ms": 39.436487,
+ "P99Ms": 47.904785,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 2255
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 16,
+ "RPS": 1003.252389168501,
+ "P50Ms": 14.899234000000002,
+ "P95Ms": 24.326863,
+ "P99Ms": 35.183328,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 10018
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 32,
+ "RPS": 1379.18020040817,
+ "P50Ms": 19.593666,
+ "P95Ms": 43.099363000000004,
+ "P99Ms": 65.71508700000001,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13761
+ }
+ },
+ {
+ "Scenario": "read-after",
+ "Concurrency": 64,
+ "RPS": 1332.810865208394,
+ "P50Ms": 41.771109,
+ "P95Ms": 85.935605,
+ "P99Ms": 184.94097100000002,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 13266
+ }
+ },
+ {
+ "Scenario": "read-after",
"Concurrency": 128,
- "RPS": 1760.7469737135646,
- "P50Ms": 43.446754999999996,
- "P95Ms": 259.093322,
- "P99Ms": 379.538323,
- "ErrorRate": 0.37794555021734155
+ "RPS": 1127.0060690034552,
+ "P50Ms": 88.25514600000001,
+ "P95Ms": 276.707488,
+ "P99Ms": 703.035536,
+ "ErrorRate": 0,
+ "Status": {
+ "200": 11146
+ }
}
],
"Weight": {
- "HTMLBytes": 36058,
+ "HTMLBytes": 35808,
"JSBytes": 3854
},
"Code": {
diff --git a/scripts/measure-live.sh b/scripts/measure-live.sh
index cbd15c5..0ec8c32 100755
--- a/scripts/measure-live.sh
+++ b/scripts/measure-live.sh
@@ -6,7 +6,7 @@
set -euo pipefail
slug=$1
cd "$(dirname "$0")/.."
-url=https://todo-$slug-2.bfj.oncarlos.com
+url=https://$(cd harness && go run ./cmd/host "$slug")
out=$(mktemp -d -p "${TMPDIR:-$HOME/.cache}")
trap 'rm -rf "$out"' EXIT
scripts/test-app.sh "$url" "$out/suite.json" >/dev/null 2>&1 || true