我一直在尝试优化一些Swift代码,并且看到了这个痕迹:
308.00 ms 10.2% 25.00 ms swift_deallocClassInstance
我不知道造成它的原因是什么,并试图弄清楚该方法中会释放什么。有没有人看到这个出现在配置文件中或知道是什么导致它。它出现在这种方法中。我已经查看了任何排序类型的变量,但似乎无法确定它。其中一种方法是使用一些静态struct OptionSet
,但我不认为会导致它。传递的所有其他参数均为Ints
超过实际方法的50%和总体跟踪的10%:
final func generateTextures(options: TextureOptions, baseLevel: Int) -> [AreaData] {
otherMethodCall();
methodCall()
for i in 0..<size {
...
}
for i in 0..<width {
switch someVar {
...
default:
switch someVar {
...
}
}
}
for i in stride(from: width - 1, to: size, by: width) {
switch someVar {
....
default:
switch someVar{
...
}
}
}
// post processing
for i in 0..<size {
... method
}
for i in 0..<size {
..some more stuff
}
for i in 0..<size {
..some more stuff
}
anotherMethod()
return someMethod()
}
答案 0 :(得分:0)
我删除了该方法中的所有选项集使用,并直接转到原始Int
&#39; s,这个巨大的打击消失了。我曾希望他们直接将选项集编译为int或原始值操作,我猜不是。