我正在通过 Eclipse MAT 对核心转储进行一些调查。我有一些 OQL,可以让我非常接近我想要的关于尚未收集的 Web 客户端会话的信息(并且占用大量内存)。
会话数据有一个日期,采用长整数格式。
这是一件小事(或者应该是),但我还没有弄清楚如何将那个长整数转换为 OQL 中有意义的日期对象,但这样做可以帮助我从潜在的泄漏中过滤掉无害的实时会话。
那么,在 MAT 的 OQL 中将 long 转换为 date 或 timestamp 的技巧是什么?
我正在通过 Eclipse MAT 对核心转储进行一些调查。我有一些 OQL,可以让我非常接近我想要的关于尚未收集的 Web 客户端会话的信息(并且占用大量内存)。
会话数据有一个日期,采用长整数格式。
这是一件小事(或者应该是),但我还没有弄清楚如何将那个长整数转换为 OQL 中有意义的日期对象,但这样做可以帮助我从潜在的泄漏中过滤掉无害的实时会话。
那么,在 MAT 的 OQL 中将 long 转换为 date 或 timestamp 的技巧是什么?
作为 MAT 的替代品,您可以使用visualvm
JavaScript 表达式可用作 OQL 查询中的过滤器,在您的情况下将所有会话限制为有意义的会话。
例如:
select o from java.util.Date o
where new java.util.Date(o.fastTime).getYear() > 114
&& new java.util.Date(o.fastTime).getMonth() == 7
我希望这可以帮助你。