我try 在敏捷的
和Kotlin
中对大小为敏捷的
000000的数组进行排序,我发现它们之间存在巨大的性能差距.对于这个数字,Kotlin
几乎比敏捷的
快18
倍(在我的机器上).
I recorded some results and i found that swift is faster when the size is around 10000 or less but once the number goes up, 敏捷的
becomes significantly slow as compare to Kotlin
.
Code for 敏捷的 and Kotlin is below,
敏捷的
let n = 100000000
var arr = Array(repeating: 0, count: n)
for i in 1...n {
arr[i-1] = Int(arc4random_uniform(UInt32(n)))
}
//Record time before sort
arr.sort()
//Record time after sort
Kotlin
val n = 100000000
val arr = IntArray(n)
for (i in 1..n) {
arr[i-1] = Random().nextInt(n)
}
//Record time before sort
arr.sort()
//Record time after sort
记录的时间如下:,
敏捷的
Size: 1000 Time: 0.001 sec
Size: 10000 Time: 0.009 - 0.01 sec
Size: 100000 Time: 0.122 - 0.127 sec
Size: 1000000 Time: 1.392 - 1.409 sec
Size: 10000000 Time: 16.115 - 16.569 sec
Size: 100000000 Time: 187.346 - 187.71 sec
Size: 1000000000 Waited more than 6 minutes and gave up!
Kotlin
Size: 1000 Time: 0.06 sec
Size: 10000 Time: 0.063 - 0.084 sec
Size: 100000 Time: 0.083 - 0.105 sec
Size: 1000000 Time: 0.23 - 0.501 sec
Size: 10000000 Time: 1.098 - 1.807 sec
Size: 100000000 Time: 10.759 - 11.141 sec
Size: 1000000000 Time: 124.252 - 127.54 sec
So, here you can see 敏捷的
is becoming extremely slow when size increases although it is faster when the number is small.