Skip to content

Commit 974b759

Browse files
committed
Use memoized Runtime.availableProcessors to get processor count
1 parent 3c66114 commit 974b759

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

core/trino-main/src/main/java/io/trino/memory/LocalMemoryManager.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,23 @@
1414
package io.trino.memory;
1515

1616
import com.google.common.annotations.VisibleForTesting;
17+
import com.google.common.base.Supplier;
18+
import com.google.common.base.Suppliers;
1719
import com.google.inject.Inject;
1820
import io.airlift.units.DataSize;
1921

20-
import java.lang.management.ManagementFactory;
21-
import java.lang.management.OperatingSystemMXBean;
22+
import java.util.concurrent.TimeUnit;
2223

2324
import static com.google.common.base.Verify.verify;
2425
import static java.lang.String.format;
2526

2627
public final class LocalMemoryManager
2728
{
28-
private static final OperatingSystemMXBean OPERATING_SYSTEM_MX_BEAN = ManagementFactory.getOperatingSystemMXBean();
29-
3029
private final MemoryPool memoryPool;
3130

31+
private static final Supplier<Integer> AVAILABLE_PROCESSORS = Suppliers
32+
.memoizeWithExpiration(Runtime.getRuntime()::availableProcessors, 30, TimeUnit.SECONDS);
33+
3234
@Inject
3335
public LocalMemoryManager(NodeMemoryConfig config)
3436
{
@@ -61,7 +63,7 @@ private void validateHeapHeadroom(NodeMemoryConfig config, long availableMemory)
6163

6264
public MemoryInfo getInfo()
6365
{
64-
return new MemoryInfo(OPERATING_SYSTEM_MX_BEAN.getAvailableProcessors(), memoryPool.getInfo());
66+
return new MemoryInfo(AVAILABLE_PROCESSORS.get(), memoryPool.getInfo());
6567
}
6668

6769
public MemoryPool getMemoryPool()

0 commit comments

Comments
 (0)