gpt4 book ai didi

scala - 有多少 jar 文件被加载到内存中

转载 作者:行者123 更新时间:2023-12-04 08:20:16 26 4
gpt4 key购买 nike

我正在使用 Scala 进行编程,当我编写一个简单的“println(“hello world”)”程序并使用“sbt 包”将其发布到 jar 文件中时,该文件的大小仅为 4kb,但这对我没有帮助,因为如果没有 scala 库,jar 文件将无法运行。
因此,在网上搜索后,我发现 sbt-assembly 将包括 scala 库在内的所有内容打包到一个“fat jar”中,但生成的 jar 文件大小超过 13Mb
所以我的问题是,当 jar 文件被执行或访问时,整个 jar 文件会被加载到内存中,还是只需要将所需的数据和函数加载到内存中?

最佳答案

这种行为不依赖于应用程序的打包方式,而是由类加载器(顾名思义)从内存中加载和卸载类。

默认类加载器的标准行为是在运行时第一次调用类时立即将其加载到内存中,并且仅在类加载器被垃圾收集时才卸载。

当然,您可以定义自定义类加载器并执行您想要的操作:)

如果你想在运行时检查加载的类,你可以使用像 VisualVM 这样的工具。转储堆并检查内存中发生了什么

关于scala - 有多少 jar 文件被加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53958105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com