OSX10.11.4, Xcode7.3, Swift2.2です。
個人的にアプリ開発を始めようと思ったのですが、For文内でメモリが増えてしまい、
思うようにできず困っています。
例えばですが、Xcodeを開き、「File」, 「New」, 「Project」,
「OSX-Application」, 「Cocoa Application」で新規にプロジェクトを作成し
「AppDelegate」に下記のコードを書いたとします。
追加した構文では class T のインスタンスを生成しているだけで
画面表示直後のメモリ使用量には影響無いと思っていました。
ですが実際は、追加構文あり: 9MB, なし: 27.3MB と変化しました。
インスタンスが本当に解放されているか確かめようと class T に deinit文を追加し
print 文で表示してみましたが、全てのインスタンスが解放されていました。
for文の入れ子でクラスのインスタンスを作り
配列に入れると同じ現象が起きてしまいますが、この場合原因は何でしょうか?
Swift
1import Cocoa 2 3@NSApplicationMain 4class AppDelegate: NSObject, NSApplicationDelegate { 5 6 func applicationDidFinishLaunching(aNotification: NSNotification) { 7 8 // 追加 9 for _ in 0..<1 { 10 let max = 1000000 11 var a: [T] = [] 12 for _ in 1...max { 13 a += [T()] 14 } 15 } 16 17 } 18} 19 20// 追加 21class T {}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/03/25 22:33