Mercurial > hg > truffle
view test/compiler/6894807/IsInstanceTest.java @ 10246:194f52aa2f23
7176479: G1: JVM crashes on T5-8 system with 1.5 TB heap
Summary: Refactor G1's hot card cache and card counts table into their own files. Simplify the card counts table, including removing the encoding of the card index in each entry. The card counts table now has a 1:1 correspondence with the cards spanned by heap. Space for the card counts table is reserved from virtual memory (rather than C heap) during JVM startup and is committed/expanded when the heap is expanded. Changes were also reviewed-by Vitaly Davidovich.
Reviewed-by: tschatzl, jmasa
author | johnc |
---|---|
date | Thu, 09 May 2013 11:16:39 -0700 |
parents | 495caa35b1b5 |
children |
line wrap: on
line source
/* * @test * @bug 6894807 * @summary No ClassCastException for HashAttributeSet constructors if run with -Xcomp * @compile IsInstanceTest.java * @run shell Test6894807.sh */ public class IsInstanceTest { public static void main(String[] args) { BaseInterface baseInterfaceImpl = new BaseInterfaceImpl(); for (int i = 0; i < 100000; i++) { if (isInstanceOf(baseInterfaceImpl, ExtendedInterface.class)) { System.out.println("Failed at index:" + i); System.out.println("Arch: "+System.getProperty("os.arch", "")+ " OS: "+System.getProperty("os.name", "")+ " OSV: "+System.getProperty("os.version", "")+ " Cores: "+Runtime.getRuntime().availableProcessors()+ " JVM: "+System.getProperty("java.version", "")+" "+System.getProperty("sun.arch.data.model", "")); break; } } System.out.println("Done!"); } public static boolean isInstanceOf(BaseInterface baseInterfaceImpl, Class... baseInterfaceClasses) { for (Class baseInterfaceClass : baseInterfaceClasses) { if (baseInterfaceClass.isInstance(baseInterfaceImpl)) { return true; } } return false; } private interface BaseInterface { } private interface ExtendedInterface extends BaseInterface { } private static class BaseInterfaceImpl implements BaseInterface { } }