我有一个带有接受地图作为参数的方法的 scala 伴随对象。然后 in 将此映射传递给不同伴生对象中的另一个函数,而无需更改。当方法执行速度很快(我测量了一切)时,实际的方法调用会花费太多时间。如果我不传递一个映射(使用 null 代替)它工作得很快,但是将它作为参数传递,实际的方法调用非常慢。
我是否遗漏了什么,并且正在重新创建 Map 而不仅仅是传递了一个引用?
object ContentElementParser {
def parse(node: Node, assets: Map[String, Asset]): Option[ContentElement] = {
//Some logic here
AssetParser.getAsset(subNode, assets) //this call is too slow because of assets map
}
}
object AssetParser {
def getAsset(node: Node, assetMap: Map[String, Asset]): Asset = {
//logic
}
}