Как измерить размер HttpSession точно и эффективно - PullRequest
4 голосов
/ 14 октября 2011

Существует ли простой, эффективный и точный способ измерения размера сеанса в приложении на основе сервлетов? Предпочтительно метод измерения должен быть независимым от сервера приложений / контейнера.
Я пытался измерить размер сеанса с помощью лямбда-зонда на Tomcat 7, но он показался мне неточным, медленным и глючным. Я думаю, что должен быть простой способ, потому что почти каждый приличный разработчик Java EE заботится о размере сессии.

Я хочу провести стресс-тестирование моего приложения и измерить раздувание сеанса.

1 Ответ

0 голосов
/ 09 февраля 2012

Вот как мы вычисляем этот размер сеанса в самом приложении:

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++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...