Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows Phone 8.1(通用)中获取设备的RAM(512 mb、1GB、2GB)量?_C#_Windows Phone 8.1_Win Universal App - Fatal编程技术网

C# 如何在Windows Phone 8.1(通用)中获取设备的RAM(512 mb、1GB、2GB)量?

C# 如何在Windows Phone 8.1(通用)中获取设备的RAM(512 mb、1GB、2GB)量?,c#,windows-phone-8.1,win-universal-app,C#,Windows Phone 8.1,Win Universal App,我有一个相当简单的问题,我自己回答不了。。谷歌和StackOverflow也没有提供任何结果:( 我希望我的BitmapImage的DecodePixelHeight取决于设备的RAM量。如果设备有512 MB,则DecodePixelHeight应低于1GB和2GB。我这样做是因为我正在努力解决内存问题 如何在Windows Phone 8.1(通用应用程序)上识别512 MB的低端设备 亲切问候,, 尼尔斯(Niels)以下摘自 在开发应用程序时,您可以使用应用程序当前内存使用设置和应用程序

我有一个相当简单的问题,我自己回答不了。。谷歌和StackOverflow也没有提供任何结果:(

我希望我的BitmapImage的DecodePixelHeight取决于设备的RAM量。如果设备有512 MB,则DecodePixelHeight应低于1GB和2GB。我这样做是因为我正在努力解决内存问题

如何在Windows Phone 8.1(通用应用程序)上识别512 MB的低端设备

亲切问候,, 尼尔斯(Niels)

以下摘自

在开发应用程序时,您可以使用
应用程序当前内存使用设置和
应用程序峰值内存使用设置来监控内存使用情况,并使用
设备总内存设置和
应用程序内存使用设置来确定设备和应用程序内存限制。无需以极小的间隔检查应用程序的内存使用情况。偶尔检查内存峰值使用情况就足够了。如果发现内存峰值使用情况超过了允许的阈值,如Windows Phone技术认证要求第5.2节所述,您可以选择更精确地监视内存使用情况以帮助诊断问题

具体而言,该属性应允许您根据设备的RAM有条件地执行某些任务

考虑到它的用途,它可能更合适,但请注意,它返回的值永远不会是512MB或1GB,但在512MB设备上,它将远低于1GB设备上的值,您可以使用1GB设备来实现此目的

MSDN上的文档也可以提供对该主题的更多了解

var deviceTotalMemory = Microsoft.Phone.Info.DeviceStatus.DeviceTotalMemory;
var memoryUsageLimit = Microsoft.Phone.Info.DeviceStatus.ApplicationMemoryUsageLimit;

看看这篇关于MSDN的文章

其中一个主题与应用程序内存限制(由操作系统分配)有关。我认为这是您应该更担心的值,而不一定是设备的物理内存

检查设备的应用程序内存限制

使用Windows Phone SDK 8.0或Windows Phone SDK 7.1.1更新,您可以 检查承载应用程序的设备的内存工作集限制,然后 然后,如果您知道应用程序的某些功能不可用,您可以禁用它们 支持或内存密集型。要检查内存工作集 限制,则调用GetValue(String)方法并传递 propertyName参数的ApplicationWorkingSetLimit 下面的代码显示了如何执行此操作#

有一个表格显示了内存限制与设备物理内存的关系


另外,请看这篇文章:

MS没有提供精确的方法来查找设备RAM的数量,但我自己找到了解决方案。我告诉您,我是如何根据设备RAM编写应用程序代码的

private void deviceMemory()
    {
        var memoryLimit = Windows.System.MemoryManager.AppMemoryUsageLimit;
        memoryLimit = (memoryLimit / 1024) / 1024;
        Debug.WriteLine("Device Memory Limit: "+memoryLimit+"MB");
    }
这不是你所期望的,但有总比没有好。找到设备内存限制后,我可以轻松地编写相应的应用程序代码


@pwdst感谢您从该链接添加图像。建议的任何答案是否足以回答您的问题?如果没有,您是否可以提供更多信息?他正在询问WP 8.1!!!您找到解决方案了吗?
private void deviceMemory()
    {
        var memoryLimit = Windows.System.MemoryManager.AppMemoryUsageLimit;
        memoryLimit = (memoryLimit / 1024) / 1024;
        Debug.WriteLine("Device Memory Limit: "+memoryLimit+"MB");
    }