当前位置: 代码迷 >> ASP.NET >> |zyciis| 基础有关问题:Session 和 Cache 存放和读取的区别 还有
  详细解决方案

|zyciis| 基础有关问题:Session 和 Cache 存放和读取的区别 还有

热度:10854   发布时间:2013-02-25 00:00:00.0
|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 ,那才夸张~

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

  相关解决方案