Ich habe den YourKit Profiler verwendet und ich versuche zu analysieren, warum diese Hashtable und es Mutex sind bis zu 196 KB beibehalten; Bild ist hier beigefügt. Ja, das ist ein Problem, da ich ungefähr 2000 Objekte habe, die 196 kb Daten behalten; Das ist ein potenzielles Problem. Dies ist ein Thread sicher env; Daher wird eine Hashtabelle anstelle von irgendetwas anderem verwendet.beibehalten Größen in der Hashtable und es ist Mutex
Antwort
Wenn ich ConcurrentHashMap oder eine andere Datenstruktur würde die beibehaltene Größe reduzieren?
Der beste Weg, um die Kapazität zu reduzieren, ist die Anfangskapazität explizit eingestellt (es ist der Parameter des Konstruktors).
Im Allgemeinen ist es besser, ConcurrentHashMap zu verwenden, da es eine abgestreifte Technik und leistungsfähiger als Hashtable verwendet.
Mutex ist Ihre Hashtable-Instanz in diesem Fall. Deshalb sehen Sie diese belegte Größe, weil Sie ein Objekt zweimal sehen.
Hashtable (wie viele andere hashmap, etc.) hat dynamische Größe. Hashtable.size - ist die tatsächliche Größe der reservierten internen Hash-Tabelle, im Gegensatz zu Hashtable.count, also der Anzahl der Elemente.
Der einzige Ort, an dem größere Teile belegt sind, ist Hashtable selbst, also gehen Sie in Hashtable.table und Sie werden sehen, was es ist.
- 1. MUTEX LOCK und MUTEX UNLOCK
- 2. Was ist der Unterschied zwischen KeyValuePair und Hashtable in .NET?
- 3. hashtable und Synchronisation in Java
- 4. Was ist der Unterschied zwischen einer Hashtable und Eigenschaften?
- 5. Ist es sicher, "throw" ohne Mutex in win32 zu verwenden?
- 6. Warum benötigt ein Mutex keinen Mutex (und dieser Mutex braucht einen Mutex ...)
- 7. Ist eine Hashtable als Wert einer anderen Hashtable empfehlenswert?
- 8. Was ist der entscheidende Unterschied zwischen Mutex und Zustandsvariablen?
- 9. Gibt es HashTable-Struktur in Wolfram Mathematica?
- 10. json_encode Float-Werte beibehalten, wie es ist
- 11. Ändern der Größen zwischen Layouts
- 12. Mutex-Implementierung und Signalisierung
- 13. Ist die HashTable in Java veraltet?
- 14. Ist dieses Wörterbuch oder Hashtable in Typescript?
- 15. Ist es sicher, pthread_create mit einem Mutex aufzurufen?
- 16. Verwenden HashSet und HashMap beide Hashtable? Oder Hashtable ist eine völlig andere Datenstruktur?
- 17. Hashtable und String Werte Fehler
- 18. Was ist ein "Split Mutex"?
- 19. Unterschied zwischen Wörterbuch und Hashtable
- 20. Java Hashmap/Hashtable und Nummerierung
- 21. Einfachster Mutex aller Zeiten. Funktioniert dieses Beispiel? Ist es threadsicher?
- 22. Speichern und Berechnen von Daten in Hashtable
- 23. Bezogen auf ArrayList Und Hashtable
- 24. PowerShell-Datentypen und Hashtable MCA_Decode
- 25. HTML5 srcset und Größen
- 26. Mutex sperren und entsperren Zeitunterschied
- 27. Unterschiede zwischen. Net Hashtable, Java Hashtable & HashMap
- 28. Iterieren und löschen von Hashtable in Java
- 29. Erweitern Immobilien in hashtable
- 30. libgdx - Umgang mit verschiedenen Bildschirmauflösungen und -größen?
Warum gehen Sie einfach nicht tiefer, um zu sehen, welche Elemente diese Größe haben? – egorlitvinenko
@egorlitvinenko Innerhalb des Mutex ist eine Tabelle enthalten, die sich auf etwa 80% des von der gesamten Hashtabelle belegten Platzes auswirkt. Wenn ich ConcurrentHashMap oder eine andere Datenstruktur würde die beibehaltene Größe reduzieren? – bhavs
auch die angegebene Größe ist 137, wo nur 15 Elemente in der Hashtable vorhanden sind, warum so? – bhavs