タグ

メモリリークに関するkaza13のブックマーク (20)

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 浮動小数点演算の高速化 - テストとか

    ぼちぼち iPhone 開発ネタも書いていこうかと。浮動小数点演算をバリバリ行うようなコードではコンパイラのオプションで Compile for Thumb (-mthumb) を無効にすると速くなるらしいので、実際どんなもんだろうと思ってベンチマークを取ってみました。ソースはこんな感じで、float と int のかけ算の処理をループさせたときの実行時間を測定しています。 #define CYCLES 100000000 void fp_test() { float a = 0.0000001f; float b = 1.0000001f; CFAbsoluteTime t1 = CFAbsoluteTimeGetCurrent(); for (int i = CYCLES; i >= 0; i--) { a = a * b; } CFAbsoluteTime t2 = CFAbsolu

  • 時間計測、および自動開放プール - It_lives_vainlyの日記

    お気軽なパフォーマンス計測のためにも、経過時間計測は重要. ...時間計自体は簡単なんだけれども、自動開放プールの働きがよく分かっていなくてはまりました. この辺は慣れの問題だよな... NSDate 時間オブジェクト. 以下のように利用することで、二つの時間オブジェクトの経過時間を計測できる. >|objcpp] NSDate* a_dateStart = [NSDate date]; ... //何からのコード NSDate* a_dateEnd = [NSDate date]; NSTimeInterval a_time = [a_dateEnd timeIntervalSinceDate:a_dateStart]; | NSTimeInterval は、double の typedef になっていて、1秒単位での時間の取得が可能. ミリ秒/マイクロ秒は小数部に入る. 他には、 ti

    時間計測、および自動開放プール - It_lives_vainlyの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • おめがブログ - iPhoneのメモリ管理

  • iPhoneアプリケーション開発: Objective-Cにおけるメモリ管理

    メモリ管理の大まかな原則 C言語と共通の部分について、メモリ管理で気をつけることは特にありません。Cで気をつけることと共通です。 自分がmalloc()で確保したメモリは忘れずfree()で開放しましょうということだけです。従って、多くの場合に問題になるのはObjective-C固有の部分です。 Objective-Cのオブジェクトはretain countというものを持っています。生成すると0から1になります。 そのオブジェクトに関連付けられている変数名でretainをすれば、カウントが1増えます。 releaseをするとカウントが1減ります。run loopと呼ばれるシステムへの応答処理へ入った時、 このカウントが0になっているものはメモリ上から消えるようになっています。 autoreleaseとした場合には、適当と思われる部分で自動的に開放されるので、自分でreleaseを行う必要は

  • 川の流れに月の影 iPhoneのメモリーリーク

    scan-buildでメモリリークを発見する方法のメモ 準備 clangのインストール ダウンロードしたファイルを解凍 中のフォルダとファイルをすべて/usr/local/binにコピーする (/usr/loca/bin/にパスが通っていることを前提) 使う コマンドでXcodeのプロジェクトファイルのパスに移動 scan-build xcodebuild (解析結果は,htmlで書き出され,-oで出力先のパスを設定できる.デフォルトは/tmp.) 元情報:sonson@Picture&Software 感謝(^^ by thank you.

  • iPhoneのメモリ使用状況が分かるアプリ Memory Statusを試してみた - VERSATILE CRIB FUNK

    iPhoneはとにかく良くアプリが落ちるわけだが、 原因はメモリ不足だと言われている。 実際自分でiPhoneを使っていても、とにかく良くアプリが落ちるので、 iPhone内部ではどのようにメモリ資源を使われているのか気になっていた。 そんなところで、でてきたアプリがこの「Memory Status」だ。 メモリ使用状況を円グラフで表示するだけのシンプルなものだが、 この情報をしりたい人は多いに違いない。 230円の有料アプリだが気になるものは仕方ない。早速ポチっといってみました。 見方は 赤=固定メモリとして使用(OSとかかな?) オレンジ=使用中でアクティブなメモリ 青=使用中だけどアクティブでないメモリ 緑=使っていないメモリ 要するに、緑が狭くなってくると落ちたりしそうな感じだ。 では、早速いろいろ調査を行ってみた。 注意として、MemoryStatus画面上のReloadボタンを

    iPhoneのメモリ使用状況が分かるアプリ Memory Statusを試してみた - VERSATILE CRIB FUNK
  • Objective-Cのメモリ管理がわけわからなくなったとき:名称未設定2:So-net blog

    Mac OS X版 アフォなアプリ|KVCについて ブログトップ Objective-Cのメモリ管理がわけわからなくなったとき [Cocoa覚え書き] [編集] あふぉな私がメモリ管理がわけわからなくなったときのための覚え書き。 ○動的インスタンス生成 C++の場合は、new 、deleteで動的なインスタンスを生成、破棄する。 スコープ内でauto変数にnewの戻り値を代入してdeleteをするには問題ないが、newしたままスコープを出ると見失ってしまうので、クラスメンバかstaticな場所に置いておく。これは、C言語のalloc()系とfree()との関係と同じ。 Objective-Cの場合は、alloc、releaseでインスタンスの生成、破棄をする。 スコープ外へ出るときもC、C++ともに同様である。 ○基へ戻ってC言語のauto変数 auto記憶クラスは、スコープ内で有効であ

  • releaseの使いどころ : As Sloth As Possible

    俺もメモリ管理を間違えて頻繁にアプリを落としてしまうゆとりプログラマなのであんまり偉そうなことも言えないのだけど、「releaseの使いどころ。メモリの辺りがどうしてもわからない。」を読んでいくつか思ったところがあるので書いときます。 「何度もinit」はしない 既に確保されているハズの変数を二度initするのはメモリリークだよね? 解放されている変数は、 if (obj == nil) では判別できないのだろうか。 ボタン押下時などに、同じロジックを走ることが多くて、何度もinitをしてしまうことが多いのだが。。。。 具体的なコードを見てないので間違ってるかもだけど、多分これ「何度もinitしちゃう」じゃなくて「開放してないオブジェクトを参照してる変数に、何度も新しいオブジェクトをつっこんじゃう」ってことだと思って話を進める(そうすると、どこからも参照が辿れないのにメモリが開放されてない

    releaseの使いどころ : As Sloth As Possible
  • Technical Note TN2124:Mac OS Xにおけるデバッグの魔法

    このテクニカルノートでは、Mac OS Xのさまざまな「隠れた」デバッグ機能、つまり環境変数、環境設定、GDBから呼び出し可能なルーチン、特殊ファイルなどについて説明します。Mac OS X向けの開発をしている場合は、このリストに目を通して、開発作業を楽にしてくれるものを見逃していないか確認してください。 はじめにMac OS Xには、個々のサブシステムの開発とデバッグを支援するために、エンジニアリングチームが追加したデバッグ機能がいくつか含まれています。これらの機能の多くは、リリース後のシステムにも残っており、コードのデバッグに利用できます。このテクニカルノートでは、広く役立つデバッグ機能をいくつか説明します。別の場所で文書化されているデバッグ機能については、機能の簡単な概要と既存ドキュメントへのリンクを記載しています。このテクニカルノートでは、デバッグ機能を網羅的には文書化しておらず、

  • C#とObjective-CとJavaと...(メモリ管理)

    プログラムにとってもっとも基的かつ重要な資源がメモリである。Cは処理系の単純さを目標とし、あらゆる機能の外部化(ライブラリ化)を果たしたため、他の言語では言語の機能に入っていることが多いメモリ管理もライブラリに任せている。mallocとfreeがそれだ。 C++でnewとdeleteが導入され、メモリ管理は言語の機能になり、かなり面倒は減った。 Javaはガベージコレクトという機能で、プログラマをメモリ管理の煩わしさから解放した、というよりはメモリ管理させてくれなくなった。C#も同様である。GraphicGripGropのJava版とC#版にはメモリ管理関連の記述は一切ない。 Objective-Cはメモリ管理に関してはライブラリに任せている。単にmallocとfreeのクラス化されたものなら良かったのだがさにあらず、NSAutoreleasePoolというかなり厄介なクラスを前提として

  • EXEC_BAD_ACCESSのデバッグ方法 - Paradigm Shift Design

    xcodeでプログラムを書いていると、メモリ管理なぞ忘却のかなたなので、リークしていたり、解放済みのメモリにアクセスしていたりと、問題が多々ある。 xcodeでのデバッグコンソールは、基的にgdbなので、VisualStudioで開発するようには簡単に問題箇所を見つけ出すことができない。 ポインタに対する不正なアクセスは、大体のところ プログラムはシグナルを受信しました:“EXC_BAD_ACCESS” というメッセージが出るだけで、「どこでそれが起こったのか」についての何の手がかりも与えられない。Breakすらしない。 さすがにこんな状況でデバッグしている人はいないだろうと、検索をかけてみると、 DebuggingAutorelease - CocoaDev NSZombieEnabled - CocoaDev あたりが役に立ちそうである。 とりあえず色々試行錯誤してみたが、NSZom

  • 【iPhone】メモリ不足時のシミュレートとデバッグ | iphoneアプリで稼げるのか

    iPachiで起きていた不具合なのですが、 特定の画面を表示中にメモリ不足に陥り didReceiveMemoryWarningを受け取ると アプリがクラッシュするという問題をついに 解消しました。 didReceiveMemoryWarning後にクラッシュするので メモリ管理でどこかがおかしくなっているのだろうとは 予想がつくのですが、いかんせん貧弱なエラーメッセージの ため、まったく発生元がつかめませんでした。 EXC_BAD_ACCESSとか言われてもさっぱりわからんです。 が、すばらしい記事をみつけました。 NSDebugEnabled これでクラッシュをおこしているオブジェクトの生成場所を 特定できるので、格段にデバッグ効率があがります。 というわけで、エミュレータでのメモリ不足時のシミュレートと デバッグのための設定をまとめます。 エミュレータでのメモリ

  • iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ

    まずは公式のObjectiveCのメモリ管理を読むべきである。(読まないと始まらない) http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html そして、この辺が具体的なサンプルコードもあってよくまとまってる http://wwwa.dcns.ne.jp/~nito/CocoaClub/article01.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article02.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article03.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/art

    iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ
  • iPhone向けサイトを考える:静的コード解析をしてメモリリーク等を教えてくれるclang

    2008年12月04日 静的コード解析をしてメモリリーク等を教えてくれるclang clangというのが便利でした。Xcodeのプロジェクトを解析して、メモリリーク等のバグをHTML形式で吐いてくれるツールです。 iPhone SDK向けのコードを静的コード解析する Macユーザーは使い方分かると思います。以下、僕みたいにWinを使ってたけどiPhone開発のために初めてMacを触った人向け。 root権限がない ここからビルドされたパッケージをダウンロード.ダウンロードしたファイルを解凍し,中のフォルダとファイルをすべて/usr/local/binにコピーする.(/usr/loca/bin/にパスが通っていることを前提) Finderで普通に見ると/usrがない。困った。ターミナルから覗くとどうやらあるっぽい。cpしようとすると、root権限が必要って怒られた(´・ω・`) アプリケーシ

  • iPhoneアプリのメモリリーク

    Objective-Cのメモリ管理をなかなか理解できない開発者も多い気がするので、メモリリークについて不安に思っている方も多いのではないでしょうか。 iPhoneで初めてプログラミングを始めた方もいるかもしれませんので、メモリリークについて簡単に説明すると、allocしたメモリ領域をrelease(dealloc)していないとか、確保したメモリがどこからも参照されない状態になって、ゴミが残っている状態の事です。 自分も理解するまで随分と悩みました。 まずはリークがあるかテストする所から始まります。 XCodeのメニューの「実行」→「パフォーマンスツールを使って開始」→「Leaks」を選択して、「Instruments」を起動しましょう。 以下のような画面でテストできます。 今回は「おみくじ」アプリでわざとメモリリークが出るように改変してみました。 このツールを使ったテストでは以下の2点に注

    iPhoneアプリのメモリリーク
  • 見落としてしまうメモリーリーク

    [iPhone][Mac] 私のアプリを買っていただく人が少しはでてきたようなので 少しほっとしてます。バージョン1.1では、プロセスの表示が追加されます。 メモリークリーニングとかいろいろアップデートに向けて着々と準備中です。 どうか、皆様よろしくお願いします。 ふ? 自分がアプリを申請したときは、無料のアプリもでてなかったし、 最初にでたアプリもバージョン1.0だったんで、そんなに心配して なかったんですが、えらい差をつけられてしまった。 買っていただけないのもしょうがないと思ってます。 でも、期待(誰もしてないかw)を裏切らないようにアップデート していきます。 で、ここからが今日の題です。 開発のブログといいながら、あまり記事にしてない?w 今日は気をつけた方がいいメモリーリークの落とし穴です。 もちろん iPhone だけではなくて、Mac というか Cocoa ですね。 iP

    見落としてしまうメモリーリーク
  • sonson@Picture&Software - [iPhone SDK] iPhone SDK向けのコードを静的コード解析する

    相変わらずNDAは解除されない.NDAを続けるメリットがいまいちよくわからない.たとえば,今みたいにSDKに入っているコードから商品の開発計画とかがばれるからだろうか.うーむ. ※ここからはSDK一般のお話ですから.あしからず. Xcodeに付属のInstrumentsのleaks挙動が怪しい.リークを検出したり,しなかったりする. そこで,@takuma104にclangを勧められた. clangのMacOSX向けのツールはXcodeのプロジェクトのファイルを全部舐めて解析してくれるらしく,使いやすそうと考えたので,試してみたので報告する. ・家サイト http://clang.llvm.org/index.html ・説明サイト http://kirika.la.coocan.jp/acts/cocoastudy/200807/clang-static-analyzer.ht

  • tv-game.jp» ブログアーカイブ » iPhone objective-C 静的解析ツール「clang」メモリーリークに有効

    iPhoneの開発をしていると、どうしてもぶつかる壁。。。メモリー iPhoneのメモリーは極端に少ないから、メモリーをこまめに管理する必要がある。 メモリーを解放せずに、続行してると、メモリーリーク(メモリー不足)で強制終了しちゃう んで、Xcodeで開発してても、それだけぢゃメモリーリークまでは気づきにくい。 そこで、clangというpythonでできたツールを導入。 これをターミナルから実行すると、プロジェクトの結果を任意の場所にHTMLで出力してくれる。 んで、そこにメモリーリークの注意とかまで書いてある。 しかも、かなりわかりやすい。 Clang Static Analyzer ここでダウンロードして回答したものを下記にコピー。 /usr/local/bin もちろん、ここにコマンドが入るからパスが通ってないとだめ。 んで、調査した

  • 1