2017-01-25 10 views
0

Appceleratorを使用して過去に構築したアプリケーションを移植しています。このアプリは、膨大な量の動的コンテンツを作成するので、メモリを監視する機能があります。言い換えれば、次のような説明:DidReceiveMemoryWarning()を使用してキャッシュをクリアするか、メモリを監視するための外部ツールを使用することはできません。エンドユーザーは、オンザフライのコンテンツがどれだけ大きくて重いかを観察する必要があります。 Appceleratorを使用して作成されたアプリケーションはTitanium.Platform.availableMemoryを使用しており、使いやすいです。Xamarinを使用してIOSで使用可能なメモリを取得する方法

私はXamarinを使用することができないとは思えません。それは本当に不可能ですか? Objective-Cから.NETに変換されたライブラリが見つかりましたが、コンパイルできないため、おそらく非常に古いです。

この意味でのヘルプはありますか?

答えて

0

System.GC.GetTotalMemory(false);を使用すると、現在のメモリを取得できます。使用可能なメモリが必要な場合はNSProcessInfo.ProcessInfo.PhysicalMemoryを使用できます。その後、余分なリソースをクリーンアップするために、DidReceiveMemoryWarning()という独自の動作を上書きすることができます。

EX:

public override void DidReceiveMemoryWarning() 
{ 
    photoMap.Clear(); 
    View = null; 
    photoImageView = null; 
    toolbar = null; 
    syncIsNeeded = true; 
    base.DidReceiveMemoryWarning(); 
} 
+0

しかし、これは右、 "使用メモリ" とは?使用可能なメモリがNSProcessInfo.ProcessInfo.PhysicalMemory - System.GC.GetTotalMemory(false)であると仮定できますか? –

+0

はい、それはメモリに使用されます。利用可能なのは 'NSProcessInfo.ProcessInfo.PhysicalMemory'です。ただし、Titanium Mobileの実装はこれらの項目と異なる場合があります。ここにソースがあります:https://github.com/appcelerator/titanium_mobile/blob/a8aceeaeee02ed9c8ea70c835a0e78960e254a55/iphone/Classes/PlatformModule.m#L254-L265 –

+0

TY!私はいくつかのストレステストを行います! –

関連する問題