【发布时间】:2022-01-24 21:14:03
【问题描述】:
我愿意在我的 JavaFX 应用程序中使用 Spring 引导技术(以利用其依赖注入的优势),但我想知道对内存的影响,因为您知道任何具有“组件”表示法的类将被加载到 MetaSpace(因为 Spring Boot 会从中创建一个静态对象),因此在将数十个 JavaFx 视图控制器加载到 MetaSpace 的情况下,它们将永远不会从应用程序启动到结束进行垃圾收集,这显然是不好的事情,有什么办法可以解决这个问题吗?
【问题讨论】:
-
您好,该框架相当轻量级,内存使用主要取决于并发请求和应用程序代码
-
那些对象的总内存可能很小;例如~100Kb。使用 Spring Boot、Spring DI 等的优势远远超过了内存使用量的这种小幅增加。 (这个问题对我来说听起来像是过早的优化。)但是如果你认为它会有所作为...... 测量它。
-
@StephenC 你是完全正确的,但我认为这适用于 Web 开发案例,对于 JavaFX 应用程序,当视图控制器没有被垃圾收集时意味着视图对象也将永远留在那里 TableViews ,ListViews,Panes ...这可能会占用一些重要空间,我会尝试对其进行测试,谢谢。
-
(为了记录,100kB 是一个猜测。但即使内存开销是 10MB,我仍然认为这无关紧要。)
-
Singleton 的意思是“单个实例”。静态是一个实现细节。单身人士不一定是静态的!
标签: java spring spring-boot javafx