You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add documentation
- List packages (not classes) in code breakdown
- List size of "other data"
- Print runtime compiled methods after analysis
- Add and fix some links
- Minor other improvements
#### <aname="glossary-version-info"></a>Version Info
65
+
The version info of the Native Image process.
66
+
This string is also used for the `java.vm.version` property within the generated image.
67
+
Please report this version info when you [file issues][new_issue].
18
68
19
-
### <aname="glossary-code-area"/>Code Area
69
+
#### <aname="glossary-user-provided-features"></a>User-provided Features
70
+
All [`Features`][jdoc_feature] that are provided by the user or implicitly registered for the user, for example, by a framework.
71
+
GraalVM Native Image deploys a number of internal features, which are excluded from this list.
20
72
21
-
### <aname="glossary-image-heap"/>Image Heap
73
+
#### <aname="glossary-reflection-classes"></a>Classes Registered for Reflection
74
+
The number of classes that are registered for reflection.
75
+
A large number can cause significant reflection overheads, slow down the build process, and increase the size of the native image (see [method metadata](#glossary-method-metadata)).
In this stage, the Graal compiler compiles all reachable methods to machine code.
105
+
The progress indicator is printed periodically after a certain interval.
106
+
107
+
### <aname="stage-creating"></a>Creating Image
108
+
In this stage, the native image is created and written to disk.
109
+
110
+
#### <aname="glossary-code-area"></a>Code Area
111
+
The code area contains machine code produced by the Graal compiler for all reachable methods.
112
+
Therefore, reducing the number of reachable methods also reduces the size of the code area.
113
+
114
+
#### <aname="glossary-image-heap"></a>Image Heap
115
+
The image heap contains reachable objects such as static data, classes initialized at run-time, and `byte[]` for different purposes.
116
+
117
+
##### <aname="glossary-general-heap-data"></a>General Heap Data Stored in `byte[]`
118
+
The total size of all `byte[]` objects that are neither used for `java.lang.String`, nor [graph encodings](#glossary-graph-encodings), nor [method metadata](#glossary-method-metadata).
119
+
This typically dominates
120
+
121
+
##### <aname="glossary-graph-encodings"></a>Graph Encodings Stored in `byte[]`
122
+
The total size of all `byte[]` objects used for graph encodings.
123
+
These encodings are a result of [runtime compiled methods](#glossary-runtime-methods).
124
+
Therefore, reducing the number of such methods also reduces the size of corresponding graph encodings.
125
+
126
+
##### <aname="glossary-method-metadata"></a>Method Metadata Stored in `byte[]`
127
+
The total size of all `byte[]` objects used for method metadata, a type of reflection metadata.
128
+
To reduce the amount of method metadata, reduce the number of [classes registered for reflection](#glossary-reflection-classes).
129
+
130
+
#### <aname="glossary-other-data"></a>Other Data
131
+
The amount of data in the image that is neither in the [code area](#glossary-code-area) nor in the [image heap](#glossary-image-heap).
132
+
This data typically contains internal information for Native Image but it can also contain other information such as debug info.
The total number of garbage collections and total time spent in all garbage collectors.
138
+
A large number of collections or time spent in collectors usually indicates that the system is under memory pressure.
139
+
Increase the amount of available memory to reduce the time to build the image.
31
140
32
-
### <aname="step-analysis"/>Performing analysis
141
+
#### <aname="glossary-peak-rss"></a>Peak RSS
142
+
Peak [resident set size][rss_wiki] as reported by the operating system.
143
+
This value indicates the maximum amount of memory consumed by the build process.
144
+
If the [GC statistics](#glossary-garbage-collection) do not show any problems, the amount of available memory of the system can be reduced to a value closer to the peak RSS.
33
145
34
-
### <aname="step-universe"/>Building universe
146
+
#### <aname="glossary-cpu-load"></a>CPU load
147
+
The CPU time used by the process divided by the total time to build the image in percent.
148
+
Increase the number of CPU threads to reduce the time to build the image.
35
149
36
-
### <aname="step-parsing"/>Parsing methods
150
+
##Build Output Options
37
151
38
-
### <aname="step-inlining"/>Inlining methods
152
+
Run `native-image --expert-options-all | grep "BuildOutput"` to see all build output options:
39
153
40
-
### <aname="step-compiling"/>Compiling methods
154
+
```
155
+
-H:±BuildOutputBreakdowns Show code and heap breakdowns as part of the build output. Default: + (enabled).
Copy file name to clipboardExpand all lines: substratevm/CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,4 +11,4 @@ This changelog summarizes major changes to GraalVM Native Image.
11
11
* (GR-32403) Use more compressed encoding for stack frame metadata.
12
12
* (GR-35152) Add -H:DisableURLProtocols to allow specifying URL protocols that must never be included in the image.
13
13
* (GR-35085) Custom prologue/epilogue/handleException customizations of @CEntryPoint must be annotated with @Uninterruptible. The entry points synthetic methods are now implicilty annotated with @Uninterruptible too.
14
-
* (GR-33602) Enable new user-friendly build output mode. The old output can be restored with `-H:-BuildOutputUseNewStyle`. Run `native-image --expert-options-all | grep "BuildOutput` to see all options for the new output.
14
+
* (GR-33602) Enable [new user-friendly build output mode](https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md). The old output can be restored with `-H:-BuildOutputUseNewStyle`.
0 commit comments