我想在设置为HttpSession时测量对象的大小(Serialized与否)。我怎样才能做到这一点 ? 即使找到了一些支持性问题,也无法使用..任何人都知道如何做到这一点?可能会话监听器的使用可能很有价值。但是如何测量对象的大小? 例如
session.setAttribute("attrName",sessionObj);
如何衡量此sessionObj的大小?
答案 0 :(得分:1)
您可以使用java.lang.instrument来衡量对象的大小。
该类提供了Java编程工具所需的服务 语言代码。 Instrumentation是添加字节码 用于收集工具使用的数据的方法。 由于这些更改纯粹是附加的,因此这些工具不会修改 应用程序状态或行为。这种良性工具的例子包括 监控代理,分析器,覆盖分析器和事件记录器。
此answer是如何使用它的示例。
正如您所说,[HttpSessionAttributeListener][3]
是检查添加属性大小的好地方。
在这里添加代码大小。
public void attributeAdded(ServletContextAttributeEvent scae) {
System.out.println("Attribute addedd:["+scae.getName()+"],"+scae.getValue());
}