1444 if (FLAG_IS_DEFAULT(UseCompressedKlassPointers)) { |
1444 if (FLAG_IS_DEFAULT(UseCompressedKlassPointers)) { |
1445 FLAG_SET_ERGO(bool, UseCompressedKlassPointers, true); |
1445 FLAG_SET_ERGO(bool, UseCompressedKlassPointers, true); |
1446 } |
1446 } |
1447 // Set the ClassMetaspaceSize to something that will not need to be |
1447 // Set the ClassMetaspaceSize to something that will not need to be |
1448 // expanded, since it cannot be expanded. |
1448 // expanded, since it cannot be expanded. |
1449 if (UseCompressedKlassPointers && FLAG_IS_DEFAULT(ClassMetaspaceSize)) { |
1449 if (UseCompressedKlassPointers) { |
1450 // 100,000 classes seems like a good size, so 100M assumes around 1K |
1450 if (ClassMetaspaceSize > KlassEncodingMetaspaceMax) { |
1451 // per klass. The vtable and oopMap is embedded so we don't have a fixed |
1451 warning("Class metaspace size is too large for UseCompressedKlassPointers"); |
1452 // size per klass. Eventually, this will be parameterized because it |
1452 FLAG_SET_DEFAULT(UseCompressedKlassPointers, false); |
1453 // would also be useful to determine the optimal size of the |
1453 } else if (FLAG_IS_DEFAULT(ClassMetaspaceSize)) { |
1454 // systemDictionary. |
1454 // 100,000 classes seems like a good size, so 100M assumes around 1K |
1455 FLAG_SET_ERGO(uintx, ClassMetaspaceSize, 100*M); |
1455 // per klass. The vtable and oopMap is embedded so we don't have a fixed |
|
1456 // size per klass. Eventually, this will be parameterized because it |
|
1457 // would also be useful to determine the optimal size of the |
|
1458 // systemDictionary. |
|
1459 FLAG_SET_ERGO(uintx, ClassMetaspaceSize, 100*M); |
|
1460 } |
1456 } |
1461 } |
1457 } |
1462 } |
1458 // Also checks that certain machines are slower with compressed oops |
1463 // Also checks that certain machines are slower with compressed oops |
1459 // in vm_version initialization code. |
1464 // in vm_version initialization code. |
1460 #endif // _LP64 |
1465 #endif // _LP64 |