Skip to content

Commit c9ed5f5

Browse files
Remove the DefaultMaxDirectMemory configuration and let the JVM set its default, while still allowing it to be overridden by -XX:MaxDirectMemorySize
1 parent c1fc77b commit c9ed5f5

File tree

3 files changed

+13
-22
lines changed

3 files changed

+13
-22
lines changed

calculator/calculator.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ func (c Calculator) Calculate() ([]fmt.Stringer, error) {
4242
headRoom := c.headRoom()
4343

4444
directMemory := j.MaxDirectMemory
45-
if directMemory == nil {
46-
d := memory.DefaultMaxDirectMemory
47-
directMemory = &d
45+
if directMemory != nil {
4846
options = append(options, *directMemory)
4947
}
5048

@@ -69,12 +67,12 @@ func (c Calculator) Calculate() ([]fmt.Stringer, error) {
6967
options = append(options, *stack)
7068
}
7169

72-
overhead := c.overhead(headRoom, directMemory, metaspace, reservedCodeCache, stack)
70+
overhead := c.overhead(headRoom, metaspace, reservedCodeCache, stack)
7371
available := memory.Size(*c.TotalMemory)
7472

7573
if overhead > available {
76-
return nil, fmt.Errorf("required memory %s is greater than %s available for allocation: %s, %s, %s, %s x %d threads",
77-
overhead, available, directMemory, metaspace, reservedCodeCache, stack, *c.ThreadCount)
74+
return nil, fmt.Errorf("required memory %s is greater than %s available for allocation: %s, %s, %s x %d threads",
75+
overhead, available, metaspace, reservedCodeCache, stack, *c.ThreadCount)
7876
}
7977

8078
heap := j.MaxHeap
@@ -85,8 +83,8 @@ func (c Calculator) Calculate() ([]fmt.Stringer, error) {
8583
}
8684

8785
if overhead+memory.Size(*heap) > available {
88-
return nil, fmt.Errorf("required memory %s is greater than %s available for allocation: %s, %s, %s, %s, %s x %d threads",
89-
overhead+memory.Size(*heap), available, directMemory, heap, metaspace, reservedCodeCache, stack, *c.ThreadCount)
86+
return nil, fmt.Errorf("required memory %s is greater than %s available for allocation: %s, %s, %s, %s x %d threads",
87+
overhead+memory.Size(*heap), available, heap, metaspace, reservedCodeCache, stack, *c.ThreadCount)
9088
}
9189

9290
return options, nil
@@ -104,9 +102,8 @@ func (c Calculator) metaspace() memory.MaxMetaspace {
104102
return memory.MaxMetaspace((*c.LoadedClassCount * 5800) + 14000000)
105103
}
106104

107-
func (c Calculator) overhead(headRoom memory.Size, directMemory *memory.MaxDirectMemory, metaspace *memory.MaxMetaspace, reservedCodeCache *memory.ReservedCodeCache, stack *memory.Stack) memory.Size {
105+
func (c Calculator) overhead(headRoom memory.Size, metaspace *memory.MaxMetaspace, reservedCodeCache *memory.ReservedCodeCache, stack *memory.Stack) memory.Size {
108106
return headRoom +
109-
memory.Size(*directMemory) +
110107
memory.Size(*metaspace) +
111108
memory.Size(*reservedCodeCache) +
112109
memory.Size(int64(*stack)*int64(*c.ThreadCount))

calculator/calculator_test.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,10 @@ func TestCalculator(t *testing.T) {
4545

4646
it("uses default and calculated values", func() {
4747
g.Expect(c.Calculate()).To(ConsistOf(
48-
memory.DefaultMaxDirectMemory,
4948
memory.MaxMetaspace(19800000),
5049
memory.DefaultReservedCodeCache,
5150
memory.DefaultStack,
52-
memory.MaxHeap(231858240),
51+
memory.MaxHeap(242344000),
5352
))
5453
})
5554

@@ -58,10 +57,11 @@ func TestCalculator(t *testing.T) {
5857
c.JvmOptions.MaxDirectMemory = &d
5958

6059
g.Expect(c.Calculate()).To(ConsistOf(
60+
memory.MaxDirectMemory(1048576),
6161
memory.MaxMetaspace(19800000),
6262
memory.DefaultReservedCodeCache,
6363
memory.DefaultStack,
64-
memory.MaxHeap(241295424),
64+
memory.MaxHeap(242344000),
6565
))
6666
})
6767

@@ -70,10 +70,9 @@ func TestCalculator(t *testing.T) {
7070
c.JvmOptions.MaxMetaspace = &m
7171

7272
g.Expect(c.Calculate()).To(ConsistOf(
73-
memory.DefaultMaxDirectMemory,
7473
memory.DefaultReservedCodeCache,
7574
memory.DefaultStack,
76-
memory.MaxHeap(250609664),
75+
memory.MaxHeap(261095424),
7776
))
7877
})
7978

@@ -82,10 +81,9 @@ func TestCalculator(t *testing.T) {
8281
c.JvmOptions.ReservedCodeCache = &r
8382

8483
g.Expect(c.Calculate()).To(ConsistOf(
85-
memory.DefaultMaxDirectMemory,
8684
memory.MaxMetaspace(19800000),
8785
memory.DefaultStack,
88-
memory.MaxHeap(482467904),
86+
memory.MaxHeap(492953664),
8987
))
9088
})
9189

@@ -94,10 +92,9 @@ func TestCalculator(t *testing.T) {
9492
c.JvmOptions.Stack = &s
9593

9694
g.Expect(c.Calculate()).To(ConsistOf(
97-
memory.DefaultMaxDirectMemory,
9895
memory.MaxMetaspace(19800000),
9996
memory.DefaultReservedCodeCache,
100-
memory.MaxHeap(231858240),
97+
memory.MaxHeap(242344000),
10198
))
10299
})
103100

@@ -106,7 +103,6 @@ func TestCalculator(t *testing.T) {
106103
c.JvmOptions.MaxHeap = &h
107104

108105
g.Expect(c.Calculate()).To(ConsistOf(
109-
memory.DefaultMaxDirectMemory,
110106
memory.MaxMetaspace(19800000),
111107
memory.DefaultReservedCodeCache,
112108
memory.DefaultStack,

memory/max_direct_memory.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import (
2222
"strings"
2323
)
2424

25-
const DefaultMaxDirectMemory = MaxDirectMemory(10 * Mibi)
26-
2725
var maxDirectMemoryRE = regexp.MustCompile(fmt.Sprintf("^-XX:MaxDirectMemorySize=(%s)$", sizePattern))
2826

2927
type MaxDirectMemory Size

0 commit comments

Comments
 (0)