A system, comprising: at least one processor and a memory; and at least one module that when executed on the at least one processor performs actions that: performs a first just-in-time, JIT, compilation of a method of a program using a first JIT compiler; generates a first native code of the method from the first JIT compilation; during the first JIT compilation, records input data provided to the first JIT compiler from a runtime environment, the input data used by the first JIT compiler to generate the first native code; performs a second JIT compilation of the method with a second JIT compiler using the input data; generates a second native code of the method from the second JIT compilation; analyzes instructions in the first native code with instructions in the second native code to determine differences between the instructions in the first native code with the instructions in the second native code; and outputs the differences, wherein the at least one module when executed on the at least one processor performs further actions that: intercepts a first API call from the first JIT compiler requesting a first input data; obtains the first input data from the runtime environment; stores the first input data in a dictionary using a key corresponding to at least one or more parameters in the first API call; retrieves additional input data associated with the first input data from the runtime environment not included in the first API call; and stores the additional input data, wherein the key is used to insert the additional input data into the dictionary. at least one processor and a memory; and at least one module that when executed on the at least one processor performs actions that: performs a first just-in-time, JIT, compilation of a method of a program using a first JIT compiler; generates a first native code of the method from the first JIT compilation; during the first JIT compilation, records input data provided to the first JIT compiler from a runtime environment, the input data used by the first JIT compiler to generate the first native code; performs a second JIT compilation of the method with a second JIT compiler using the input data; generates a second native code of the method from the second JIT compilation; analyzes instructions in the first native code with instructions in the second native code to determine differences between the instructions in the first native code with the instructions in the second native code; and outputs the differences, wherein the at least one module when executed on the at least one processor performs further actions that: intercepts a first API call from the first JIT compiler requesting a first input data; obtains the first input data from the runtime environment; stores the first input data in a dictionary using a key corresponding to at least one or more parameters in the first API call; retrieves additional input data associated with the first input data from the runtime environment not included in the first API call; and stores the additional input data, wherein the key is used to insert the additional input data into the dictionary. performs a first just-in-time, JIT, compilation of a method of a program using a first JIT compiler; generates a first native code of the method from the first JIT compilation; during the first JIT compilation, records input data provided to the first JIT compiler from a runtime environment, the input data used by the first JIT compiler to generate the first native code; performs a second JIT compilation of the method with a second JIT compiler using the input data; generates a second native code of the method from the second JIT compilation; analyzes instructions in the first native code with instructions in the second native code to determine differences between the instructions in the first native code with the instructions in the second native code; and outputs the differences, wherein the at least one module when executed on the at least one processor performs further actions that: intercepts a first API call from the first JIT compiler requesting a first input data; obtains the first input data from the runtime environment; stores the first input data in a dictionary using a key corresponding to at least one or more parameters in the first API call; retrieves additional input data associated with the first input data from the runtime environment not included in the first API call; and stores the additional input data, wherein the key is used to insert the additional input data into the dictionary. intercepts a first API call from the first JIT compiler requesting a first input data; obtains the first input data from the runtime environment; stores the first input data in a dictionary using a key corresponding to at least one or more parameters in the first API call; retrieves additional input data associated with the first input data from the runtime environment not included in the first API call; and stores the additional input data, wherein the key is used to insert the additional input data into the dictionary.