mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8064457: Introduce compressed oops mode disjoint base and improve compressed heap handling
Introduce compressed oops mode disjoint base and improve compressed heap handling. Reviewed-by: kvn, coleenp
This commit is contained in:
parent
5b8ee4c102
commit
1c18aef92c
13 changed files with 530 additions and 296 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -124,9 +124,6 @@ extern int LogBitsPerHeapOop;
|
|||
extern int BytesPerHeapOop;
|
||||
extern int BitsPerHeapOop;
|
||||
|
||||
// Oop encoding heap max
|
||||
extern uint64_t OopEncodingHeapMax;
|
||||
|
||||
const int BitsPerJavaInteger = 32;
|
||||
const int BitsPerJavaLong = 64;
|
||||
const int BitsPerSize_t = size_tSize * BitsPerByte;
|
||||
|
@ -195,7 +192,6 @@ inline size_t heap_word_size(size_t byte_size) {
|
|||
return (byte_size + (HeapWordSize-1)) >> LogHeapWordSize;
|
||||
}
|
||||
|
||||
|
||||
const size_t K = 1024;
|
||||
const size_t M = K*K;
|
||||
const size_t G = M*K;
|
||||
|
@ -397,8 +393,17 @@ const int LogKlassAlignment = LogKlassAlignmentInBytes - LogHeapWordSize;
|
|||
const int KlassAlignmentInBytes = 1 << LogKlassAlignmentInBytes;
|
||||
const int KlassAlignment = KlassAlignmentInBytes / HeapWordSize;
|
||||
|
||||
// Klass encoding metaspace max size
|
||||
const uint64_t KlassEncodingMetaspaceMax = (uint64_t(max_juint) + 1) << LogKlassAlignmentInBytes;
|
||||
// Maximal size of heap where unscaled compression can be used. Also upper bound
|
||||
// for heap placement: 4GB.
|
||||
const uint64_t UnscaledOopHeapMax = (uint64_t(max_juint) + 1);
|
||||
// Maximal size of heap where compressed oops can be used. Also upper bound for heap
|
||||
// placement for zero based compression algorithm: UnscaledOopHeapMax << LogMinObjAlignmentInBytes.
|
||||
extern uint64_t OopEncodingHeapMax;
|
||||
|
||||
// Maximal size of compressed class space. Above this limit compression is not possible.
|
||||
// Also upper bound for placement of zero based class space. (Class space is further limited
|
||||
// to be < 3G, see arguments.cpp.)
|
||||
const uint64_t KlassEncodingMetaspaceMax = (uint64_t(max_juint) + 1) << LogKlassAlignmentInBytes;
|
||||
|
||||
// Machine dependent stuff
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue