UWP 设备总内存

Posted

技术标签:

【中文标题】UWP 设备总内存【英文标题】:UWP device total memory 【发布时间】:2016-08-17 23:15:48 【问题描述】:

如何确定设备的总内存?我想在低内存设备上使用顺序程序流,在高内存设备上使用更异步的流程。

示例:在具有 1GB 内存的设备上,我的程序可以运行,但在 512MB 的设备上,我的程序遇到了 OutOfMemoryException,因为它正在异步缓存来自多个站点的图像。

【问题讨论】:

【参考方案1】:

MemoryManager 类有一些静态属性来获取应用程序的当前使用情况和限制。

// Gets the app's current memory usage.
MemoryManager.AppMemoryUsage

// Gets the app's memory usage level.
MemoryManager.AppMemoryUsageLevel

// Gets the app's memory usage limit.
MemoryManager.AppMemoryUsageLimit

您可以使用 MemoryManager.AppMemoryUsageLimitChanging 事件对更改的限制做出反应

private void OnAppMemoryUsageLimitChanging(
    object sender, AppMemoryUsageLimitChangingEventArgs e)

    Debug.WriteLine(String.Format("AppMemoryUsageLimitChanging: old=0 MB, new=1 MB", 
        (double)e.OldLimit / 1024 / 1024,
        (double)e.NewLimit / 1024 / 1024));

您可以使用应用程序的内存限制来决定如何最好地管理您的内存分配。

【讨论】:

如何获取设备中安装的总内存?

以上是关于UWP 设备总内存的主要内容,如果未能解决你的问题,请参考以下文章

UWP开发入门(十六)——常见的内存泄漏的原因

Xamarin Forms 在 UWP 上是不是存在内存泄漏?

Xamarin.Forms UWP 中的内存泄漏

导航页面时是不是所有 UWP 应用都会泄漏内存?

UWP Windows 10 应用程序内存在导航时增加

UWP游戏防内存修改器的方法