Skip to content

Simplify archetype graph to a single list of neighbors per node #1524

Simplify archetype graph to a single list of neighbors per node

Simplify archetype graph to a single list of neighbors per node #1524

Workflow file for this run

name: Benchmarks
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
internal:
name: Internals
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Run internal benchmarks
run: |
go test -benchmem -run=^$ -bench ^.*$ ./...
- name: Run Arche benchmarks
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./arche/...
internal_tiny:
name: Internals (tiny)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Run internal benchmarks (tiny)
run: |
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./...
- name: Run Arche benchmarks (tiny)
run: |
cd benchmark
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./arche/...
relations:
name: Entity relations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark entity relations
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./competition/relations/...
relations_tiny:
name: Entity relations (tiny)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark entity relations (tiny)
run: |
cd benchmark
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./competition/relations/...
other_methods:
name: vs. Array of Structs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark vs. Array of Structs
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./competition/array_of_structs/...
competition:
name: ECS competition
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark Pos/Vel
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./competition/pos_vel/... --count 10
- name: Benchmark Access 10 Components
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./competition/many_components/... --count 10
- name: Benchmark Add/Remove Components
run: |
cd benchmark
go test -benchmem -run=^$ -bench ^.*$ ./competition/add_remove/... --count 10
competition_tiny:
name: ECS competition (tiny)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark Pos/Vel (tiny)
run: |
cd benchmark
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./competition/pos_vel/... --count 5
- name: Benchmark Access 10 Components (tiny)
run: |
cd benchmark
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./competition/many_components/... --count 5
- name: Benchmark Add/Remove Components (tiny)
run: |
cd benchmark
go test -tags tiny -benchmem -run=^$ -bench ^.*$ ./competition/add_remove/... --count 5
tables:
name: Benchmark Tables
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22.x'
- name: Install dependencies
run: go get .
- name: Benchmark tables
run: |
go run ./benchmark/table | tee BENCHMARKS.md
- name: Archive benchmark results
uses: actions/upload-artifact@v4
with:
name: BENCHMARKS.md
path: BENCHMARKS.md