A simple benchmark to test the scaling performance of xz on a UR-DP1000 machine vs a SiFive HiFive P550. The benchmarks covers: single thread (1 core) and multi-threading (4 and 8 cores). It uses the compression level preset of -6 — this is the tool's default and is supposed to provide the best trade-off between compression ratio and memory usage.
I used this ISO as the target (and renamed to Fedora-Workstation-43.iso): Fedora-Workstation-Live-43-1.6.x86_64.iso. The script used to do the benchmark is appended at the end.
This is a crude summary from the numbers below.
--- Benchmarking xz Scaling on RISC-V --- Target: Fedora-Workstation-43.iso (Level -6) -------------------------------------------------------- Threads | Real Time | User Time | CPU % | RAM (est) -------------------------------------------------------- 1 | 2426.15s | 2394.97s | 98% | ~94MB 4 | 641.35s | 2505.66s | 391% | ~376MB 8 | 690.66s | 2698.18s | 391% | ~752MB --------------------------------------------------------
--- Benchmarking xz Scaling on RISC-V --- Target: Fedora-Workstation-43.iso (Level -6) -------------------------------------------------------- Threads | Real Time | User Time | CPU % | RAM (est) -------------------------------------------------------- 1 | 1675.58s | 1673.39s | 99% | ~94MB 4 | 444.05s | 1764.64s | 397% | ~376MB 8 | 234.74s | 1816.86s | 774% | ~752MB --------------------------------------------------------
#!/bin/bash # Settings ISO_FILE="Fedora-Workstation-43.iso" LEVEL="-6" THREADS=(1 4 8) # Check for file if [ ! -f "$ISO_FILE" ]; then echo "Error: $ISO_FILE not found." exit 1 fi echo "--- Benchmarking xz Scaling on RISC-V ---" echo "Target: $ISO_FILE (Level $LEVEL)" echo "--------------------------------------------------------" echo "Threads | Real Time | User Time | CPU % | RAM (est)" echo "--------------------------------------------------------" for T in "${THREADS[@]}"; do RAM_EST=$((T * 94)) /usr/bin/time -f " $T | %es | %Us | %P | ~${RAM_EST}MB" \ xz $LEVEL -T$T -c "$ISO_FILE" > /dev/null done echo "--------------------------------------------------------" echo "Done. No files were written to disk."