BT

iOS/MonoTouchの新しいガベージコレクタとメモリプロファイラ

| 作者: Jonathan Allen フォローする 593 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2012年2月24日. 推定読書時間: 1 分 |

原文(投稿日:2012/02/20)へのリンク

MonoTouch for iOSは、世代を持つガベージコレクタSGenをサポートした。これは最近まで、完全バージョンのMonoだけの実験的なオプションだった。同時にiOS向けのメモリプロファイラもMonoDevelop IDEを通じてアクセス可能になる。

世代を持つガベージコレクタであるSGenは、Monoの従来のBoehmガベージコレクタを置き換えることになる。これはパフォーマンスの改善が期待されているが、SGenはまだ保守的なスキャンに妨げられている。将来的にはSGenは、メモリのフラグメンテーションを大幅に削減することができる正確なスタックマーキングシステムに切り替えることが期待されている。

iOSプロファイラは2つのモードをサポートしており、デフォルトはヒープ分析である。このモードは、要求またはトリガーによってメモリのスナップショットを取ることができる。トリガーは、ガベージコレクションサイクルの回数または、一定間隔の時間をセットすることができる。スナップショットの比較やメモリ内のどんなオブジェクトがルートになっているかを確認できる標準ツールが含まれている。

Performance Analysisは、統計的なサンプリングとより正確だが遅いenter/leaveイベントログをサポートする。 統計サンプリングは、アプリケーションのスナップショットを取り、サンプラーによって、それぞれのメソッドがどの程度の頻度で発生するのかをベースに、どれだけ早いかを推測する。enter/leaveイベントロギングは、それぞれの関数の開始と終了のたびに記録する。これはどこに時間がかかっているかを完全に記録するが、深刻なパフォーマンスの低下が発生してしまう。このモードはまた、オブジェクトの確保に関連するスタックトレースもキャプチャすることができる。

MonoDevelop 2.8.5とMonoTouch 5.1.1は、このツールを使うために必要である。特定のプロジェクトでは、デバッグ、プロファイリング、そしてSGenガベージコレクタオプションを有効にする必要がある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT