Benchmarks for various language engineering tools, comparing the same statemachine DSL implemented in Langium (TypeScript), Fastbelt (Go), Xtext (Java), and AnyText (C#).
- Node.js 22+ and npm
- Go, version per fastbelt/statemachine/go.mod
- .NET SDK 9+ and the
anytextgenCLI (installed viadotnet tool install --global NMF-AnyTextGen) - JDK 21+ and Maven
dotnet-trace(dotnet tool install --global dotnet-trace), forbench:anytext:alloconly
Run npm install once before anything else.
The package.json supplies an additional argument for the workspace size (in MB) for these scripts:
npm run bench:langium
npm run bench:anytext
npm run bench:xtext
npm run bench:fastbelt
The package.json supplies an additional argument for the file size (in KB) for these scripts:
npm run bench:langium:incremental
npm run bench:anytext:incremental
npm run bench:xtext:incremental
npm run bench:fastbelt:incremental
The package.json supplies an additional argument for the workspace size (in MB) for these scripts:
npm run bench:xtext:alloc
npm run bench:langium:alloc
npm run bench:fastbelt:alloc
npm run bench:anytext:alloc