Just-in time expensive compilation hints
First Claim
1. A method comprising:
- measuring a set of characteristic(s) of a compilation environment during a compilation of a code segment by a just-in-time compiler;
determining a first piece of information based upon at least one characteristic of the set of characteristic(s), with the first piece of information being relevant to a manner in which just-in-time compilation of the code segment may be performed;
storing the first piece of information in a persistent storage device;
responsive to a subsequent compilation request for the just-in-time compiler to compile the code segment, reading the first piece of information from the persistent storage device; and
changing compilation behavior based on the first piece of information when the code segment is again compiled by the just-in-time compiler in response to the subsequent compilation request;
wherein;
the set of characteristic(s) of a compilation environment relates to the compilation backlog;
the first piece of information is based on size of the compilation backlog and is stored in more than a single bit per compiler optimization level; and
the changing of compilation behavior includes at least one of the following;
(i) scheduling the subsequent compilation request, and/or (ii) adjusting a compiler optimization level.
1 Assignment
0 Petitions
Accused Products
Abstract
Using stored information about the compilation environment during compilation of a code segment to improve performance of just-in-time compilers. A set of characteristic(s) of a compilation environment is measured during compilation of a code segment. Information that may be relevant to how the compilation is performed is derived from at least one of the measured characteristics and stored in a persistent storage device. Upon a subsequent request to compile that code segment, the information is retrieved and used to change compilation behavior. The set of characteristic(s) relate to at least either compilation backlog or peak memory usage. The changed compilation behavior involves at least adjusting the scheduling of the subsequent compilation request or adjusting the compiler optimization level.
12 Citations
4 Claims
-
1. A method comprising:
-
measuring a set of characteristic(s) of a compilation environment during a compilation of a code segment by a just-in-time compiler; determining a first piece of information based upon at least one characteristic of the set of characteristic(s), with the first piece of information being relevant to a manner in which just-in-time compilation of the code segment may be performed; storing the first piece of information in a persistent storage device; responsive to a subsequent compilation request for the just-in-time compiler to compile the code segment, reading the first piece of information from the persistent storage device; and changing compilation behavior based on the first piece of information when the code segment is again compiled by the just-in-time compiler in response to the subsequent compilation request; wherein; the set of characteristic(s) of a compilation environment relates to the compilation backlog; the first piece of information is based on size of the compilation backlog and is stored in more than a single bit per compiler optimization level; and the changing of compilation behavior includes at least one of the following;
(i) scheduling the subsequent compilation request, and/or (ii) adjusting a compiler optimization level. - View Dependent Claims (2)
-
-
3. A method comprising:
-
measuring a set of characteristic(s) of a compilation environment during a compilation of a code segment by a just-in-time compiler; determining a first piece of information based upon at least one characteristic of the set of characteristic(s), with the first piece of information being relevant to a manner in which just-in-time compilation of the code segment may be performed; storing the first piece of information in a persistent storage device; responsive to a subsequent compilation request for the just-in-time compiler to compile the code segment, reading the first piece of information from the persistent storage device; and changing compilation behavior based on the first piece of information when the code segment is again compiled by the just-in-time compiler in response to the subsequent compilation request; wherein; the set of characteristic(s) of a compilation environment relates to peak memory usage; the first piece of information represents a range containing a value of the peak memory used to compile the code segment; and the change of compilation behavior includes reducing the compiler optimization level used when compiling the code segment.
-
-
4. A method comprising:
-
measuring a set of characteristic(s) of a compilation environment during a compilation of a code segment by a just-in-time compiler; determining a first piece of information based upon at least one characteristic of the set of characteristic(s), with the first piece of information being relevant to a manner in which just-in-time compilation of the code segment may be performed; storing the first piece of information in a persistent storage device; responsive to a subsequent compilation request for the just-in-time compiler to compile the code segment, reading the first piece of information from the persistent storage device; and changing compilation behavior based on the first piece of information when the code segment is again compiled by the just-in-time compiler in response to the subsequent compilation request; wherein; the set of characteristic(s) of a compilation environment relates to peak memory usage; the first piece of information represents a range containing a value of the peak memory used to compile the code segment; and the change of compilation behavior includes scheduling the subsequent compilation request so as to reduce peak memory usage from overlapping compilations of the code segment and another code segment(s).
-
Specification