mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-28 06:53:42 +08:00
A candidate release now also runs a pass once the live cycle-headered count has grown by 4096 objects since the last pass. A dead graph is usually reachable from one candidate (its root), so the candidate count alone let a few hundred dead graphs pile up before a pass, which then walked them after they had left the cache. markGray records the objects it grays and counts the ones still externally referenced after the trial decrements. When none is, every gray object is garbage, so the pass whitens the recorded set and skips scan. markGray also records each edge it skips into an older generation, so a restricted pass pins those targets without tracing the white set a second time. Adds the cyclic-graphs runtime benchmark and corpus programs 5700 and 5701.
193 lines
3.5 KiB
JSON
193 lines
3.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": "value-objects",
|
|
"entry": "workloads/value-objects.ts",
|
|
"args": [
|
|
"2"
|
|
]
|
|
},
|
|
{
|
|
"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": "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"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|