2017-03-18 11 views
0

私はXamarin.iOSでコード化されたリリースの準備がほぼ整っていて、機能的にはうまく機能していますが、アプリはメモリリークを右と中央に残しています。これは、Xamarin.iOSのほとんどの開発者にとって共通の問題ではありません。なぜなら、このプラットフォームでのメモリ管理はまさにそうではないように思われる多くのアカウントを読んでいるからです。ビューを破棄していても、できる限りGCを収集して使用するようにGCに正しく依頼していますが、理由については論理的または明白な説明がなくてもどこでもメモリが漏れています。Xamarin iOSメモリプロファイリング

私はこのようなメモリデポジションをサポートする方法を見つけましたが、Xamarin iOS memory leaks everywhereのようなメモリデポジションをサポートしていますが、正確に何が漏れているのかを特定するのは困難です。

アプリは非常にシンプルで、画像やテキストはほとんどなく、単純な機能を備えたほぼ静的な情報ページですが、まだ漏れています。私はXamarin Profilerを使用して、これに対してエンタープライズサブスクリプションを持っていないため、正確に漏れているものを見つけることができません。また、インストゥルメントでプロファイリングするのは面倒であり、どのデータが漏洩しているのか、どのような方法やコードの一部にあるのか。

他の人がXamarin iOSアプリケーションのプロファイリングに使用するものと、最終的な回答をコミュニティからもっと知りたい - Xamarinで動作するGarbage Collectionがあります。それは何でしょう?

ありがとうございます。

答えて

0

必要に応じて、アップルの計測器をプロファイリング用に使用することができます。イベントハンドラの登録を解除するかどうか聞いてきますが、それが問題の大きな問題だとすれば、イベントハンドラだけで問題が発生する可能性は疑問です。他の一般的なメモリリークの犯人には、シングルトンとタイマーがあります。また、メモリリークがあると思うものは何かを尋ねます.Xamarin Linkerやそれより少ないジェネリックが役に立つかもしれない大規模なアプリケーションがあるかもしれません。

+0

この@kellenを共有していただきありがとうございます。あなたにはポイントがあります。私はある種のメモリリークがあることを知っています.1つの画面に入ってから再びこの画面に戻り、その後に戻っていくなど、アップル社のインストゥルメントに示されているメモリ使用量は上昇し続けます。プラスインストゥルメンツは毎回漏れがあると言います。これは、おそらくアプリケーションのサイズとメモリリークの両方の組み合わせです。 –

+0

あなたがイベントへの登録を解除していることを確認してください。メモリリークもあって、修正するのに時間がかかっていました.OldButtonのTouchUpInsideなど、すべてのイベントハンドラの登録を解除しました。 – MattjeS

関連する問題