Hashtabelle: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | *Die Bash verwaltet eine Hash-Tabelle, in der sie sich automatisch alle bereits aufgerufenen externen Kommandos zusammen mit deren absolutem Pfad merkt. | + | * Die Bash verwaltet eine Hash-Tabelle, in der sie sich automatisch alle bereits aufgerufenen externen Kommandos zusammen mit deren absolutem Pfad merkt. |
| − | *Wenn ein externes Kommando aufgerufen werden soll, prüft die Bash zuerst, ob dieses Kommando in der | + | * Wenn ein externes Kommando aufgerufen werden soll, prüft die Bash zuerst, ob dieses Kommando in der Hashtabelle zu finden ist. |
| − | *Falls ja, verwendet sie den dort gespeicherten absoluten Pfad. | + | * Falls ja, verwendet sie den dort gespeicherten absoluten Pfad. |
| − | *Anderenfalls durchsucht sie die in PATH genannten Verzeichnisse nach dem Kommando. | + | * Anderenfalls durchsucht sie die in PATH genannten Verzeichnisse nach dem Kommando. |
| − | *Wurde es gefunden, ergänzt die Bash diesen Treffer in der | + | * Wurde es gefunden, ergänzt die Bash diesen Treffer in der Hashtabelle. |
| − | = | + | |
| + | =Anzeigen= | ||
| + | |||
*hash | *hash | ||
hits command | hits command | ||
| Zeile 10: | Zeile 12: | ||
1 /usr/bin/id | 1 /usr/bin/id | ||
2 /usr/bin/sudo | 2 /usr/bin/sudo | ||
| + | =Löschen= | ||
| + | |||
| + | *hash -r | ||
| + | |||
| + | = Vorteile der Hashtabellen generell = | ||
| + | |||
| + | * Hashtabellen ermöglichen schnellen Zugriff auf Daten durch die Verwendung einer Hash-Funktion. | ||
| + | * Einfügungen und Löschungen von Schlüssel-Wert-Paaren erfolgen in der Regel in konstanter Zeit. | ||
| + | * Hashtabellen sind vielseitig einsetzbar und anpassbar an verschiedene Programmieranforderungen. | ||
| + | * Die durchschnittliche Zeitkomplexität für Schlüsseloperationen beträgt O(1). | ||
| + | * Sie nutzen vergleichsweise wenig Speicher, da sie keinen zusätzlichen Overhead verwenden. | ||
| + | * Ein Lastenausgleich sorgt für eine gleichmäßige Verteilung von Daten. | ||
| + | * Hashtabellen können dynamisch wachsen oder schrumpfen, um die Leistung beizubehalten. | ||
| + | * Kollisionen werden durch Mechanismen wie Verketten oder offenes Adressieren gelöst. | ||
| + | * Die Leistung von Hashtabellen ist in der Regel vorhersehbar und konsistent. | ||
| + | * Sie finden Anwendung in Hochleistungsanwendungen wie Datenbankindizierung und Caching-Systemen. | ||
Aktuelle Version vom 31. Oktober 2023, 09:01 Uhr
- Die Bash verwaltet eine Hash-Tabelle, in der sie sich automatisch alle bereits aufgerufenen externen Kommandos zusammen mit deren absolutem Pfad merkt.
- Wenn ein externes Kommando aufgerufen werden soll, prüft die Bash zuerst, ob dieses Kommando in der Hashtabelle zu finden ist.
- Falls ja, verwendet sie den dort gespeicherten absoluten Pfad.
- Anderenfalls durchsucht sie die in PATH genannten Verzeichnisse nach dem Kommando.
- Wurde es gefunden, ergänzt die Bash diesen Treffer in der Hashtabelle.
Anzeigen
- hash
hits command 1 /usr/bin/ls 1 /usr/bin/id 2 /usr/bin/sudo
Löschen
- hash -r
Vorteile der Hashtabellen generell
- Hashtabellen ermöglichen schnellen Zugriff auf Daten durch die Verwendung einer Hash-Funktion.
- Einfügungen und Löschungen von Schlüssel-Wert-Paaren erfolgen in der Regel in konstanter Zeit.
- Hashtabellen sind vielseitig einsetzbar und anpassbar an verschiedene Programmieranforderungen.
- Die durchschnittliche Zeitkomplexität für Schlüsseloperationen beträgt O(1).
- Sie nutzen vergleichsweise wenig Speicher, da sie keinen zusätzlichen Overhead verwenden.
- Ein Lastenausgleich sorgt für eine gleichmäßige Verteilung von Daten.
- Hashtabellen können dynamisch wachsen oder schrumpfen, um die Leistung beizubehalten.
- Kollisionen werden durch Mechanismen wie Verketten oder offenes Adressieren gelöst.
- Die Leistung von Hashtabellen ist in der Regel vorhersehbar und konsistent.
- Sie finden Anwendung in Hochleistungsanwendungen wie Datenbankindizierung und Caching-Systemen.