A method and apparatus for just in time compilation of Java bytecode
methods and provides a means to compile only the paths that are actually
executed. An iterative process is employed whereby bytecodes are compiled
up to the next conditional flow bytecode or return, the compiled code is
executed and any attempt to enter uncompiled paths of the method is
monitored. When the executing thread attempts to execute an uncompiled
path control is returned to the compiler and the process is repeated
starting with the first bytecode of that path. The process continues until
all paths have been compiled or until it is deemed likely that all the
most commonly executed paths have been compiled. At that point final
optimizations and housekeeping are performed.
Une méthode et un appareil pour juste dedans la compilation de temps des méthodes de bytecode de Java et fournit des moyens de compiler seulement les chemins qui sont exécutés réellement. Un processus itératif est utilisé par lequel des bytecodes soient compilés jusqu'au prochain bytecode conditionnel ou au retour d'écoulement, le code compilé est exécuté et n'importe quelle tentative d'entrer uncompiled des chemins de la méthode est surveillée. Quand le fil d'exécution essaye d'exécuter uncompiled la commande de chemin est retourné au compilateur et le processus est répété commençant par le premier bytecode de ce chemin. Le processus continue jusqu'à ce que tous les chemins aient été compilés ou jusqu'à ce qu'on le considère probablement que tous les chemins le plus généralement exécutés ont été compilés. À ce point des optimisations et le ménage finals sont exécutés.