当前位置:  开发笔记 > 开发工具 > 正文

使用Web服务的SQL CE OutOfMemoryException

如何解决《使用Web服务的SQLCEOutOfMemoryException》经验,为你挑选了1个好方法。

尝试通过Web服务下载文档时,我们不断收到OutOfMemory异常.我们将文档字节数组数据存储为序列化消息对象的一部分,原始文档的大小均为~500kb.消息对象图中唯一的另一个东西是两个用于关联的字符串属性.

我们已经尝试检索压缩和未压缩的文档具有相同的问题.现在我相信在尝试反序列化消息而不是在下载流时引发了异常.

我知道这是一个模糊的问题,但是你们中的任何人都知道是什么原因造成的吗?此处传输的数据量似乎非常小,并且在传输时设备上几乎没有其他事情发生.



1> Clyde..:

Windows Mobile设备上的内存非常紧张 - 这真的是一个痛苦的世界.首先,一个进程的总内存是(如果我没记错的话)32 MB.现在不仅填充了代码内存分配,而且填充了DLL,EXE等代码.

现在,当您将500KB下载到字节数组中时,它不仅需要500KB.它需要500KB的CONTIGUOUS MEMORY,一旦应用程序运行一段时间,它就不太可能找到.

我的建议是直接使用HttpRequest而不是Web服务下载文件.也许Web服务可以传回您需要的URL或类似的东西.但是直接下载文件,你可以用块处理它 - 读取8K,然后将8K写入磁盘,然后读取另外8K等.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有