将.Net Compact Framework应用程序移动到Windows CE设备的SD卡时,程序执行速度较慢,然后从内部存储器运行。
我想,初创公司可能会慢一点,但这是整个计划。存储卡没有IO。
为什么我的应用程序如此缓慢以及紧凑框架如何处理和加载程序集?
答案 0 :(得分:11)
它与请求分页有关。您的应用无法直接从SD卡运行,因为SD不是可执行媒体,因此必须将其拉入RAM才能运行。 Windows CE通常没有大量的RAM,因此加载程序不会将整个应用程序拉入RAM运行。当然,你的堆和堆栈将在RAM中,但是程序集中的实际IL代码会根据需要进行分页。当系统决定不再需要特定页面时,它也会被分页。
这种分页会对性能产生影响,但我有点惊讶它是一个很大的影响,除非应用程序本身非常大(如果你有很多嵌入式资源,它正在退出程序集)。 / p>
答案 1 :(得分:1)
我同意ctacke先前的“请求 - 寻呼”答案。
您可能尝试的解决方案是从SD卡执行加载程序,将您的实际可执行文件和DLL从卡复制到硬盘,然后从加载程序执行您的程序。在后续执行中,加载程序可以检测硬盘版本是否是最新的,如果是,则直接启动它。如果硬盘版本不是最新版本,则加载程序将再次从卡中复制过期文件,然后执行实际程序。
我之前从远程网络位置加载的程序完成了这项工作,并且效果非常好。
答案 2 :(得分:0)
如果应用程序位于SD卡上,某些设备会使程序崩溃。它在挂起电源设备时发生。