在尝试学习Swift 2.2时,我在尝试分配许多小对象时遇到了严重的性能下降(从根本上说,是一个262144元素的BST).我目前的基准是一个古老的喀嚓,我几年前写的,一个Java 1.8.0_74编译它,在59秒(59036178微秒)我2012的Retina MacBook Pro的执行.我可以通过Instruments观察到的问题是每次迭代我会得到几十个swift_retain_和swift_release.不知道如何避免它们:
import Foundation
import Darwin;
import Foundation
public class BinarySearchTree<T : Comparable> {
private var _value : T?;
private var _leftTree : BinarySearchTree<T>?;
private var _rightTree : BinarySearchTree<T>?;
public init(value : T) {
_value = value;
}
var value : T? {
get {
return self._value;
}
set {
self._value = newValue;
}
}
var leftTree : BinarySearchTree<T>? {
get {
return self._leftTree;
}
set {
self._leftTree = newValue;
}
}
var rightTree : BinarySearchTree<T>? { …Run Code Online (Sandbox Code Playgroud)