Performance Scala的内存分析

Performance Scala的内存分析,performance,scala,memory,Performance,Scala,Memory,我知道scala支持不变性,所以如果我们有两个整数VAL,我们做val1+val2,那么它将创建一个新的整数,其值为val1+val2 我的问题是,因为scala创建了新的对象实例,以不改变以前的对象,所以不变性的性能和内存缺点是什么 编辑:我想知道scala如何处理性能和内存开销的具体细节。scala代码被编译成JVM字节码,所以基本上内存管理和Java没有区别。提到使用不可变内存的潜在权衡。您可能会创建许多对象实例,但Scala库通常会创建短期对象,因此垃圾收集器应该快速处理它们 Scala

我知道scala支持不变性,所以如果我们有两个整数VAL,我们做val1+val2,那么它将创建一个新的整数,其值为val1+val2

我的问题是,因为scala创建了新的对象实例,以不改变以前的对象,所以不变性的性能和内存缺点是什么


编辑:我想知道scala如何处理性能和内存开销的具体细节。

scala代码被编译成JVM字节码,所以基本上内存管理和Java没有区别。提到使用不可变内存的潜在权衡。您可能会创建许多对象实例,但Scala库通常会创建短期对象,因此垃圾收集器应该快速处理它们

Scala代码被编译成JVM字节码,因此基本上内存管理与Java没有区别。提到使用不可变内存的潜在权衡。您可能会创建许多对象实例,但Scala库通常会创建短期对象,因此垃圾收集器应该快速处理它们

请注意,如果需要,可以使用
var
-s和可变结构,它们可以很好地进行变异。示例:

var i = 1
i += 1
val l = mutable.Map(1 -> 5)
l += (2 -> 4)  // this one was writte from memory, may need a correction

请注意,如果您愿意,可以使用
var
-s和可变结构,它们可以进行变异。示例:

var i = 1
i += 1
val l = mutable.Map(1 -> 5)
l += (2 -> 4)  // this one was writte from memory, may need a correction

可能是@Michal的复制品,我有一个关于scala的问题。scala内部有哪些支持不变性的性能和内存增强?可能是@Michal的重复,我有一个特定于scala的问题。scala内部有哪些性能和内存增强功能来支持不变性?scala有多种实现。两个是生产就绪的:Java平台上的Scala JVM和ECMAScript平台上的Scala.js。Scala native正在开发中,Scala.NET已被放弃。你把Scala编程语言和几个Scala编译器中的一个混淆了。我明白了。这个问题从来没有提到任何特定的Scala实现,所以我只讨论我认为最流行的JVM。@Michal,我认为你的回答从JVM的角度来看是有帮助的。谢谢你的回答。Scala有多种实现。两个是生产就绪的:Java平台上的Scala JVM和ECMAScript平台上的Scala.js。Scala native正在开发中,Scala.NET已被放弃。你把Scala编程语言和几个Scala编译器中的一个混淆了。我明白了。这个问题从来没有提到任何特定的Scala实现,所以我只讨论我认为最流行的JVM。@Michal,我认为你的回答从JVM的角度来看是有帮助的。谢谢你的回答。