fre*_*hie 2 .net c# asp.net session .net-4.0
我有一个int列表,它以字符串的形式存储在DB中,其间有逗号(4345,324,24,2424,64567,33 ...).这个字符串可能会变得非常大,包含2-3千个数字.它存储在数据库中并经常使用.
我想的是,不是每次需要时都从DB中读取它,最好在第一次加载后将它存储在会话中.
1,000 int的列表需要多少内存?内存大小是否也依赖于int本身,这样存储较大的int(234,332)比较小的int(544)占用更多的空间?
读取一次并以会话存储空间为代价存储在会话中会更好,或者更好地经常读取并在渲染后从内存中丢弃.
谢谢你的建议.
我认为你正走向错误的方向.存储在DB中可能是更好的选择,不是以逗号分隔格式,而是作为int值表.
在会话中存储数据将显着降低可伸缩性.你可能会开始有OutOfMemory异常,并想知道为什么会这样.
因此,我的建议是在需要时从DB读取,应用适当的索引,它将非常快.
你前进的方式是:
第1天,1位用户 - 嗯,我应该在Session中存储数据,为什么不呢.应该快速工作.无需查询DB.也很容易做到.
第10天,5位用户 - 需要存储另一个数据结构,也会把它放到会话中,为什么不呢?会话非常快.
第50天,10个用户 - 有一个控件可以渲染,我会让它变得聪明,渲染一次而不是放到Session中,将在每次回发时重复使用它.
第100天,20位用户 - 有时网站速度慢,不知道为什么.但它只是有时候,所以没什么大不了的.
第150天,50位用户 - 速度很慢.需要更好的CPU和内存?我们需要购买更好的服务器,硬件是旧的.
第160天,60位用户 - 拥有一台新服务器,工作速度更快.问题解决了.
第200天,100位用户 - 再次放慢,为什么?这是最新的最昂贵的服务器!
第250天,150位用户 - 应用程序池一直在重新启动.为什么?OutOfMemoryException异常?这是什么?我会google.
第300天,200位用户 - 用户抱怨,我们失去了客户.我读到了WinDbg,需要尝试使用它.
第350天,200位用户 - 如果我们开始使用网络负载平衡,我们可以购买两台服务器!买了服务器,试过用,没用,很多依赖Session.
Day#400,200位用户 - 无法获得新客户,老客户消失.开始使用WinDbg发现几乎所有的内存都是由Session使用的.
Day#450,200位用户 - 开始一个名为"摆脱会话"的大项目.
Day#500,250位用户 - 服务器现在如此之快.
我去过那里看过.基本上我的建议 - 不要这样走.
| 归档时间: |
|
| 查看次数: |
5026 次 |
| 最近记录: |