Base-Jsp-7-session内存使用策略

本文主要介绍了Java服务器中session内存使用策略。阐述了应用程序和会话作用域内对象占用内存的计算方法,以购物车为例进行说明。同时给出控制服务器内存的提示,如仅保存必要对象、缩短会话有效期、提供显式结束会话的方法等。

Øsession内存使用策略:

® 应用程序和会话作用域内的所有对象都将在服务器进程中占有内存。

® 应用程序作用域对象占用内存数:你产生的全局对象数*对象大小。

® 计算session作用域中占用内存的方法:

会话作用域内的对象数目取决于当前会话的数目,所以除了每个对象的大小外,你

还需要知道当前有多少个用户,以及一个会话将持续多长时间。

例:以购物车为例,购物车内有3件产品,

i)                 单个用户购物车对象占用服务器内存量

              3*8+8=32个字节

3件产品乘以每一件产品对象的大小,加8是因为保存产品的集合对象引

用也需要一些额外的开销

ii)                假设该网站每小时有10位用户来购物,会话默认有效期是30分钟,所以共有10个活动的用户和10个已经不再活动得到会话,总共20个会话。内存占用量:

20 * 56 =1120个字节

56个字节是每个会话所需要的字节。32+24

iii)              如果每小时2000个用户,内存占用量

4000 * 56 = 220k字节

iv)              以上计算,只是按对象引用来计算一个对象引用的大小为8字节。如果会话中保存一些大对象,例如大的POJO,假设每个对象10KB

那么4000个会话就占用40M内存空间(有点大噢)。

® 控制服务器内存提示:

i)                 会话中知保存真正需要保存的对象

ii)                会话有效期设成比默认值短

iii)              提供一种显式地结束会话的方法,如“注销”功能,或当某件事完成后,使会话失效,可以使用HttpSession invalidate()方法,当某个会话失效时,可以使得所有的对象被回收。

注:Java中一个对象引用的大小为8字节

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值