タグ

memoryに関するkadoppeのブックマーク (4)

  • autoreleaseされたオブジェクトが解放されるタイミング | インサイドフラッギング

    autoreleaseを使いすぎるとNSAutoreleasePoolに解放待ちのオブジェクトがたまってメモリを圧迫してしまう。と、思っていてinit/releaseを使うようにしていたのだけど、Application KitUIKitの場合はそうではないようだ。 クラスリファレンスによると、メインスレッドでイベントループの最初にNSAutoreleasePoolが作られ、イベントループの最後にreleaseが送られるということらしい。つまり、イベントループが一周するごとにautoreleaseされたオブジェクトは解放されることになる。XCodeのテンプレートでは、main()の最初にNSAutoreleasePoolを作り最後にreleaseしていたので、autoreleaseされたオブジェクトはプログラムの終了時まで解放されないと勘違いしていた。 ということで、作ったオブジェクトをa

  • iOSアプリ開発のメモリ管理で気をつけること - A Day In The Life

    Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS

  • グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率

    どうしてまたコンピュータがクラッシュしたのかと不思議に思ってはいないだろうか。Googleの実環境での研究によれば、それはメモリが原因かもしれないという。この研究では、メモリのエラー率が、これまでの研究で示されていたよりも高いことが分かった。 Googleは、同社のデータセンターにある膨大な数のコンピュータを使って、それらのマシンの実際の稼働状況についての実環境データを大量に収集することができる。それがまさに、エラー率が驚くほど高いことを明らかにした研究論文のために、同社が行ったことだ。 トロント大学教授Bianca Schroeder氏と、GoogleのEduardo Pinheiro氏ならびにWolf-Dietrich Weber氏の共著である同研究論文によれば、「メモリエラーの発生回数や、さまざまなDIMMにおけるエラー率の範囲が、以前報告されていたよりもずっと高いことが分かった。メ

    グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率
  • 旧・Macの手書き説明書 - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ https://mac-tegaki.comへ移転中 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

  • 1