日期:2014-05-18  浏览次数:20532 次

|zyciis| 基础问题:Session 和 Cache 存放和读取的区别 还有
如:
我有一个Table个对像
想问一下他存入Session和存入Cache的速度
还有从Session和从Cache读取出来的速度
如:
C# code

DataTable dtSave = CreateMyTable()
Session["Mytab"]= dtSave;
DataTable dtRead = (DataTable)Session["Mytab"];

 
C# code

DataTable dtSave = CreateMyTable()
Session["Mytab"]= dtSave;
DataTable dtRead = (DataTable)Session["Mytab"];

 
上面的两种方法存取的速度分别是怎么样的
谢谢

------解决方案--------------------
你测试一下从头走到尾要多久不就是了吗?
------解决方案--------------------
借楼主的地方学习,mark。
------解决方案--------------------
两者的区别应该不在于速度,而在于作用域。
------解决方案--------------------
|zyciis|的问题总是问得那么经典^
------解决方案--------------------
探讨
两者的区别应该不在于速度,而在于作用域。

------解决方案--------------------
你可以写代码。
int elapsedTime = Environment.TickCount;

DataTable dtSave = CreateMyTable()
Cache["Mytab"]= dtSave;
DataTable dtRead = (DataTable)Cache["Mytab"];


elapsedTime = Environment.TickCount - elapsedTime;

DataTable dtSave = CreateMyTable()
Session["Mytab"]= dtSave;
DataTable dtRead = (DataTable)Session["Mytab"];

elapsedTime = Environment.TickCount - elapsedTime;



------解决方案--------------------
问题有点........
速度没什么区别的
你想拿Cache做状态管理是么 ORZ

------解决方案--------------------
我认为速度应该没什么区别,因为其实现方式是一样的
------解决方案--------------------
速度不会明显的差异,都基于键/值对
(当前版本 Session 基于 System.Collections.Specialized.NameObjectCollectionBase 存储,Cache 未明)
但 Cache 需要更多的额外比较操作

------解决方案--------------------
我测试一个表但他们用时都是0毫秒 也太夸张了吧 

===========

如果不是 0 ms ,那才夸张~
------解决方案--------------------
Cache是存放里面的DataTable其他用户可以共用的
可以给Cache设置一个有效时间
Session是针对当前用户的,根据你的需求自己考虑就知道了

------解决方案--------------------
探讨
我测试一个表但他们用时都是0毫秒 也太夸张了吧

===========

如果不是 0 ms ,那才夸张~

------解决方案--------------------
传递的都是引用类型(指针),速度没区别。