Skip to content

feat: add initial performance benchmarks and architecture analysis do… #10

feat: add initial performance benchmarks and architecture analysis do…

feat: add initial performance benchmarks and architecture analysis do… #10

Workflow file for this run

name: ProXPL Real Benchmarks
on:
workflow_dispatch:
push:
branches: [ main ]
jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y build-essential time openjdk-17-jdk
- name: Setup Rust
uses: actions/setup-rust@v1
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Build ProXPL
run: |
make || true
- name: Build C
run: |
gcc benchmarks/fib/fib.c -O3 -o fib_c
- name: Build C++
run: |
g++ benchmarks/fib/fib.cpp -O3 -o fib_cpp
- name: Build Rust
run: |
rustc benchmarks/fib/fib.rs -O -o fib_rs
- name: Build Go
run: |
go build -o fib_go benchmarks/fib/fib.go
- name: Build Java
run: |
javac benchmarks/fib/fib.java
- name: Run benchmarks
run: |
echo "LANGUAGE,REAL_TIME_SEC" > results.csv
/usr/bin/time -f "C,%e" ./fib_c 2>> results.csv
/usr/bin/time -f "C++,%e" ./fib_cpp 2>> results.csv
/usr/bin/time -f "Rust,%e" ./fib_rs 2>> results.csv
/usr/bin/time -f "Go,%e" ./fib_go 2>> results.csv
/usr/bin/time -f "Java,%e" java Fib 2>> results.csv
/usr/bin/time -f "ProXPL,%e" ./prox benchmarks/fib/fib.prox 2>> results.csv || true
cat results.csv
- name: Upload benchmark results
uses: actions/upload-artifact@v4
with:
name: proxpl-benchmark-results
path: results.csv