首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >维护本地资产缓存

维护本地资产缓存
EN

Stack Overflow用户
提问于 2010-11-16 16:06:03
回答 2查看 233关注 0票数 0

我正在编写一个GUI远程处理客户端,其中服务器定义并执行屏幕,而一个小型GUI应用程序则在客户机上可视化这一点。我知道这听起来很像一个网站,这个系统将会有一个web客户端,但是现在我主要关注WPF客户端的实现。

这个系统的一部分是我需要同步服务器和客户端之间的资产。服务器将所有资产存储在一个.zip文件中,或者作为文件系统上的目录结构存储;我还没有决定。这些资产可能会发生变化:资产可以添加、删除或修改。这些修改需要与客户端同步。

我遇到的问题是如何将这些资产存储在客户机上。提出了以下要求:

Images/Icons/16/add.png);

  • A

  • 资产由路径类键(例如,必须维护每个资产以检测字符);

  • 大约有100至200个资产;资产的

  • 大小在1KB至500 KB之间(只有一到两个);中等大小为8KB;主要是.png图像文件;

  • 加载的资产将缓存在内存中,检索不必非常快;

  • 由于资产不经常变化,所以更新本地缓存不需要非常快。

我想出了以下方法:

  • Files on disc.这有以下优点:

代码语言:javascript
复制
- Easy to implement;
- Fast update and retrieval;

还有以下缺点:

代码语言:javascript
复制
- Many files "somewhere" on disc;
- Not possible to store meta data (CRC32);

  • Storing文件在 .zip 文件中。

代码语言:javascript
复制
- Well defined storage mechanism with good .NET support;
- Maintains a CRC32 for me (I believe);

还有以下缺点:

代码语言:javascript
复制
- Update and retrieval of random files is relatively slow (I believe);
- Not possible to store extra metadata (don't know if I'm going to need this though);

  • Storing文件在SQLite数据库中。有以下优点:

代码语言:javascript
复制
- Well defined storage mechanism with good .NET support;
- Allows all kinds of metadata to be stored;
- Fast update and retrieval of random files;

还有以下缺点:

代码语言:javascript
复制
- May be completely overkill;
- I'm worried about binary support with SQLite.

我的问题是: 1.我是否忽略了一个明显的备选方案和/或2.什么方法是最好的.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-18 21:06:44

采用了KISS方法:只需将整个资源文件下载到客户端.

资源库不会有那么大,1MB到2MB。可以使用单个散列检查整个.zip文件的更改,只有在更改时才能更新。由于这种情况不会经常发生(最多一个月一次),所以这不会是个问题。

票数 0
EN

Stack Overflow用户

发布于 2010-11-16 16:11:13

就我个人而言,我会使用SQLLite (或者说MySql,它是开源的和免费的)。

在我的经验中,即使是小的应用也有一种成长为大型应用的方式,你会很高兴你使用了正确的技术,即使它在一开始就过分了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4196184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档