mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-22 05:59:31 +08:00
Atomics operations on 8-, 16- and 32-bit integer arrays are sequentially consistent atomic instructions on the element, and no longer take the process-wide shared-memory lock. Other reads and writes of shared storage are relaxed atomic accesses: element reads and writes access the element, and copies, fills, conversions, searches and sorts read shared bytes into a private copy and write back only the range they change, so concurrent accesses to the same bytes are free of data races. Non-shared storage keeps its plain memory accesses. Atomics.wait and Atomics.notify queue waiters in buckets chosen by location, each with its own lock and condition variable, so waiting threads no longer serialize other Atomics. Atomics.store answers +0 for a value that truncates to -0, as Node does. The shared storage runtime test also runs under ThreadSanitizer.
250 lines
4.5 KiB
JSON
250 lines
4.5 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": "atomics-contended",
|
|
"entry": "workloads/atomics-contended.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"name": "value-objects",
|
|
"entry": "workloads/value-objects.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"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": "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"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|