- Linux 5.11 (Kubuntu)
- Datenbank: PostgreSQL 14
- Backend: Python 3.9
- Benchmarking: Locust
- CPU: Intel i5 8400 6 x 2.8 GHz (4.2 GHz Boost)
- Hauptspeicher: 16GB DDR4
- Hintergrundspeicher: PCIe SSD (Lesen 3100 MB/s und Schreiben 1600 MB/s)
Aus Performancegründen werden die Ergebnisse der "Bundestags-Query" in einer materialisierten Sicht gehalten. Beim Einfügen von neuen Stimmen wird diese Sicht jeweils neu berechnet, sodass stets das aktuellste Ergebnis sichtbar ist. Die Neuberechnung der Mandate beansprucht ~85ms (4ms Planning time) unter Verwendung Aggregaten für die Erst- und Zweitstimmen.
Voraussetzungen: Python und gunicorn
Starten des backends:
cd backend
pip install -r requirements.txt
sh gunicorn.sh
Starten von locust:
cd benchmark
pip install -r requirements.txt
locust
Die Benchmarkingschnittstelle sollte unter http://localhost:8089 erreichbar sein. Zum Anpassen des Parameters t muss
locustfile.py geändert werden. n kann in der Webschnittstelle angepasst werden.
Wartezeit t = 10, Anzahl Terminals n = 100
Wartezeit t = 1, Anzahl Terminals n = 100
Wartezeit t = 1, Anzahl Terminals n = 500
Wartezeit t = 0.1, Anzahl Terminals n = 100
Wartezeit t = 1, Anzahl Terminals n = 100
Der Wahlkreis wird diesmal zufällig ausgewählt. Dadurch lassen sich jedoch keine Performanceunterschiede zur 2. Messreihe beobachten, weswegen bei vorherigen Messreihen ein fester Wahlkreis aus Gründen der Übersichtlichkeit gewählt wurde.