パラメータとしてマップを受け入れるメソッドを持つscalaコンパニオンオブジェクトがあります。次に、このマップを別のコンパニオン オブジェクト内の別の関数に変更なしで渡します。また、メソッドの実行が速いと、実際のメソッド呼び出しに時間がかかりすぎます (すべてを測定しました)。マップを渡さない場合 (代わりに 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
}
}