Skip to content

Commit aea72b6

Browse files
authored
7903411: JOL: Rework Model64 to include comp ref/class attributes
1 parent 5be192b commit aea72b6

File tree

7 files changed

+33
-253
lines changed

7 files changed

+33
-253
lines changed

jol-cli/src/main/java/org/openjdk/jol/operations/EstimatedModels.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ public class EstimatedModels {
3131

3232
static final DataModel[] MODELS_JDK8 = new DataModel[]{
3333
new Model32(),
34-
new Model64(),
35-
new Model64_COOPS_CCPS(),
36-
new Model64_COOPS_CCPS(16),
34+
new Model64(false, false),
35+
new Model64(true, true),
36+
new Model64(true, true, 16),
3737
};
3838

3939
static final DataModel[] MODELS_JDK15 = new DataModel[]{
40-
new Model64_CCPS(),
41-
new Model64_CCPS(16),
40+
new Model64(false, true),
41+
new Model64(false, true, 16),
4242
};
4343

4444
static final DataModel[] MODELS_LILLIPUT = new DataModel[]{

jol-cli/src/main/java/org/openjdk/jol/operations/StringCompress.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ public class StringCompress implements Operation {
6060

6161
static final DataModel[] DATA_MODELS = new DataModel[]{
6262
new Model32(),
63-
new Model64(),
64-
new Model64_COOPS_CCPS(),
65-
new Model64_COOPS_CCPS(16),
66-
new Model64_CCPS(),
67-
new Model64_CCPS(16),
63+
new Model64(false, false),
64+
new Model64(true, true),
65+
new Model64(true, true, 16),
66+
new Model64(false, true),
67+
new Model64(false, true, 16),
6868
};
6969

7070

jol-core/src/main/java/org/openjdk/jol/datamodel/Model64.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@
2727
import java.util.Objects;
2828

2929
/**
30-
* 64 bits model, no compressed references, no compressed class pointers.
30+
* 64 bits model.
3131
*
3232
* @author Aleksey Shipilev
3333
*/
3434
public class Model64 implements DataModel {
3535

3636
private final int align;
37+
private final boolean compRefs;
38+
private final boolean compKlass;
3739

38-
public Model64() {
39-
this(8);
40+
public Model64(boolean compressedRefs, boolean compressedClasses, int align) {
41+
this.compRefs = compressedRefs;
42+
this.compKlass = compressedClasses;
43+
this.align = align;
4044
}
4145

42-
public Model64(int align) {
43-
this.align = align;
46+
public Model64(boolean compressedRefs, boolean compressedClasses) {
47+
this(compressedRefs, compressedClasses, 8);
4448
}
4549

4650
@Override
@@ -50,7 +54,7 @@ public int markHeaderSize() {
5054

5155
@Override
5256
public int classHeaderSize() {
53-
return 8;
57+
return compKlass ? 4 : 8;
5458
}
5559

5660
@Override
@@ -84,7 +88,7 @@ public int sizeOf(String klass) {
8488
case "double":
8589
return 8;
8690
default:
87-
return 8;
91+
return (compRefs ? 4 : 8);
8892
}
8993
}
9094

@@ -95,7 +99,10 @@ public int objectAlignment() {
9599

96100
@Override
97101
public String toString() {
98-
return "64-bit model, " + align + "-byte aligned";
102+
return "64-bit model" +
103+
", " + (compRefs ? "" : "NO ") + "compressed references" +
104+
", " + (compKlass ? "" : "NO ") + "compressed classes" +
105+
", " + align + "-byte aligned";
99106
}
100107

101108
@Override

jol-core/src/main/java/org/openjdk/jol/datamodel/Model64_CCPS.java

Lines changed: 0 additions & 111 deletions
This file was deleted.

jol-core/src/main/java/org/openjdk/jol/datamodel/Model64_COOPS_CCPS.java

Lines changed: 0 additions & 116 deletions
This file was deleted.

jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public class LayouterInvariantsTest {
1616
private static final DataModel[] MODELS = {
1717
new ModelVM(),
1818
new Model32(),
19-
new Model64(),
20-
new Model64_CCPS(),
21-
new Model64_COOPS_CCPS(),
19+
new Model64(false, false, 8),
20+
new Model64(false, true, 8),
21+
new Model64(true, true, 8),
2222
};
2323

2424
private static final int ITERATIONS = 10000;

jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_10_DataModels.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,14 @@ public class JOLSample_10_DataModels {
7070

7171
private static final DataModel[] MODELS_JDK8 = new DataModel[]{
7272
new Model32(),
73-
new Model64(),
74-
new Model64_COOPS_CCPS(),
75-
new Model64_COOPS_CCPS(16),
73+
new Model64(false, false),
74+
new Model64(true, true),
75+
new Model64(true, true, 16),
7676
};
7777

7878
private static final DataModel[] MODELS_JDK15 = new DataModel[]{
79-
new Model64_CCPS(),
80-
new Model64_CCPS(16),
79+
new Model64(false, true),
80+
new Model64(false, true, 16),
8181
};
8282

8383
public static void main(String[] args) {

0 commit comments

Comments
 (0)