Methods and apparatus for dynamically deoptimizing a frame in a control
stack during the execution of a computer program are disclosed. The
described methods are particularly suitable for use in computer systems
that are arranged to execute both interpreted and compiled byte codes.
According to one aspect of the present invention, a computer-implemented
method for deoptimizing a compiled method includes creating a data
structure. The data structure, which is separate from the control stack,
is arranged to store information relating to the compiled method. A
reference indicator, such as a pointer, is created to associate the data
structure with the frame. The method, which is compiled to a first state
of optimization, is then deoptimized to a second state of optimization,
and the method in the first state of optimization may be discarded,
thereby deoptimizing the frame. When control returns to the deoptimized
frame, a migration routine creates at least one new stack frame, and
execution may continue using the method in the second state of
optimization.
Methoden und Apparate für einen Rahmen in einem Steuerstapel während der Durchführung eines Computerprogramms dynamisch deoptimizing werden freigegeben. Die beschriebenen Methoden sind für Gebrauch in den Computersystemen besonders verwendbar, die geordnet werden, um durchzuführen gedeutete und kompilierte Bytecodes. Entsprechend einem Aspekt der anwesenden Erfindung, schließt eine Computer-eingeführte Methode für das Deoptimizing eine kompilierte Methode das Verursachen einer Datenstruktur ein. Die Datenstruktur, die getrennt von dem Steuerstapel ist, wird geordnet, um Informationen in bezug auf die kompilierte Methode zu speichern. Eine Bezugsanzeige, wie ein Zeiger, wird hergestellt, um die Datenstruktur mit dem Rahmen zu verbinden. Die Methode, die zu einem ersten Zustand der Optimierung kompiliert wird, ist deoptimized dann zu einem zweiten Zustand der Optimierung, und die Methode im ersten Zustand der Optimierung kann weggeworfen werden, dadurch siedeoptimizing siedeoptimizing den Rahmen. Als Steuerrückkehr zu Rahmen deoptimized, verursacht ein Migration Programm mindestens einen neuen Stapelrahmen, und Durchführung kann die, Methode im zweiten Zustand der Optimierung zu verwenden fortfahren.