A method of optimizing program code performance is disclosed. Applications
written in the Java language can execute slowly. To speed up the execution
time of a Java application certain slower executing methods within the
application can be written in native code. When the slower executing
methods are written in native code some of the advantages, such as
automatic garbage collection, of the Java language are lost. Further, the
resultant interface function calls between the Java methods and the native
methods can result in inefficient code. The method optimizes programs
written using both Java methods and native methods, i.e. mixed mode code,
by analyzing a set of interface function calls from native methods to a
Java Virtual Machine. Then selects a plurality of the interface function
calls to either eliminate or move within the program code by analyzing
either the bytecode and the intermediate language, or both, for either
inefficient code constructs or inefficient code containing native
interface function calls to perform garbage collection.
Een methode om de prestaties van de programmacode te optimaliseren wordt onthuld. De toepassingen die in de taal van Java worden geschreven kunnen langzaam uitvoeren. Om de uitvoeringstijd van een toepassing van Java te versnellen kunnen bepaalde langzamere het uitvoeren methodes binnen de toepassing in inheemse code worden geschreven. Wanneer de langzamere het uitvoeren methodes in inheemse code enkele voordelen, zoals automatische huisvuilinzameling worden geschreven, van Java wordt de taal verloren. Verder, kan de resulterende vraag van de interfacefunctie tussen de methodes van Java en de inheemse methodes in inefficiënte code resulteren. De methode optimaliseert programma's geschreven gebruikend zowel de methodes van Java als inheemse methodes, d.w.z. gemengde wijzecode, door een reeks vraag van de interfacefunctie van inheemse methodes aan een Virtuele Machine van Java te analyseren. Dan selecteert een meerderheid van de vraag van de interfacefunctie zich of binnen de programmacode te elimineren of te bewegen door of bytecode en de middentaal te analyseren, of allebei, voor of inefficiënte codeconcepten of inefficiënte code die de inheemse vraag van de interfacefunctie bevatten om huisvuilinzameling uit te voeren.