gpt4 book ai didi

optimization - Scala "primitive"优化

转载 作者:行者123 更新时间:2023-12-03 17:03:27 26 4
gpt4 key购买 nike

在好几个地方我都看到了类似这样的声明:

“Scala 编译器在编译代码中尽可能使用 Java 数组、基本类型和 native 算术”(《Scala 编程》一书)。但实际上我没有看到这一点,例如在下面的代码中,scala 类型使用的内存比 java 类型多(我使用 totalMemory 和 freeMemory 方法计算):

long[] la = new Array[java.lang.Long](1024 * 1024);
for(i <- 0 until la.length)
la(i) = new java.lang.Long(0);

val La = new Array[Long](1024 * 1024);
for(i <- 0 until La.length)
La(i) = 0l;

mem_used (java long):>> 28.811M

mem_used (scala long):>> 36.811M

我意识到 scala Any 类型有额外的开销,但是优化发生在哪里?

最佳答案

为什么要用这种复杂的方法来尝试找出编译成什么?只需在一个类上运行 javap,您就会确切地看到它是什么。

C:\>type La.scala
class La {
val La = new Array[Long](1024 * 1024);
}

C:\>javap La
Compiled from "La.scala"
public class La extends java.lang.Object implements scala.ScalaObject{
public long[] La();
public La();
}

关于optimization - Scala "primitive"优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5938693/

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