Skip to content

Instantly share code, notes, and snippets.

@kssreeram
Created June 23, 2016 03:09
Show Gist options
  • Save kssreeram/556a874898cfb083df1d695c2b483a15 to your computer and use it in GitHub Desktop.
Save kssreeram/556a874898cfb083df1d695c2b483a15 to your computer and use it in GitHub Desktop.
Swift ARC Problem
class A {
var values:[Int] = [];
}
func append1(inout a:A) {
let n = a.values.count;
a.values.append(n);
}
func append2(inout a:A) {
let b = a.values;
let n = b.count;
a.values.append(n);
}
func test() {
var a = A();
// Using 'append1' is linear.
// Whereas, 'append2' is quadratic.
for _ in 0..<10000000 {
append2(&a);
}
print(a.values.count);
}
test();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment