- mówi doktor Guava
Ustawia minimalny całkowity rozmiar dla wewnętrznych tabel skrótów. Na przykład, jeśli początkowa pojemność wynosi 60, a poziom współbieżności wynosi 8, tworzonych jest osiem segmentów, z których każdy ma tabelę skrótów o rozmiarze osiem. Zapewnienie dostatecznie dużego oszacowania w czasie budowy pozwala uniknąć późniejszych kosztownych operacji zmiany rozmiaru, ale ustawienie tej wartości niepotrzebnie powoduje marnotrawstwo pamięci.
Więc jaki jest sens używania initialCapacity
, jeśli mamy zamiar utworzyć 8 tabel z 8 wierszami? Czy to jakiś błąd w dokumentacji?
1 odpowiedź
Pod maską pamięć podręczna Guavy jest zaimplementowana jako wiele tablic haszujących, każda z dedykowaną blokadą, więc współbieżne zapisy nie wszystkie rywalizują na pojedynczej blokadzie.
initialCapacity
odnosi się do pojemności całej pamięci podręcznej, a nie poszczególnych tabel bazowych. 8 tabel każdy o rozmiarze 8 może pomieścić razem do 64 elementów, więc dokumentacja jest poprawna.
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].
initialCapacity
jest uniknięcie zmiany rozmiaru podczas umieszczania tam rzeczy.