Najbardziej wydajny rozmiar początkowy dla StringBuilder?

Piszę dużo rzeczy, aby zalogować się do serii i zoptymalizować ścieżkę danych. Buduję tekst dziennika za pomocąStringBuilder. Jaka byłaby najbardziej wydajna pojemność początkowa, jeśli chodzi o zarządzanie pamięcią, aby działała dobrze niezależnie od JVM? Celem jest prawie całkowite uniknięcie realokacji, która powinna być objęta początkową pojemnością około 80-100. Ale chcę też zmarnować tak mało bajtów, jak to tylko możliwe, ponieważ instancja StringBuilder może się zawiesić w buforze i zmarnować bajty.

Zdaję sobie sprawę, że zależy to od JVM, ale powinna istnieć jakaś wartość, która zmarnowałaby najmniej bajtów, bez względu na JVM, rodzaj „najmniejszego wspólnego mianownika”. Obecnie używam128-16, gdzie 128 jest ładną liczbą okrągłą, a odejmowanie służy do przydzielania narzutów. Można to również uznać za przypadek „przedwczesnej optymalizacji”, ale ponieważ odpowiedź, której szukam, to „zasada kciuka”, wiedząc, że będzie ona przydatna również w przyszłości.

Nie oczekuję odpowiedzi „moje najlepsze odgadnięcie” (moja własna odpowiedź jest już taka), mam nadzieję, że ktoś już to zbadał i może podzielić się odpowiedzią opartą na wiedzy.

questionAnswers(2)

yourAnswerToTheQuestion