我正在尝试使用jhat / OQL来跟踪Tomcat容器中的内存泄漏。我想问的问题是:
“向我展示可以从javax.servlet.http.HttpSession访问的foo.bar.Cacheable类的所有实例(和子实例)”
我设法提出了以下内容,但这并未显示foo.bar.Cacheable的子类(这很重要,因为这实际上是一个接口)。
select filter(reachables(s), "/foo.bar.Cacheable/(classof(it).name)") from javax.servlet.http.HttpSession s
Run Code Online (Sandbox Code Playgroud)
我尝试了以下概念的各种排列,但始终会出错(未定义“ foo”)。
select filter(reachables(s), classof(it) instanceof foo.bar.Cacheable) from javax.servlet.http.HttpSession s
Run Code Online (Sandbox Code Playgroud)
谁能通过OQL帮我解决我做错的事情吗?
我需要从枚举中获取所有值,其类型仅在运行时才知道.我想出了以下内容,但想知道是否有人知道更好的方法:
enum TestEnum {
FOO,
BAR
}
Enum[] getValuesForEnum(Class type) {
try {
Method m = type.getMethod("values");
return (Enum[])m.invoke(null);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Class testEnum = Class.forName("TestEnum");
getValuesForEnum(testEnum);
Run Code Online (Sandbox Code Playgroud)
谢谢!
任何人都可以告诉我如何切片下面的结构:
[[1, A], [2, B], [3,C]]
Run Code Online (Sandbox Code Playgroud)
分成两个单独的列表:
[1, 2, 3]
[A, B, C]
Run Code Online (Sandbox Code Playgroud)
我显然可以使用代码执行此操作,但是想知道Python是否能够本机执行此操作?
我正在使用Jetty提供的ServletTester类来测试我的一个servlet.
servlet使用InputStream.read()读取请求的主体,以构造一个byte [],它由servlet解码并执行.
ServletTest类提供了getResponses(ByteArrayBuffer)方法,但我不确定如何以正确的格式创建其中一个,因为它还需要包含诸如头之类的东西(例如"Content-Type:application/octet-stream").
任何人都可以向我展示一种简单的方法来构建它,最好使用现有的库,以便我可以以类似于HttpTester类的方式使用它.
如果有一种"更好"的方法来测试servlet(理想情况下使用本地连接器而不是通过tcp堆栈),我也想听一听.
非常感谢,
如果我在实现Runnable的类中有一个log4j记录器:
MyTask implements Runnable {
private static final Logger log = Logger.getLogger(MyTask.class);
...
}
Run Code Online (Sandbox Code Playgroud)
如果我创建了许多这样的实例Runnable并将它们提交到ExecutorService多核机器并且它们并行运行,并且它们都写入静态Logger,那么这似乎存在争用的风险.一个更好的模式似乎是:
MyTask implements Runnable {
private final Logger log;
MyTask(String name) {
log = Logger.getLogger(name);
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题......这是你用过或发现必要的模式,因为我现在纯粹是假设吗?
谢谢
我最近开始在Mac OS X上编程C(10.7.4).我在/ usr/include中有stdlib的各种头文件,但希望得到源代码.这主要是我自己学习所需要的,但我也希望生成Ctags以便在Vim中轻松导航.
有可能从某个地方获得这个,如果是这样的话吗?
提前致谢!