230 newEnsureVirtual.add(ensureVirtual.get(objIndex));
231 }
232 valuePos += virtualObject.entryCount();
233 }
234 virtualObjects.clear();
235 virtualObjects.addAll(newVirtualObjects);
236 locks.clear();
237 locks.addAll(newLocks);
238 values.clear();
239 values.addAll(newValues);
240 lockIndexes = newLockIndexes;
241 ensureVirtual = newEnsureVirtual;
242 }
243 }
244
245 @Override
246 public NodeCycles estimatedNodeCycles() {
247 List<VirtualObjectNode> v = getVirtualObjects();
248 int fieldWriteCount = 0;
249 for (int i = 0; i < v.size(); i++) {
250 fieldWriteCount += v.get(i).entryCount();
251 }
252 int rawValueWrites = NodeCycles.compute(WriteNode.TYPE.cycles(), fieldWriteCount).value;
253 int rawValuesTlabBumps = AbstractNewObjectNode.TYPE.cycles().value;
254 return NodeCycles.compute(rawValueWrites + rawValuesTlabBumps);
255 }
256
257 @Override
258 public NodeSize estimatedNodeSize() {
259 List<VirtualObjectNode> v = getVirtualObjects();
260 int fieldWriteCount = 0;
261 for (int i = 0; i < v.size(); i++) {
262 fieldWriteCount += v.get(i).entryCount();
263 }
264 int rawValueWrites = NodeSize.compute(WriteNode.TYPE.size(), fieldWriteCount).value;
265 int rawValuesTlabBumps = AbstractNewObjectNode.TYPE.size().value;
266 return NodeSize.compute(rawValueWrites + rawValuesTlabBumps);
267 }
268 }
|
230 newEnsureVirtual.add(ensureVirtual.get(objIndex));
231 }
232 valuePos += virtualObject.entryCount();
233 }
234 virtualObjects.clear();
235 virtualObjects.addAll(newVirtualObjects);
236 locks.clear();
237 locks.addAll(newLocks);
238 values.clear();
239 values.addAll(newValues);
240 lockIndexes = newLockIndexes;
241 ensureVirtual = newEnsureVirtual;
242 }
243 }
244
245 @Override
246 public NodeCycles estimatedNodeCycles() {
247 List<VirtualObjectNode> v = getVirtualObjects();
248 int fieldWriteCount = 0;
249 for (int i = 0; i < v.size(); i++) {
250 VirtualObjectNode node = v.get(i);
251 if (node == null) {
252 return CYCLES_UNKNOWN;
253 }
254 fieldWriteCount += node.entryCount();
255 }
256 int rawValueWrites = NodeCycles.compute(WriteNode.TYPE.cycles(), fieldWriteCount).value;
257 int rawValuesTlabBumps = AbstractNewObjectNode.TYPE.cycles().value;
258 return NodeCycles.compute(rawValueWrites + rawValuesTlabBumps);
259 }
260
261 @Override
262 public NodeSize estimatedNodeSize() {
263 List<VirtualObjectNode> v = getVirtualObjects();
264 int fieldWriteCount = 0;
265 for (int i = 0; i < v.size(); i++) {
266 VirtualObjectNode node = v.get(i);
267 if (node == null) {
268 return SIZE_UNKNOWN;
269 }
270 fieldWriteCount += node.entryCount();
271 }
272 int rawValueWrites = NodeSize.compute(WriteNode.TYPE.size(), fieldWriteCount).value;
273 int rawValuesTlabBumps = AbstractNewObjectNode.TYPE.size().value;
274 return NodeSize.compute(rawValueWrites + rawValuesTlabBumps);
275 }
276 }
|