发表在 MS 论坛Mobile Worker 模块见解
技术堆栈:软件:Visual Studio 2008、.NET Framework 3.5、Windows Mobile 6.5.3、SQLite 数据库、RESCO UI 控件
硬件:Honeywell Dolphin 99EX 设备处理器:Texas Instruments® OMAP3715 1.0GHz 处理器操作系统:Microsoft® Windows Embedded Handheld 6.5 Professional 和 Classic 内存:512 MB RAM x 1 GB Flash
问题域:当我们在手持设备上运行应用程序时,分配给应用程序的程序内存 (32MB) 被填满并且手持设备被重新启动。没有为该型号设备增加程序内存(虚拟内存)的规定。
移动工作人员应用程序开始使用设备上剩余的大约 12-14 MB 虚拟内存。
Rest 用于应用程序启动和其他启动过程。
随着用户继续他们的任务(打开表单),几乎每个任务的内存开始逐渐减少,平均为 0.20 MB。在该页面上完成任务后,我们将关闭表单。但是,在数据整理绑定期间或从 SQL lite 选择进程期间,很少有进程消耗 1 MB 内存。
如果用户停留在相同的流程或使用相同的表单,则虚拟内存保持在 5MB。但是,如果用户离开当前流程并进入需要打开新表单的新流程,它就会开始减少超过 5MB。
从这里开始,随着工人打开一个新进程,内存减少并降为零。这会导致应用程序崩溃并重新启动。
下面是我们启动设备时的内存日志。400 物理内存中剩余 300 和 32 MB 虚拟内存中剩余 24 MB
成功启动应用程序时的内存状态:- 300.79/420.94 (MB)Phys, 24.44 /32.00 (MB)Virtual
成功启动 ECD 应用程序后自动触发的 SQL lite 表创建后的内存状态 290.45/420.94 (MB)Phys, 16.25 /32.00 (MB)Virtual
新 HH 注册进程后的内存状态,与设备一样,注册设备进程运行并消耗大约 2 MB:- 288.60/420.94 (MB)Phys, 14.50 /32.00 (MB)Virtual
管理员登录后的内存状态:- 281.88/420.94 (MB)Phys, 12.06 /32.00 (MB)Virtual
Supervisor 开始执行不同的操作,内存利用率逐渐开始上升并逐渐下降到零:- Dock 视图集合绑定后的内存状态。271.11/420.94 (MB) 物理,9.00 /32.00 (MB) 虚拟。