Files
anonymous_github/backend/reports/replacement-path-node-comparison.json
T

313 lines
9.6 KiB
JSON

{
"measuredAt": "2026-11-03T19:57:12.926Z",
"method": "Three fresh processes per runtime, alternating order; transform only, excludes compilation, I/O, child startup and fixture generation. Synthetic data, not production load.",
"comparison": [
{
"name": "2 MB CSV, 47 absent terms",
"nodeMedianMs": 7.342341000000488,
"goMedianMs": 2.269,
"speedup": 3.235936976641907,
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"name": "100 MB CSV, 47 absent terms",
"nodeMedianMs": 238.52490300000045,
"goMedianMs": 125.287,
"speedup": 1.9038280348320291,
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"name": "50 MB CSV, sparse matches",
"nodeMedianMs": 487.7871639999994,
"goMedianMs": 345.63,
"speedup": 1.4112986835633463,
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"name": "22 MB text, 1.2 million replacements",
"nodeMedianMs": 386.68259599999965,
"goMedianMs": 225.984,
"speedup": 1.7111060783064271,
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
}
],
"samples": [
{
"run": 0,
"implementation": "node",
"runtime": "v24.14.1",
"name": "2 MB CSV, 47 absent terms",
"inputBytes": 1960000,
"outputBytes": 1960000,
"compileMs": 58.90463600000021,
"matchMs": 7.3038470000001325,
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 0,
"implementation": "node",
"runtime": "v24.14.1",
"name": "100 MB CSV, 47 absent terms",
"inputBytes": 100800000,
"outputBytes": 100800000,
"compileMs": 0.11717599999974482,
"matchMs": 219.60045600000012,
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 0,
"implementation": "node",
"runtime": "v24.14.1",
"name": "50 MB CSV, sparse matches",
"inputBytes": 50400041,
"outputBytes": 50400014,
"compileMs": 0.0605279999999766,
"matchMs": 487.4682039999998,
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 0,
"implementation": "node",
"runtime": "v24.14.1",
"name": "22 MB text, 1.2 million replacements",
"inputBytes": 21600000,
"outputBytes": 19800000,
"compileMs": 11.707684999999401,
"matchMs": 386.68259599999965,
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
},
{
"run": 0,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 3.67,
"inputBytes": 1960000,
"matchMs": 0.937,
"name": "2 MB CSV, 47 absent terms",
"outputBytes": 1960000,
"runtime": "go1.27.3",
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 0,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 5.627,
"inputBytes": 100800000,
"matchMs": 125.287,
"name": "100 MB CSV, 47 absent terms",
"outputBytes": 100800000,
"runtime": "go1.27.3",
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 0,
"implementation": "go",
"allocatedBytes": 100813472,
"compileMs": 3.384,
"inputBytes": 50400041,
"matchMs": 569.122,
"name": "50 MB CSV, sparse matches",
"outputBytes": 50400014,
"runtime": "go1.27.3",
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 0,
"implementation": "go",
"allocatedBytes": 70813664,
"compileMs": 4.515,
"inputBytes": 21600000,
"matchMs": 198.858,
"name": "22 MB text, 1.2 million replacements",
"outputBytes": 19800000,
"runtime": "go1.27.3",
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
},
{
"run": 1,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 7.926,
"inputBytes": 1960000,
"matchMs": 2.269,
"name": "2 MB CSV, 47 absent terms",
"outputBytes": 1960000,
"runtime": "go1.27.3",
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 1,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 5.468,
"inputBytes": 100800000,
"matchMs": 116.048,
"name": "100 MB CSV, 47 absent terms",
"outputBytes": 100800000,
"runtime": "go1.27.3",
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 1,
"implementation": "go",
"allocatedBytes": 100813456,
"compileMs": 3.416,
"inputBytes": 50400041,
"matchMs": 345.63,
"name": "50 MB CSV, sparse matches",
"outputBytes": 50400014,
"runtime": "go1.27.3",
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 1,
"implementation": "go",
"allocatedBytes": 70813536,
"compileMs": 6.587,
"inputBytes": 21600000,
"matchMs": 410.56,
"name": "22 MB text, 1.2 million replacements",
"outputBytes": 19800000,
"runtime": "go1.27.3",
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
},
{
"run": 1,
"implementation": "node",
"runtime": "v24.14.1",
"name": "2 MB CSV, 47 absent terms",
"inputBytes": 1960000,
"outputBytes": 1960000,
"compileMs": 50.957612000000154,
"matchMs": 7.342341000000488,
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 1,
"implementation": "node",
"runtime": "v24.14.1",
"name": "100 MB CSV, 47 absent terms",
"inputBytes": 100800000,
"outputBytes": 100800000,
"compileMs": 0.10650100000020757,
"matchMs": 409.96413699999994,
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 1,
"implementation": "node",
"runtime": "v24.14.1",
"name": "50 MB CSV, sparse matches",
"inputBytes": 50400041,
"outputBytes": 50400014,
"compileMs": 0.07650399999965884,
"matchMs": 569.306133,
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 1,
"implementation": "node",
"runtime": "v24.14.1",
"name": "22 MB text, 1.2 million replacements",
"inputBytes": 21600000,
"outputBytes": 19800000,
"compileMs": 13.740774999999303,
"matchMs": 379.46914800000013,
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
},
{
"run": 2,
"implementation": "node",
"runtime": "v24.14.1",
"name": "2 MB CSV, 47 absent terms",
"inputBytes": 1960000,
"outputBytes": 1960000,
"compileMs": 53.339249000000564,
"matchMs": 11.713882000000012,
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 2,
"implementation": "node",
"runtime": "v24.14.1",
"name": "100 MB CSV, 47 absent terms",
"inputBytes": 100800000,
"outputBytes": 100800000,
"compileMs": 0.24719000000004598,
"matchMs": 238.52490300000045,
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 2,
"implementation": "node",
"runtime": "v24.14.1",
"name": "50 MB CSV, sparse matches",
"inputBytes": 50400041,
"outputBytes": 50400014,
"compileMs": 0.07269300000007206,
"matchMs": 487.7871639999994,
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 2,
"implementation": "node",
"runtime": "v24.14.1",
"name": "22 MB text, 1.2 million replacements",
"inputBytes": 21600000,
"outputBytes": 19800000,
"compileMs": 39.50264599999991,
"matchMs": 615.7903429999997,
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
},
{
"run": 2,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 8.704,
"inputBytes": 1960000,
"matchMs": 2.35,
"name": "2 MB CSV, 47 absent terms",
"outputBytes": 1960000,
"runtime": "go1.27.3",
"sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd"
},
{
"run": 2,
"implementation": "go",
"allocatedBytes": 288,
"compileMs": 11.645,
"inputBytes": 100800000,
"matchMs": 125.617,
"name": "100 MB CSV, 47 absent terms",
"outputBytes": 100800000,
"runtime": "go1.27.3",
"sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48"
},
{
"run": 2,
"implementation": "go",
"allocatedBytes": 100850560,
"compileMs": 6.736,
"inputBytes": 50400041,
"matchMs": 289.984,
"name": "50 MB CSV, sparse matches",
"outputBytes": 50400014,
"runtime": "go1.27.3",
"sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0"
},
{
"run": 2,
"implementation": "go",
"allocatedBytes": 70818872,
"compileMs": 3.745,
"inputBytes": 21600000,
"matchMs": 225.984,
"name": "22 MB text, 1.2 million replacements",
"outputBytes": 19800000,
"runtime": "go1.27.3",
"sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249"
}
]
}