我有一个很少有 Int 和 Double 字段的类。将所有数据从一个对象复制到另一个对象的最快方法是什么?
class IntFields {
private val data : Array[Int] = Array(0,0)
def first : Int = data(0)
def first_= (value: Int) = data(0) = value
def second : Int = data(1)
def second_= (value : Int) = data(1) = value
def copyFrom(another : IntFields) =
Array.copy(another.data,0,data,0,2)
}
这是我可能建议的方式。但我怀疑它是否真的有效,因为我对 scala 的内部没有清楚的了解
更新1:
事实上,我正在寻找 scala 的 c++ memcpy 等价物。我只需要一个简单的对象并逐字节复制它的内容。
数组复制只是一种 hack,我搜索了普通的 scala 支持的方法,但没有找到。
更新2:
我尝试对两个持有者进行微基准测试:具有 12 个变量的简单案例类和一个用数组备份的案例类。在所有基准(简单的复制和复杂的集合计算)中,基于数组的解决方案的工作速度较慢约 7%。
所以,我需要其他方法来模拟 memcpy。