A performance analyzer for object-oriented programming code distinguishes
between an object which is substantively used within the creating method,
and one which is merely created in the creating method and passed back to
a calling method. In the preferred embodiment, a trace record is generated
when the object is first accessed, to indicate the method which caused the
operation, but no trace record is generated on subsequent object accesses.
The performance analyzer may parse the trace to determine whether an
object access trace record occurred in the creating method, or in some
other method. Preferably, the program being analyzed is written in Java,
and the performance analyzer is an instrumented Java Virtual Machine
(JVM), i.e., a JVM to which trace and/or other performance analytic
capabilities are added.
Un analizzatore di prestazioni per il codice di programmazione orientato oggettivamente si distingue fra un oggetto che è usato sostanziale all'interno del metodo di generazione ed uno che soltanto è generato nel metodo di generazione ed è passato di nuovo ad un metodo di chiamata. Nel metodo di realizzazione preferito, un'annotazione della traccia è generata quando l'oggetto in primo luogo è raggiunto, per indicare il metodo che ha causato il funzionamento, ma nessun'annotazione della traccia è generata sugli accessi successivi dell'oggetto. L'analizzatore di prestazioni può analizzare la traccia per determinare se un'annotazione della traccia di accesso dell'oggetto si sia presentata nel metodo di generazione, o in un certo altro metodo. Preferibilmente, il programma che è analizzato è scritto in Java e l'analizzatore di prestazioni è una macchina virtuale fornita del Java (JVM), cioè, un JVM a cui segue e/o altre possibilità analitiche di prestazioni sono aggiunte.