"ガベージコレクタ"からの干渉もなく、メモリ使用量を超えない安定したメモリが必要です。オブジェクトをエデンスペースJAVA8フォームをクリアするには?
package com.company;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import java.net.URI;
public class Main {
public static void main(String[] args) {
new GetThread().start();
}
static class GetThread extends Thread {
private HttpGet httpGet = new HttpGet();
private final CloseableHttpClient httpClient;
public GetThread() {
this.httpClient = HttpClientBuilder.create()
.build();
try{
httpGet.setURI(new URI("https://play.google.com/store/apps/details?id=com.whatsapp"));
}
catch (Exception e){
e.printStackTrace();
}
}
@Override
public void run()
{
StringBuilder body;
for (int i = 0; i < 50000; i++)
{
try{
CloseableHttpResponse response = httpClient.execute(httpGet);
body = new StringBuilder(EntityUtils.toString(response.getEntity()));
EntityUtils.consume(response.getEntity());
response.close();
body.setLength(0);
response = null;
body = null;
}
catch (Exception e){
e.printStackTrace();
}
}
}
}
}
問題の線
本体= EntityUtils.toString(response.getEntity())。
このオブジェクトをnullとして設定しようとしましたが、まだEden空間に存在しています。
オブジェクトがヌルであるが、「ガベージコレクタ」とメモリをきれいになるまで、それはまだメモリ内に存在します。
ありがとうございます!
あなたがこれを行うべきではありません。 GCにその仕事をさせてください。私はそれに応じてGCを処理しているリアルタイムアプリケーションのJVMを探すことをお勧めします。 – duffymo
オブジェクトをnullにすることはできません。変数には値 'null'を格納できます。ガベージコレクションのサイクルでヒープがクリアされます。なぜあなたは何か違うことを期待しているのですか? –
[XY問題](http://xyproblem.info/)のような質問です。あなたは解決しようとしている実際のGCの問題について疑問を投げかけなければなりません。 – the8472