< prev index next > test/hotspot/jtreg/vmTestbase/nsk/share/gc/gp/GarbageUtils.java
Print this page
* questions.
*/
package nsk.share.gc.gp;
- import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.invoke.*;
import java.util.*;
import jdk.test.whitebox.WhiteBox;
import nsk.share.gc.gp.array.*;
import nsk.share.gc.gp.string.*;
import nsk.share.gc.gp.list.*;
import nsk.share.gc.gp.tree.*;
import nsk.share.gc.gp.misc.*;
* questions.
*/
package nsk.share.gc.gp;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.invoke.*;
import java.util.*;
import jdk.test.whitebox.WhiteBox;
+ import nsk.share.gc.DefaultProducer;
import nsk.share.gc.gp.array.*;
import nsk.share.gc.gp.string.*;
import nsk.share.gc.gp.list.*;
import nsk.share.gc.gp.tree.*;
import nsk.share.gc.gp.misc.*;
public final class GarbageUtils {
private static final int ALLOCATION_LIMIT = 50000000; //50 Mb
private static GarbageProducers garbageProducers;
private static List<GarbageProducer> primitiveArrayProducers;
private static List<GarbageProducer> arrayProducers;
! private static final GarbageProducer byteArrayProducer = new ByteArrayProducer();
public static enum OOM_TYPE {
ANY (),
HEAP("Java heap space"),
METASPACE("Metaspace", "Compressed class space");
public final class GarbageUtils {
private static final int ALLOCATION_LIMIT = 50000000; //50 Mb
private static GarbageProducers garbageProducers;
private static List<GarbageProducer> primitiveArrayProducers;
private static List<GarbageProducer> arrayProducers;
! private static final GarbageProducer defaultProducer = new DefaultProducer();
public static enum OOM_TYPE {
ANY (),
HEAP("Java heap space"),
METASPACE("Metaspace", "Compressed class space");
final long memChunk = testMemory / YOUNG_GC_ITERATIONS;
int iteration = 0;
Object referenceArray[] = new Object[YOUNG_GC_ITERATIONS];
while (iteration < YOUNG_GC_ITERATIONS) {
! referenceArray[iteration++] = byteArrayProducer.create(memChunk);
WhiteBox.getWhiteBox().youngGC();
}
WhiteBox.getWhiteBox().fullGC();
}
final long memChunk = testMemory / YOUNG_GC_ITERATIONS;
int iteration = 0;
Object referenceArray[] = new Object[YOUNG_GC_ITERATIONS];
while (iteration < YOUNG_GC_ITERATIONS) {
! referenceArray[iteration++] = defaultProducer.create(memChunk);
WhiteBox.getWhiteBox().youngGC();
}
WhiteBox.getWhiteBox().fullGC();
}
* @param stresser execution controller
* @param gp garbage producer
* @return number of OOME occured
*/
public static int eatMemory(ExecutionController stresser) {
! return eatMemory(stresser, byteArrayProducer, 50, 100, 2, OOM_TYPE.ANY);
}
/**
* Eat memory using given execution controller and garbage producer.
*
* @param stresser execution controller
* @param gp garbage producer
* @return number of OOME occured
*/
public static int eatMemory(ExecutionController stresser) {
! return eatMemory(stresser, defaultProducer, 50, 100, 2, OOM_TYPE.ANY);
}
/**
* Eat memory using given execution controller and garbage producer.
*
* @param minMemoryChunk determines when to stop
* @param factor factor to divide the array size by
* @return number of OOME occured
*/
public static int eatMemory(ExecutionController stresser,long initialFactor, long minMemoryChunk, long factor) {
! return eatMemory(stresser, byteArrayProducer, initialFactor, minMemoryChunk, factor, OOM_TYPE.ANY);
}
/**
* Eat memory using given garbage producer.
*
* @param minMemoryChunk determines when to stop
* @param factor factor to divide the array size by
* @return number of OOME occured
*/
public static int eatMemory(ExecutionController stresser,long initialFactor, long minMemoryChunk, long factor) {
! return eatMemory(stresser, defaultProducer, initialFactor, minMemoryChunk, factor, OOM_TYPE.ANY);
}
/**
* Eat memory using given garbage producer.
*
return new LongArrayProducer();
else if (id.equals("floatArr"))
return new FloatArrayProducer();
else if (id.equals("doubleArr"))
return new DoubleArrayProducer();
+ else if (id.equals("BooleanObjArr"))
+ return new BooleanObjArrayProducer();
+ else if (id.equals("ByteObjArr"))
+ return new BooleanObjArrayProducer();
+ else if (id.equals("IntegerObjArr"))
+ return new IntegerObjArrayProducer();
else if (id.equals("objectArr"))
return new ObjectArrayProducer();
else if (id.equals("randomString"))
return new RandomStringProducer();
else if (id.equals("simpleString"))
< prev index next >