我现在出现这么个情况,有一张表,实时性要求并不高,但访问量超大.我就把它的datatable放在cache里,每次用户访问就从cache里拿出来这张表进行筛选,然后返回给用户,然后cache15分钟左右更新一次.
测试没问题.一放到线上,问题来了.
一会web服务器的内存就满了(4G)内存我查了一下,问题可能就是出在这里
DataTable dt = (DataTable)Cache[boardCacheName];
这个dt是根据cache生成的,用户量大的话,每个用户都去生成这么个dt,那占用内存是可想而知的.
不知道这种情况有人遇到过么,怎样解决比较好?
测试没问题.一放到线上,问题来了.
一会web服务器的内存就满了(4G)内存我查了一下,问题可能就是出在这里
DataTable dt = (DataTable)Cache[boardCacheName];
这个dt是根据cache生成的,用户量大的话,每个用户都去生成这么个dt,那占用内存是可想而知的.
不知道这种情况有人遇到过么,怎样解决比较好?
·详情请访问:http://www.515dns.com
DataTable dt = (DataTable)Cache[boardCacheName];
这个dt是根据cache生成的,用户量大的话,每个用户都去生成这么个dt,那占用内存是可想而知的. 应该不是的,你那个数据表能有多大? 几万条数据在内存里也没多大的,象文章这种除外。dt 是引用,无论有多少个用户,在内存里只有一个实体你看看是不是你是不是把这个dt拿出来后作过其它什么处理了没?
跟这句没关系,是公有的全局,session才是私有的,人多内存就大多人还是一个dt的内存量