Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://burnlight.blog3.fc2.com/tb.php/362-f393b4cc

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

silverlight3でのメモリリーク調査しました。(1)

silverlight3 アプリケーションでメモリリークしているとのことで調査することになりました。

.NetFrameworkを使ったアプリケーションでは、
dotTrace3.1 に大変お世話になりました。

が、Silverlightはブラウザ上のsandboxで動くのでこのツールを使用することはできません。

silverlihgtのランタイムには、プロファイル用のAPIがないので、ツールベンダがほとんど対応して
いないとのことです。

しかし、がんばって検索してみたところ、silverlightで使えそうな
それっぽいツール、手法がいくつか見つかりました。


EQATEC Profiler (EQATEC社)

Personal $59
Professional $199

silver profiler (ATOLOGIC社)
213 USD

Silverlight Spy(First Floor Software社)
Personal 69 EURO
Commercial 99 EURO

XPerf (Microsoft)
Free

Windbg + SOG (Microsoft)
Free

上から順番に、
EQATEC Profiler
オブジェクト使用量はわからない。実行回数だけ。
しかもFree版は、どのメソッドを実行したかはわからない。Pro版はわかる。
というので試用見合わせ。

silverProfiler
setup.exe をダウンロードして実行すると、インターネット接続してメインのmsiを引っ張ってくる。
オフライン環境でやってたので、一度ネット接続環境に戻り
msi をダウンロードした所でIEの一時ファイルからmsi をコピーしてきて、元の場所に戻り
インストール。インストールして実行してみても、よくわかりません。
pdfファイルのヘルプがあったので読んでみと、
xapファイルをローカルに置いて実行しないといけないとのこと。
また、メソッド実行回数はわかるけど、オブジェクト使用量はわからない。
というので試用をやめました。

silverlight spy
evaluation版を実行してみたら、上2つとは違って、それなりに簡単に実行できた。
メソッドの実行回数、オブジェクトの使用量ともわかりません。
使用リソースの表示はタスクマネージャと同等レベルということであえてこれを使う意味なし。
しかし、オブジェクトの階層構造を表示してくれるのと、
.NET Reflectorをインストール
してパス指定すると、コントロール内部のディスアセンブルした結果を表示してくれるので
何かの時に使えそうです。VisualStudioが手元に無いときには便利に使えるかもしれません。

XPerf
これはメモリ使用量わからなそうなので試してません。


Windbg + SOG (Microsoft)
windbgかー、低レベルいやだーと思って思ってたのですが、結果的にこれでできました。
[Silverlight]メモリリークの原因を調べる - 秘密結社ぎゅう☆ぎゅう倶楽部
にある通りです。
しかし、この手順で納得できる結果を得るまでに結構はまりました。
次回はそれを書きます。

スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://burnlight.blog3.fc2.com/tb.php/362-f393b4cc

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

burnlight

  • Author:burnlight
  • 忘れないように色々メモします。

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。