当前位置: 首页 > 面试题库 >

核心API的System.gc()调用

颜新
2023-03-14
问题内容

你们中的某些人可能知道某些核心Java API对System.gc()进行了显式调用。我知道发生这种情况的两种情况:

  1. 蔚来 我相信这样做是为了在系统耗尽“直接”内存时对直接ByteBuffer进行一些清理。
  2. RMI。在这里,原因对我来说还不清楚…

因此,问题是:

  1. 是否知道RMI需要System.gc()的原因?
  2. 您是否知道核心API(甚至某些其他流行的库)可以直接调用System.gc()的其他情况?

问题答案:

万一有需要清理的分布式对象,RMI会调用System.gc()。您可以使其执行GC的频率降低或有效地将其关闭。

您可以通过调用来避免直接ByteBuffer需要GC在Sun / Oracle JVM上清理它们

ByteBuffer bb = ByteBuffer.allocateDirect(SIZE);
((DirectBuffer) bb).cleaner().clean();


 类似资料:
  • 0.15 新版功能. 该节文档讲述Scrapy核心API,目标用户是开发Scrapy扩展(extensions)和中间件(middlewares)的开发人员。 Crawler API Scrapy API的主要入口是 Crawler 的实例对象, 通过类方法 from_crawler 将它传递给扩展(extensions)。 该对象提供对所有Scrapy核心组件的访问, 也是扩展访问Scrapy核

  • Fastjson API入口类是,常用的序列化操作都可以在JSON类上的静态方法直接完成。 下面是JSON类的常用方法: 方法 说明 public static final Object parse(String text);  把JSON文本转换为JSONObject或者JSONArray public static final JSONObject parseObject(String tex

  • 事件 事件注册 命名参数样式 目标 修饰语 事件引用 API引用 运行时检查API 可用的检查目标 核心异常 核心内构件

  • 问题内容: 据说我们不能 在Java中强制执行该过程。 毕竟是守护线程。 但是仍然有时,为什么我们显式调用该函数? 值得打电话吗?有专业人士吗? 如果在许多情况下没有用,为什么Java不推荐使用此方法? PS:举例说明会很有用 问题答案: 我认为,认为该方法的最佳方法是作为垃圾回收应运行的虚拟机的“提示”。就是说,就像人们认为自己正在执行的“优化”中有很大一部分一样,通常最好是让系统自行处理。系统

  • 谢谢,麦克斯

  • IOLoop的初始化 初始化过程中选择 epoll 的实现方式,Linux 平台为 epoll,BSD 平台为 kqueue,其他平台如果安装有C模块扩展的 epoll 则使用 tornado对 epoll 的封装,否则退化为 select。 def __init__(self, impl=None): self._impl = impl or _poll() #省略部分代码