Vorbei an Scala-Map als argument an eine Funktion zu viel Zeit kostet

Ich habe ein scala-companion-Objekt mit einer Methode, die annimmt, eine Karte als parameter. Dann geht diese Karte an eine andere Funktion in einem anderen companion-Objekt ohne Veränderungen. Und die eigentliche Methode aufrufen dauert zu viel Zeit, wenn die Methode, die Ausführung ist schnell (habe ich gemessen alles). Wenn ich don ' T-pass-eine Karte (mit null statt) und es wirkt schnell, aber mit der übergabe als argument, die tatsächlichen Aufruf der Methode ist sehr langsam.

Bin ich etwas fehlt, und die Karte wird neu erstellt und nicht nur eine Referenz übergeben wird?

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
    }
}
InformationsquelleAutor makados | 2013-07-23
Schreibe einen Kommentar