{ "measuredAt": "2026-11-03T19:56:40.313Z", "method": "Three fresh processes per version, alternating order; transform only, excludes compilation, I/O, child startup and fixture generation. Same-machine comparison against the Go implementation before regex optimization.", "comparison": [ { "name": "2 MB CSV, 47 absent terms", "beforeMs": 1.646, "afterMs": 2.285, "speedup": 0.7203501094091903, "beforeAllocatedBytes": 288, "afterAllocatedBytes": 288, "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "name": "100 MB CSV, 47 absent terms", "beforeMs": 101.618, "afterMs": 118.113, "speedup": 0.8603456012462641, "beforeAllocatedBytes": 288, "afterAllocatedBytes": 288, "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "name": "50 MB CSV, sparse matches", "beforeMs": 591.941, "afterMs": 269.905, "speedup": 2.1931457364628297, "beforeAllocatedBytes": 201666352, "afterAllocatedBytes": 100815288, "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "name": "22 MB text, 1.2 million replacements", "beforeMs": 394.294, "afterMs": 189.823, "speedup": 2.0771666236441315, "beforeAllocatedBytes": 114614896, "afterAllocatedBytes": 70813536, "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" } ], "samples": [ { "run": 0, "implementation": "before", "allocatedBytes": 288, "compileMs": 27.398, "inputBytes": 1960000, "matchMs": 3.181, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 0, "implementation": "before", "allocatedBytes": 288, "compileMs": 7.343, "inputBytes": 100800000, "matchMs": 101.618, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 0, "implementation": "before", "allocatedBytes": 201666352, "compileMs": 3.131, "inputBytes": 50400041, "matchMs": 591.941, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 0, "implementation": "before", "allocatedBytes": 114620200, "compileMs": 3.847, "inputBytes": 21600000, "matchMs": 394.294, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" }, { "run": 0, "implementation": "after", "allocatedBytes": 288, "compileMs": 7.654, "inputBytes": 1960000, "matchMs": 2.15, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 0, "implementation": "after", "allocatedBytes": 288, "compileMs": 3.392, "inputBytes": 100800000, "matchMs": 64.824, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 0, "implementation": "after", "allocatedBytes": 100815272, "compileMs": 4.167, "inputBytes": 50400041, "matchMs": 269.905, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 0, "implementation": "after", "allocatedBytes": 70813568, "compileMs": 9.856, "inputBytes": 21600000, "matchMs": 322.06, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" }, { "run": 1, "implementation": "after", "allocatedBytes": 288, "compileMs": 7.513, "inputBytes": 1960000, "matchMs": 2.285, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 1, "implementation": "after", "allocatedBytes": 288, "compileMs": 5.949, "inputBytes": 100800000, "matchMs": 153.087, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 1, "implementation": "after", "allocatedBytes": 100852328, "compileMs": 7.187, "inputBytes": 50400041, "matchMs": 329.242, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 1, "implementation": "after", "allocatedBytes": 70813536, "compileMs": 4.706, "inputBytes": 21600000, "matchMs": 189.823, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" }, { "run": 1, "implementation": "before", "allocatedBytes": 288, "compileMs": 4.075, "inputBytes": 1960000, "matchMs": 1.269, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 1, "implementation": "before", "allocatedBytes": 288, "compileMs": 5.607, "inputBytes": 100800000, "matchMs": 119.659, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 1, "implementation": "before", "allocatedBytes": 201634616, "compileMs": 5.299, "inputBytes": 50400041, "matchMs": 624.138, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 1, "implementation": "before", "allocatedBytes": 114614896, "compileMs": 3.318, "inputBytes": 21600000, "matchMs": 484.591, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" }, { "run": 2, "implementation": "before", "allocatedBytes": 288, "compileMs": 6.028, "inputBytes": 1960000, "matchMs": 1.646, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 2, "implementation": "before", "allocatedBytes": 272, "compileMs": 12.547, "inputBytes": 100800000, "matchMs": 100.802, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 2, "implementation": "before", "allocatedBytes": 201666400, "compileMs": 3.38, "inputBytes": 50400041, "matchMs": 589.404, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 2, "implementation": "before", "allocatedBytes": 114614880, "compileMs": 3.723, "inputBytes": 21600000, "matchMs": 358.638, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" }, { "run": 2, "implementation": "after", "allocatedBytes": 288, "compileMs": 7.414, "inputBytes": 1960000, "matchMs": 2.286, "name": "2 MB CSV, 47 absent terms", "outputBytes": 1960000, "runtime": "go1.27.3", "sha256": "b3882940c0ad7a4f8e1385dcd3e32122c721f26b90144bb820b542e394f379cd" }, { "run": 2, "implementation": "after", "allocatedBytes": 272, "compileMs": 5.508, "inputBytes": 100800000, "matchMs": 118.113, "name": "100 MB CSV, 47 absent terms", "outputBytes": 100800000, "runtime": "go1.27.3", "sha256": "fcccff214b1f6838f5d9345237f5252cd57e2263fc95640b2a3a5278156eec48" }, { "run": 2, "implementation": "after", "allocatedBytes": 100815288, "compileMs": 3.414, "inputBytes": 50400041, "matchMs": 247.259, "name": "50 MB CSV, sparse matches", "outputBytes": 50400014, "runtime": "go1.27.3", "sha256": "153ce777c4473651a70f3f2f830cac5930214f6b998c08094939646193b0f9f0" }, { "run": 2, "implementation": "after", "allocatedBytes": 70813536, "compileMs": 3.909, "inputBytes": 21600000, "matchMs": 162.45, "name": "22 MB text, 1.2 million replacements", "outputBytes": 19800000, "runtime": "go1.27.3", "sha256": "4e649aee83a6f15cb7178f725991ff5405affe013b0bba0b6eda18689c5c0249" } ] }