如何准确有效地测量HttpSession大小

时间:2011-10-14 08:35:12

标签: session servlets size

是否有一些简单,有效和准确的方法来测量基于servlet的应用程序中的会话大小?优选地,测量方法应该是应用服务器/容器独立的 我尝试在Tomcat 7上使用Lambda Probe测量会话大小,但在我看来这种安静不准确,缓慢和错误。我认为应该有一些简单明了的方法,因为几乎每个体面的Java EE开发人员都关心会话大小。

我想强调测试我的应用程序并测量会话膨胀。

1 个答案:

答案 0 :(得分:0)

这是我们在应用程序本身中计算会话大小的方式:

totalSize = 0;
totalSerializable = 0;
totalNumber = 0;

HttpSession session = getSession();
Enumeration<String> attrs = session.getAttributeNames();
while (attrs.hasMoreElements()) {
    String attr = attrs.nextElement();
    SessionObject sObj = new SessionObject(attr, session.getAttribute(attr));
    sessionAttributes.add(sObj);
    if (sObj.isSerializable()) {
        totalSize += sObj.getSize();
        totalSerializable++;
    }
    totalNumber++;
}