增加堆内存的可能原因

问题描述

我的服务面临堆使用问题。大多数时候它会达到 70-80%,然后下降。 我进行了堆转储并遇到了以下问题:

distrupter.RingBuffer

distrupter.RingBuffer

zip.ZipFile

在我们的服务中,我能想到的可能原因是缓存实现。我们正在使用“scheduledexecutorservice”来安排缓存刷新。

 private final scheduledexecutorservice scheduler = Executors.newSingleThreadScheduledExecutor();

 private void createCache(@NonNull final CacheKey cacheKey,@NonNull final TimetoLive timetoLive) {
        scheduler.scheduleWithFixedDelay(
            new Runnable() {
                @Override
                public void run() {
                    dataLoadingCache.refresh(cacheKey);
                }
            },timetoLive.getTimetoLiveValue(),timetoLive.getTimeUnit());
    }

现在在许多文档中,我看到堆使用的可能原因是 scheduledexecutorservice 的使用;喜欢 - https://nilesh-mahajan.medium.com/java-concurrency-pitfalls-of-scheduledexecutorservice-d7298b66e59f

需要建议来调试问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)