【问题标题】:How to measure HttpSession size accurately and effectively如何准确有效地测量 HttpSession 大小
【发布时间】:2011-12-07 13:55:17
【问题描述】:

是否有一些简单、有效和准确的方法来测量基于 servlet 的应用程序中的会话大小?测量方法最好独立于应用程序服务器/容器。
我尝试在 Tomcat 7 上使用 Lambda Probe 测量会话大小,但在我看来,它不准确、缓慢且有问题。我认为应该有一些简单直接的方法,因为几乎每个体面的 Java EE 开发人员都关心会话大小。

我想对我的应用程序进行压力测试并测量会话膨胀。

【问题讨论】:

    标签: session servlets size


    【解决方案1】:

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

    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++;
    }
    

    【讨论】:

    • 这不准确,因为它只测量会话对象的序列化表示的大小,而不是会话对象的实际内存占用,另外它还跳过了不可序列化的对象。
    猜你喜欢
    • 2010-12-10
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多