java PrintCompilation Ausgabe: was ist die Bedeutung von "nicht Teilnehmer" und "made zombie"

Beim ausführen eines Java 1.6 (1.6.0_03-b05) app, die ich Hinzugefügt habe, die -XX:+PrintCompilation Flagge. Auf die Ausgabe für einige Methoden, insbesondere einige von denen, die ich kenne, sind immer aufgerufen, eine Menge, ich sehe den text made not entrant und made zombie.

Was bedeuten diese? Beste Vermutung ist, dass es eine Dekompilierung Schritt vor dem kompilieren entweder Methode oder eine Abhängigkeit mit mehr Optimierung. Ist das wahr? Warum "zombie" und "Teilnehmer"?

Beispiel, mit sehr wenig Zeit zwischen diesen Zeilen:

[... near the beginning]
42       jsr166y.LinkedTransferQueue::xfer (294 bytes)

[... much later]
42    made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
---   n   sun.misc.Unsafe::compareAndSwapObject
170       jsr166y.LinkedTransferQueue::xfer (294 bytes)
170   made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
  4%      jsr166y.LinkedTransferQueue::xfer @ 29 (294 bytes)
171       jsr166y.LinkedTransferQueue::xfer (294 bytes)

[... even later]
42    made zombie  jsr166y.LinkedTransferQueue::xfer (294 bytes)
170   made zombie  jsr166y.LinkedTransferQueue::xfer (294 bytes)
171   made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
172       jsr166y.LinkedTransferQueue::xfer (294 bytes)

[... no further logs]
InformationsquelleAutor Joe Kearney | 2010-05-28
Schreibe einen Kommentar