Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

???Hash-Maps voll langsam und bugbehaftet???

Empfohlene Antworten

Veröffentlicht

Wie der Titel schon sagt. Ich hab mal probiert, wie schnell ich eine eigene String-Hashmap hinbekomme und bin WESENTLICH schneller als die CMapStringToString, obwohl ich sogar noch eine Multimap eingebaut habe (bei Tests bis zu 2500x schneller, was mich sehr stutzig gemacht hat). Bei kleinen Umfängen ist sie ordentlich einsetzbar, aber sobald man mal mit über 20000 Einträgen arbeitet, fängt die CMapStringToString mehr und mehr an zu kriechen - quadratisch in der Dauer steigend zum Umfang, obwohl ich sie mit einer festen Hashmap-Größe vorbelege (Ein Blick auf den Speicher hat aber gezeigt, daß sie trotzdem ständig reorganisiert wird)! Immerhin arbeitet sie ansonsten zuverlässig.

Die hash_multimap (std) ist erheblich schneller (wenn auch noch lange nicht so schnell wie meine Hash-Implementierung), aber irgendwie ziemlich empfindlich. Die "normale" Benutzung (über map[Key]=Value; führt komischerweise zu einem sehr seltsamen Verhalten, genauso wie die map.insert(pair(Key,Value)). Nur eine Variante von .find hat funktioniert. Nach einer kleinen Anzahl Einträge wird die Map nicht mehr erweitert und die Funktionsaufrufe landen im Nirvana ohne jegliche Fehlermeldung! Abfragen zeigen dann immer wieder auf den gleichen Wert. (das kann so doch nicht im Sinne des Erfinders sein?)

Ich jedenfalls habe mich entschieden lieber meine Version, die wenigstens ordentlich funktioniert zu nehmen, anstatt die bugbehafteten Standard-Hashmaps.

Meine Frage: Ist es tatsächlich so, daß die Standard-Hash-Klassen einfach extrem mies programmiert sind und ich das nur noch nicht mitbekommen habe?

Nur eine Variante von .find hat funktioniert.

Kannst du dafür ein Beispiel geben?

Meine Frage: Ist es tatsächlich so, daß die Standard-Hash-Klassen einfach extrem mies programmiert sind und ich das nur noch nicht mitbekommen habe?

Da der Standard nicht vorschreibt, wie die Containerklassen zu implementieren sind, kann man da keine pauschale Antwort geben. Welche STL-Implementierung benutzt du?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.