测量会话属性对象的大小

时间:2014-01-17 10:03:48

标签: java jsp java-ee servlets httpsession

我想在设置为HttpSession时测量对象的大小(Serialized与否)。我怎样才能做到这一点 ? 即使找到了一些支持性问题,也无法使用..任何人都知道如何做到这一点?可能会话监听器的使用可能很有价值。但是如何测量对象的大小? 例如

session.setAttribute("attrName",sessionObj); 

如何衡量此sessionObj的大小?

1 个答案:

答案 0 :(得分:1)

您可以使用java.lang.instrument来衡量对象的大小。

  

该类提供了Java编程工具所需的服务   语言代码。 Instrumentation是添加字节码   用于收集工具使用的数据的方法。   由于这些更改纯粹是附加的,因此这些工具不会修改   应用程序状态或行为。这种良性工具的例子包括   监控代理,分析器,覆盖分析器和事件记录器。

answer是如何使用它的示例。

正如您所说,[HttpSessionAttributeListener][3]是检查添加属性大小的好地方。 在这里添加代码大小。

public void attributeAdded(ServletContextAttributeEvent scae) {
    System.out.println("Attribute addedd:["+scae.getName()+"],"+scae.getValue());
}