长时间观察者,这是我的第一篇文章,所以请放轻松我。我环顾四周,但我的查询非常具体,我在其他地方找不到。
我有一个由2个控件组成的应用程序。
当用户点击树视图中的节点时,我的应用程序将确定与搜索链接的GUID,并显示相关的数据集,该数据集将被展平并显示在数据网格上。
我分别在退出/加载应用程序时保存(序列化)并加载(反序列化)词典。
我最近进行了一些内存分析,对于较大的搜索,对于用户机器的有限容量,字典的内存占用量可能非常大(200mb),我真的需要理清。
我想知道是否有人知道如何实现这一点。
我正在考虑将Serialisable Dictionary拆分为组成数据集,并将每个数据集分别存储在硬盘驱动器上(可能使用GUID作为文件名)。然后,使用每个Node.Click事件对保存的数据集进行反序列化,并显示在网格视图中。我担心的是每次点击事件之间可能会暂停,因为它会保存旧搜索并加载新搜索。
答案 0 :(得分:1)
简单的回答,将字典和数据集扔到Sqlite文件中。 (或其他数据库)它会慢一点,但我希望比你能在合理的时间内手动编码的代码更快。如果使用正确,db层将执行内存缓冲和缓存,以使ui更具响应性。