java内存泄漏和生存世代的增长
我的项目有问题,需要将许多请求发送到服务器 问题是幸存的几代人还在继续成长 我使用Netbeans IDE开发我的项目,并使用Netbeans探查器检测内存泄漏 我创建了一个用于测试的类: 测试类java内存泄漏和生存世代的增长,java,netbeans,memory-leaks,profiler,Java,Netbeans,Memory Leaks,Profiler,我的项目有问题,需要将许多请求发送到服务器 问题是幸存的几代人还在继续成长 我使用Netbeans IDE开发我的项目,并使用Netbeans探查器检测内存泄漏 我创建了一个用于测试的类: 测试类 public class test { public test(String url) throws IOException { CloseableHttpClient client = HttpClientBuilder.create().build();
public class test {
public test(String url) throws IOException {
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);
client.execute(request);
System.out.println("\nSending 'GET' request to URL : " + url);
}
}
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
for (int i = 1; i < 10000; i++) {
new test("http://foo.dev/article?id="+i);
}
}
}
主类
public class test {
public test(String url) throws IOException {
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);
client.execute(request);
System.out.println("\nSending 'GET' request to URL : " + url);
}
}
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
for (int i = 1; i < 10000; i++) {
new test("http://foo.dev/article?id="+i);
}
}
}
公共类主{
公共静态void main(字符串[]args)引发IOException、InterruptedException{
对于(int i=1;i<10000;i++){
新测试(“http://foo.dev/article?id=“+i);
}
}
}
NetBeans探查器结果:
幸存的几代人
堆结果
netbeans站点:
通常情况下,存活世代的价值在
应用程序的启动,但经过一段时间后,它应该达到某种稳定状态
限制和平衡。发生这种情况时,表示没有对象
正在不断创建和泄漏。如果幸存者
代际线一直在增长(无论如何)
很快),则应用程序很可能发生泄漏
我的问题是,为什么幸存的几代人继续增长,我的代码中的原因是什么
有什么需要帮忙的吗…我在一个节目中有一些观察。一些想法:1.在您的程序中:CloseableHttpClient和HttpGet来自Apache,对吗?因此,如果没有详细的分析,很难知道这些现象是否是由这些类引起的。“通常”并不意味着“肯定”,对吗?3.client.exe是否执行非阻塞?4.该行为可能取决于网络的其他端点。。。你能把这个例子修改成独立于另一个过程吗?我在一个程序中有一些观察。一些想法:1.在您的程序中:CloseableHttpClient和HttpGet来自Apache,对吗?因此,如果没有详细的分析,很难知道这些现象是否是由这些类引起的。“通常”并不意味着“肯定”,对吗?3.client.exe是否执行非阻塞?4.该行为可能取决于网络的其他端点。。。您能否将示例修改为独立于其他流程?