Ab Scala-2.11 können diese Methoden unterschiedliche Leistung haben. Betrachten wir zum Beispiel diesen Code:
val bigArray = Array.fill(1000000)(0)
val beginTime = System.nanoTime()
var i = 0
while (i < 2000000000) {
i += 1
bigArray.length
}
val endTime = System.nanoTime()
println(endTime - beginTime)
sys.exit(-1)
Rennen auf meinem amd64 Computer gibt über 2.423.834 nanos Zeit (variiert von Zeit zu Zeit).
Nun, wenn ich die length
Methode zu size
ändern, wird es etwa 70764719 Nanos Zeit werden.
Dies ist mehr als 20x langsamer.
Warum passiert das? Ich habe es nicht durchgegraben, ich weiß es nicht.Aber gibt es Szenarien, in denen length
und size
drastisch anders durchführen.
Ich persönlich bin ein semantischer Nitpicker, also verwende ich 'length' nur für Dinge, die linear oder sequentiell sind und' size' sonst. –