仔细模拟一下你的数据库程序,你有没有发现在计算时(特别是多用户计算时)经常重复读取数据库数据?!这是数据库处理程序的性能的最主要的杀手。 (转)
来源:互联网 发布:2016燕十八全套php 编辑:程序博客网 时间:2024/06/04 18:50
using System;using System.Collections.Generic;namespace DomainBase{ public class ObjectCache { //Dictionary<K,T> 会自动维护一个空链表来保存不用的单元。 //这里,使用被缓存对象的“弱引用”,允许这些对象被垃圾回收。 private Dictionary<string, WeakReference> Buffer = new Dictionary<string, WeakReference>(); public object this[string key] { get { WeakReference ret; if (Buffer.TryGetValue(key, out ret) && ret.IsAlive) return ret.Target; else return null; } set { WeakReference ret; if (Buffer.TryGetValue(key, out ret)) ret.Target = value; else Buffer.Add(key, new WeakReference(value)); } } public void Remove(string key) { Buffer.Remove(key); } }}
这就是最简单的Cache。例如:
public Class User
{
static ObjectCache Buffer=new ObjectCache();
public static GetUser(string id)
{
User ret=Buffer[id];
if(ret==null)
{
ret=读取数据库产生User对象(id);
Buffer[id]=ret;
}
return ret;
}
.....
这里,在一个Dictionary <K,T>结构字典中保存了对象的key以及对象的“弱引用”。这样,当内存不足时GC会照样去释放被缓存的对象。当我们需要将对象在几秒钟内进行缓存时,使用这个最简单的Cache很有用。
.net framework中有非常多非常多的东西需要程序员去了解,不要仅仅抱着那些空洞、不实惠的“放之四海而皆准”的大部头的著作,有时间要多读一些实际地分析 .net framework 系统本身的方面的资料。在每一个技术中都可以找对一两个细节,这个细节就像掌握DNA技术一样能够让你不但扩展原理而且通过动手能力得到巨大实惠。
- 仔细模拟一下你的数据库程序,你有没有发现在计算时(特别是多用户计算时)经常重复读取数据库数据?!这是数据库处理程序的性能的最主要的杀手。 (转)
- Cache也能让你的复杂计算程序(数据库程序)大大提高速度
- 一个世界上最懒惰的程序员写的Cache也能让你的复杂计算程序(数据库程序)大大提高速度
- 一个世界上最懒惰的程序员写的Cache也能让你的复杂计算程序(数据库程序)大大提高速度
- 一个世界上最懒惰的程序员写的Cache也能让你的复杂计算程序(数据库程序)大大提高速度
- 一个世界上最懒惰的程序员写的Cache也能让你的复杂计算程序(数据库程序)大大提高速度
- 统计一下哪些数据库的sum函数有计算误差
- 查询数据库中有没有重复的数据
- c#程序,插入数据库,数据库中没有数据的原因
- 教你删除Oracle数据库中重复没用的数据
- 数据库的IOPS计算
- 数据库的连接以及处理重复数据
- 你知道的数据库有哪些?(任务一)
- 手把手教你做一个简单的VB数据库程序
- 数据库技巧你是如此的重要!
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- 优化你的数据库
- 【你的数据库危机四伏 】
- 菜鸟入门——read,write,lseek的用法
- 感谢
- 湘大校庆对联
- 演给顶层楼座的观众看
- 破解vmware与锐捷冲突
- 仔细模拟一下你的数据库程序,你有没有发现在计算时(特别是多用户计算时)经常重复读取数据库数据?!这是数据库处理程序的性能的最主要的杀手。 (转)
- 北大2136题
- A Catalog of Local Windows Kernel-mode Backdoor Techniques—WIndows内核级后门技术
- [双语阅读]国际空间站宇航员冰茶、火鸡庆感恩节
- vc技巧
- 北大2225题
- 21世纪7种人才最抢手----李开复
- “左耳进右耳出”英语怎么说
- XP home版安装IIS方法