Mockito を使用してデータベース プールをシミュレートしようとしましたが (データの取得のみ)、一定期間にわたって多くのモック接続を取得するパフォーマンス テストを実行すると、メモリが不足しました。
これは、私のマシンで約 150,000 回のループ反復の後に OutOfMemoryError をスローする単純化された自己完結型のコードです (何もグローバルに保存されていないようで、すべてがガベージ コレクション可能である必要があります)。私は何を間違っていますか?
import static org.mockito.Mockito.when;
import java.sql.Connection;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class Test1 {
static class DbPool {
public Connection getConnection() {return null;}
}
@Mock
private DbPool dbPool;
@Mock
private Connection connection;
public Test1() {
MockitoAnnotations.initMocks(this);
when(dbPool.getConnection()).thenReturn(connection);
for(int i=0;i<1000000;i++) {
dbPool.getConnection();
System.out.println(i);
}
}
public static void main(String s[]) {
new Test1();
}
}