JVM JIT 编译器逃逸分析阶段性优化 Debug 日志详解
大家好,今天我们来深入探讨 JVM JIT 编译器中的逃逸分析及其优化,并结合 -XX:+PrintEscapeAnalysis 产生的 Debug 日志进行分析。逃逸分析是 JVM 性能优化的重要手段之一,理解其原理和工作方式对于编写高性能的 Java 代码至关重要。
1. 什么是逃逸分析?
逃逸分析 (Escape Analysis) 是一种静态程序分析技术,它在编译期间分析对象的生命周期,判断对象是否逃逸出方法或线程。简而言之,逃逸分析的目标是确定对象的作用域,从而为后续的优化提供基础。
- 方法逃逸 (Method Escape): 当一个对象在方法内部创建,并被方法外部的代码访问时,我们称这个对象发生了方法逃逸。例如,将对象作为方法的返回值,或者将对象赋值给类的成员变量。
- 线程逃逸 (Thread Escape): 当一个对象可能被多个线程访问时,我们称这个对象发生了线程逃逸。这通常发生在将对象传递给线程,或者将对象存储在多个线程可以访问的共享变量中。
如果一个对象没有发生逃逸,即它仅存在于方法内部,且不会被其他线程访问,那么 JVM 就可以对这个对象进行一系列优化,例如:
- 栈上分配 (Stack Allocation): 将对象直接分配在栈上,而不是堆上。栈上分配的对象随着方法的结束而自动销毁,无需垃圾回收器的介入,大大提高了性能。
- 标量替换 (Scalar Replacement): 将对象的成员变量分解为独立的变量,并在栈上分配。这样可以减少对象的创建和访问开销。
- 同步消除 (Synchronization Elimination): 如果一个对象只被单个线程访问,那么可以消除对该对象的同步操作,避免不必要的锁竞争。
2. 逃逸分析的原理
逃逸分析是一个复杂的编译优化过程,涉及多种算法和数据结构。其基本流程如下:
- 构建调用图 (Call Graph): 分析程序中的方法调用关系,构建一个调用图。调用图描述了方法之间的调用链。
- 构建对象生命周期图 (Object Lifetime Graph): 分析对象的创建、使用和销毁,构建一个对象生命周期图。对象生命周期图描述了对象在程序中的生命周期轨迹。
- 逃逸分析算法: 基于调用图和对象生命周期图,使用逃逸分析算法判断对象是否逃逸。常见的逃逸分析算法包括基于指针分析的算法和基于类型推断的算法。
3. 使用 -XX:+PrintEscapeAnalysis 开启逃逸分析 Debug 日志
-XX:+PrintEscapeAnalysis 选项可以开启逃逸分析的 Debug 日志,帮助我们了解逃逸分析的结果。这个选项会打印出 JIT 编译器在进行逃逸分析时的一些信息,包括:
- 对象的创建位置: 显示对象在代码中的创建位置。
- 对象的逃逸状态: 指示对象是否逃逸,以及逃逸的类型(方法逃逸或线程逃逸)。
- 优化决策: 显示 JIT 编译器基于逃逸分析结果所做的优化决策,例如是否进行栈上分配、标量替换或同步消除。
4. Debug 日志解读与案例分析
我们通过一些代码示例和对应的 Debug 日志来详细解读逃逸分析的过程和结果。
案例 1: 没有逃逸的对象
public class EscapeAnalysisExample {
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
allocatePoint();
}
}
static void allocatePoint() {
Point p = new Point(10, 20);
System.out.println("X: " + p.getX() + ", Y: " + p.getY());
}
static class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
}
在这个例子中,Point 对象在 allocatePoint 方法内部创建,并且只在方法内部使用,没有被传递到方法外部或共享给其他线程。因此,Point 对象没有发生逃逸。
运行程序时,加上 JVM 参数 -XX:+PrintEscapeAnalysis -XX:+PrintCompilation -XX:CompileCommand=compileonly,EscapeAnalysisExample::allocatePoint。 -XX:+PrintCompilation 会打印 JIT 编译的信息,CompileCommand 限制只编译 allocatePoint 方法,方便我们分析。
Debug 日志 (片段):
6 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
7 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
8 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
9 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
10 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
11 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
12 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
13 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
14 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
15 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
16 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
17 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
18 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
19 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
20 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
21 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
22 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
23 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
24 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
25 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
26 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
27 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
28 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
29 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
30 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
31 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
32 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
33 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
34 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
35 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
36 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
37 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
38 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
39 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
40 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
41 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
42 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
43 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
44 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
45 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
46 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
47 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
48 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
49 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
50 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
51 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
52 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
53 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
54 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
55 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
56 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
57 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
58 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
59 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
60 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
61 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
62 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
63 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
64 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
65 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
66 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
67 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
68 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
69 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
70 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
71 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
72 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
73 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
74 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
75 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
76 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
77 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
78 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
79 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
80 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
81 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
82 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
83 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
84 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
85 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
86 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
87 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
88 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
89 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
90 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
91 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
92 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
93 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
94 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
95 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
96 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
97 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
98 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
99 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
100 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
101 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
102 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
103 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
104 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
105 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
106 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
107 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
108 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
109 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
110 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
111 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
112 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
113 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
114 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
115 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
116 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
117 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
118 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
119 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
120 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
121 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
122 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
123 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
124 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
125 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
126 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
127 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
128 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
129 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
130 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
131 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
132 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
133 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
134 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
135 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
136 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
137 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
138 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
139 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
140 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
141 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
142 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
143 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
144 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
145 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
146 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
147 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
148 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
149 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
150 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
151 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
152 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
153 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
154 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
155 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
156 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
157 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
158 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
159 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
160 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
161 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
162 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
163 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
164 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
165 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
166 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
167 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
168 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
169 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
170 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
171 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
172 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
173 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
174 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
175 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
176 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
177 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
178 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
179 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
180 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
181 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
182 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
183 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
184 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
185 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
186 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
187 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
188 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
189 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
190 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
191 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
192 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
193 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
194 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
195 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
196 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
197 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
198 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
199 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
200 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
201 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
202 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
203 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
204 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
205 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
206 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
207 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
208 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
209 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
210 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
211 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
212 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
213 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
214 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
215 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
216 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
217 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
218 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
219 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
220 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
221 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
222 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
223 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
224 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
225 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
226 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
227 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
228 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
229 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
230 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
231 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
232 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
233 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
234 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
235 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
236 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
237 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
238 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
239 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
240 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
241 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
242 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
243 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
244 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
245 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
246 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
247 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
248 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
249 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
250 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
251 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
252 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
253 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
254 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
255 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
256 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
257 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
258 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
259 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
260 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
261 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
262 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
263 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
264 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
265 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
266 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
267 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
268 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
269 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
270 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
271 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
272 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
273 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
274 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
275 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
276 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
277 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
278 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
279 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
280 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
281 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
282 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
283 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
284 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
285 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
286 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
287 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
288 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
289 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
290 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
291 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
292 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
293 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
294 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
295 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
296 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
297 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
298 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
299 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
300 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
301 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
302 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
303 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
304 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
305 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
306 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
307 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
308 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
309 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
310 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
311 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
312 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
313 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
314 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
315 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
316 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
317 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
318 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
319 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
320 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
321 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
322 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
323 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
324 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
325 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
326 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
327 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
328 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
329 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
330 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
331 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
332 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
333 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
334 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
335 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
336 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
337 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
338 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
339 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
340 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
341 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
342 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
343 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
344 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
345 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
346 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
347 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
348 EscapeAnalysisExample::allocatePoint (33 bytes) made not entrant
349 EscapeAnalysisExample