我有一个结合在Windows Phone 8.1 SDK上的VoIP应用程序。
我每次呼叫VoipBackgroundProcess.Launch()在后台启动VoIP进程,VoipPhoneCall.NotifyCallActive()通知系统我的VoIP呼叫处于活动状态,我得到Windows.System.MemoryManager.AppMemoryUsage来检查应用程序在调用该函数之前和之后的内存使用情况。
在我的测试中,在我调用该函数后,内存使用总是会立即增加大量内存。 512MB ram lumia设备上的示例:
除此之外,我的应用程序还做了很多与内存相关的工作,比如渲染图像或媒体消息,但内存限制只有180 MB(从Windows.System.MemoryManager.AppMemoryUsageLimit获取),很容易得到异常内存不足并使我的应用崩溃。
在Windows phone 8.0 SDK上组合我的应用程序时,我做同样的事情,但是当我获得内存使用时(来自Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsage),它不会占用内存,如Windows phone 8.1 SDK。
在Windows Phone 8.1 SDK上调用VoIP apis时,有没有人对系统为什么占用大量内存有任何想法?