摘要:
最近在编写一个O/RM组件(当然功能还是相当少的)。大家都应该清楚把实体对象更新到数据库必须经过一系列的转换;特别是SQL语句的生成是比较费资源的,因为中间处里的东西实大是太多了。在设计的过程中我就想如果一个对象插入数据库后把相应的Command保存在缓存中;下一次同一个类型的对象做这个操作时检测一下缓存如果有就直接拿来用这样效率应该会高些。抱着这种想法就开始设计了(不过心里还是上上下下的,毕竟第... 阅读全文
摘要:
public abstract class ReadFreeCache<TKey, TValue>{protected ReadFreeCache(): this(null){ }protected ReadFreeCache(IEqualityComparer<TKey> comparer){this.m_storage = new Dictionary<TKey,... 阅读全文
摘要:
摘要:做一个有状态的网络服务端应用,一般需要维护一个在线用户列表,每次用户登录、注销都要修改这个列表,还得考虑超时清理的逻辑,对这个列表的操作大多时候需要用锁来进行线程同步,我们试图来用一种不需要线程同步的方法来做到这些事情。分析:1、我们可以预算好一个系统承受在线用户的上限,比如1w人,或者2w人,这样我们就可以初始化一个固定长度的集合,省得动态分配内存,增加GC压力。2、一个固定长度的集合可以... 阅读全文