mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-27 06:43:19 +08:00
Indexed reads of a non-ASCII string (charCodeAt, length) become loads once the runtime holds its UTF-16 units, but emitted code read the published scan receiver only where runtime state is ordinary global storage, so worker executables called into the runtime for every read. On ELF targets their thread-locals live in the executable's static TLS block, so the receiver is now declared thread-local there and read with one thread-pointer-relative load. The unit array was also limited to receivers of 2^20 units; source texts of several megabytes, which scanners read in full, now get one too. Adds the unicode-lexer runtime benchmark workload: a lexer over a 2.7M-unit module whose comments and strings are in several languages.
291 lines
5.2 KiB
JSON
291 lines
5.2 KiB
JSON
{
|
|
"workloads": [
|
|
{
|
|
"name": "json-records",
|
|
"entry": "workloads/json-records.ts",
|
|
"args": [
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"name": "regex-logs",
|
|
"entry": "workloads/regex-logs.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "ast-interp",
|
|
"entry": "workloads/ast-interp.ts",
|
|
"args": [
|
|
"5"
|
|
]
|
|
},
|
|
{
|
|
"name": "records-sort",
|
|
"entry": "workloads/records-sort.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "template-render",
|
|
"entry": "workloads/template-render.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "functional-pipeline",
|
|
"entry": "workloads/functional-pipeline.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "async-pipeline",
|
|
"entry": "workloads/async-pipeline.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "word-graph",
|
|
"entry": "workloads/word-graph.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"name": "alloc-trees",
|
|
"entry": "workloads/alloc-trees.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "cyclic-graphs",
|
|
"entry": "workloads/cyclic-graphs.ts",
|
|
"args": [
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"name": "numeric-kernels",
|
|
"entry": "workloads/numeric-kernels.ts",
|
|
"args": [
|
|
"0.5"
|
|
]
|
|
},
|
|
{
|
|
"name": "typed-array-scan",
|
|
"entry": "workloads/typed-array-scan.ts",
|
|
"args": [
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"name": "typed-array-scan-workers",
|
|
"entry": "workloads/typed-array-scan-workers.ts",
|
|
"args": [
|
|
"3"
|
|
]
|
|
},
|
|
{
|
|
"name": "intern-table",
|
|
"entry": "workloads/intern-table.ts",
|
|
"args": [
|
|
"table",
|
|
"8",
|
|
"100000"
|
|
]
|
|
},
|
|
{
|
|
"name": "intern-table-map",
|
|
"entry": "workloads/intern-table.ts",
|
|
"args": [
|
|
"map",
|
|
"8",
|
|
"100000"
|
|
]
|
|
},
|
|
{
|
|
"name": "intern-table-1",
|
|
"entry": "workloads/intern-table.ts",
|
|
"args": [
|
|
"table",
|
|
"1",
|
|
"100000"
|
|
]
|
|
},
|
|
{
|
|
"name": "intern-table-map-1",
|
|
"entry": "workloads/intern-table.ts",
|
|
"args": [
|
|
"map",
|
|
"1",
|
|
"100000"
|
|
]
|
|
},
|
|
{
|
|
"name": "thread-slots",
|
|
"entry": "workloads/thread-slots.ts",
|
|
"args": [
|
|
"slots",
|
|
"8",
|
|
"50000",
|
|
"20"
|
|
]
|
|
},
|
|
{
|
|
"name": "thread-slots-cache",
|
|
"entry": "workloads/thread-slots.ts",
|
|
"args": [
|
|
"cache",
|
|
"8",
|
|
"50000",
|
|
"20"
|
|
]
|
|
},
|
|
{
|
|
"name": "channel-messages",
|
|
"entry": "workloads/channel-messages.ts",
|
|
"args": [
|
|
"200000"
|
|
]
|
|
},
|
|
{
|
|
"name": "atomics-contended",
|
|
"entry": "workloads/atomics-contended.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"name": "value-objects",
|
|
"entry": "workloads/value-objects.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"name": "value-records",
|
|
"entry": "workloads/value-records.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "region-builds",
|
|
"entry": "workloads/region-builds.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "optional-fields",
|
|
"entry": "workloads/optional-fields.ts",
|
|
"args": [
|
|
"10"
|
|
]
|
|
},
|
|
{
|
|
"name": "record-boundaries",
|
|
"entry": "workloads/record-boundaries.ts",
|
|
"args": [
|
|
"8"
|
|
]
|
|
},
|
|
{
|
|
"name": "number-maps",
|
|
"entry": "workloads/number-maps.ts",
|
|
"args": [
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"name": "published-graphs",
|
|
"entry": "workloads/published-graphs.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "validate-errors",
|
|
"entry": "workloads/validate-errors.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "csv-numbers",
|
|
"entry": "workloads/csv-numbers.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "log-lines",
|
|
"entry": "workloads/log-lines.ts",
|
|
"args": [
|
|
"4"
|
|
]
|
|
},
|
|
{
|
|
"name": "unicode-lexer",
|
|
"entry": "workloads/unicode-lexer.ts",
|
|
"args": [
|
|
"1"
|
|
]
|
|
},
|
|
{
|
|
"name": "log-summary",
|
|
"entry": "../builds/log-summary/main.ts",
|
|
"input": "log-summary",
|
|
"args": [
|
|
"{input}",
|
|
"--min-status",
|
|
"200",
|
|
"--limit",
|
|
"12"
|
|
]
|
|
},
|
|
{
|
|
"name": "inventory-report",
|
|
"entry": "../builds/inventory-report/main.ts",
|
|
"input": "inventory-report",
|
|
"args": [
|
|
"{input}"
|
|
]
|
|
},
|
|
{
|
|
"name": "cli-config",
|
|
"entry": "workloads/cli-config.ts",
|
|
"input": "cli-config",
|
|
"launches": 20,
|
|
"args": [
|
|
"{input}",
|
|
"--env",
|
|
"production",
|
|
"--max-wave",
|
|
"12"
|
|
]
|
|
},
|
|
{
|
|
"name": "http-api",
|
|
"kind": "server",
|
|
"entry": "workloads/http-api.ts",
|
|
"args": [],
|
|
"client": {
|
|
"script": "clients/http-load.mjs",
|
|
"args": [
|
|
"--connections=64",
|
|
"--threads=2",
|
|
"--warmup=4000",
|
|
"--requests=40000"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|