在系统中使用缓存

   在做web应用是使用缓存是很常见的,ASP.NET也提供了缓存的支持,在winform程序中用缓存就不是那么随处可见,其实在winform也很需要缓存的,现在的内存一般都比较大,缓存一些耗时的计算结果或查询结果,对于系统系能的提高是很明显的。
   在使用缓存的键值集合中一般使用Hashtable和Dictionary,Dictionary类是泛型的,对于指定的类型可以免去转换操作,对于缓存来说也没什么用处,要缓存的类型只能是终极基类object,Hashtable和Dictionary都采用了哈希散列的,因此通过键可以很快访问到值,作为缓存集合是很合适的。
   在程序中如果直接使用Hashtable和Dictionary作为缓存载体未免不是很好用,因此可以编写一个封装缓存功能的类,可以类似于Web中的Session功能,来实现缓存操作。
   至少应该包含的函数有:
      void Add(object key,object value);
      void Remove(object key);
      void Clear();
      bool ContainsKey(object key);
      T GetValue<T>(object key); //不采用泛型就应该是用object
  使用缓存的场合:
    1: 一个耗费大量计算时间得到的结果,且该结果会频繁或多次使用;
    2: 大型数据库查询结果,查询结果会被多次使用,且查询的东西在短期内不变
    3:  耗时创建的对象,且对象被多次使用;
    4: 远程处理获得的对象,网络操作获取的结果。
  要不要缓存的前提,缓存对象得到代价是否比较高,是否在较长时期内不会变动。越长时间不变且缓存对象获得代价越高,缓存对于性能的提高就越明显。
  虽然winform一般都是富客户端,但在winform中使用缓存还是值得的,通过牺牲一点内存,得到大幅的性能提升。  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值