91 lines
No EOL
3.9 KiB
Markdown
91 lines
No EOL
3.9 KiB
Markdown
## n40_time_measurement – Experiment zur präzisen Zeitmessung
|
||
|
||
### Überblick
|
||
Dieses Repository dokumentiert das Experiment **n40_time_measurement**. Ziel ist die präzise Messung und Aggregation von Kernel-Ereignissen mit Schwerpunkt auf Stabilität und Verlässlichkeit der ermittelten Metriken.
|
||
|
||
**Link zum Artikel:** [https://donau2space.de/tag-126-1251-wolkig-ueber-passau-und-mein-n40-bekommt-heute-drei-neue-harte-punkte/](https://donau2space.de/tag-126-1251-wolkig-ueber-passau-und-mein-n40-bekommt-heute-drei-neue-harte-punkte/)
|
||
**Git Repository:** [https://git.donau2space.de/Mika/n40_time_measurement](https://git.donau2space.de/Mika/n40_time_measurement)
|
||
|
||
### Hinweis
|
||
Alle Inhalte wurden per KI generiert.
|
||
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich und auf eigenes Risiko.
|
||
Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
|
||
|
||
### Inhalt des Repositories
|
||
|
||
#### 1. clocksource_switch_analysis
|
||
- **Art:** python_script
|
||
- **Zielumgebung:** Linux Userspace
|
||
- **Sprachen:** Python
|
||
- **Zweck:** Analyse und Aggregation von 'clocksource_switch'-Ereignissen aus Rohdaten.
|
||
- **API-Funktion:**
|
||
- **aggregate_clocksource_data(raw_data)** → Gibt `aggregated_data` zurück.
|
||
- **Datenstruktur:** `aggregated_data` (JSON) mit Feldern:
|
||
- mean
|
||
- p50
|
||
- p95
|
||
- p99
|
||
- retry_free_rate
|
||
|
||
#### 2. sanity_check_tool
|
||
- **Art:** python_script
|
||
- **Zielumgebung:** Linux Userspace
|
||
- **Sprachen:** Python
|
||
- **Zweck:** Durchführung von Sanity-Checks auf den gemessenen Ereignissen.
|
||
- **API-Funktion:**
|
||
- **perform_sanity_check(run_summary)** → Gibt `sanity_results` zurück.
|
||
- **Datenstruktur:** `sanity_results` (JSON) mit Feldern:
|
||
- missing_write_pairs
|
||
- broken_corr_ids
|
||
- empty_fields
|
||
|
||
#### 3. results_visualization
|
||
- **Art:** web_ui
|
||
- **Zielumgebung:** Web
|
||
- **Sprachen:** HTML, CSS, JavaScript
|
||
- **Zweck:** Webbasierte Visualisierung der aggregierten Ergebnisse.
|
||
- **Routen:**
|
||
- **GET /results** – Lädt die aggregierten Ergebnisse zur Anzeige.
|
||
- **CSS-Komponenten:** chart-style
|
||
- **JavaScript-Module:** chart-library
|
||
|
||
### Voraussetzungen (Webserver/DB)
|
||
- Installierter Webserver (z. B. Nginx oder Apache)
|
||
- Unterstützung für statische HTML-, CSS- und JS-Dateien
|
||
- Optional: Backend-Endpunkt zur Bereitstellung der aggregierten JSON-Ergebnisse
|
||
|
||
### Starten der Anwendung
|
||
1. Webserver starten und `results_visualization`-Verzeichnis bereitstellen.
|
||
2. Browser öffnen und auf `/results` zugreifen, um die visuellen Darstellungen zu laden.
|
||
|
||
### Installation & Nutzung
|
||
Da mehrere Python-Komponenten vorhanden sind, sollte eine saubere virtuelle Umgebung genutzt werden:
|
||
|
||
1. Python ≥ 3.8 installieren.
|
||
2. Virtuelle Umgebung einrichten:
|
||
`python3 -m venv venv && source venv/bin/activate`
|
||
3. Abhängigkeiten installieren:
|
||
`pip install -r requirements.txt`
|
||
4. Analyseskript ausführen:
|
||
`python clocksource_switch_analysis.py input_data.json`
|
||
5. Sanity-Check durchführen:
|
||
`python sanity_check_tool.py aggregated_data.json`
|
||
|
||
### Typische Use-Cases
|
||
- Untersuchung der Stabilität von Clocksource-Mechanismen.
|
||
- Validierung von Kernel-Ereignisdaten mittels Sanity-Checks.
|
||
- Visualisierung und Vergleich mehrerer Messläufe.
|
||
- Entwicklung weiterführender Analysemetriken auf Basis strukturierter Aggregationsdaten.
|
||
|
||
### Struktur & Erweiterbarkeit
|
||
- **Analyse:** Kernlogik in `clocksource_switch_analysis`.
|
||
- **Validierung:** Separate Prüfung der Datenintegrität über `sanity_check_tool`.
|
||
- **Präsentation:** Webbasierte Darstellung in `results_visualization`.
|
||
|
||
Zukünftige Erweiterungen können zusätzliche Eventtypen oder neue Visualisierungsoptionen integrieren.
|
||
|
||
### Lizenz
|
||
Dieses Repository steht unter der **MIT-Lizenz**. Nutzung und Weiterverbreitung sind unter Einhaltung der Lizenzbedingungen gestattet.
|
||
|
||
---
|
||
Automatisch generierte technische Dokumentation ohne Gewähr. |