IP Library › Granted Patent US 9,286,089
Granted Patent B2
US 9,286,089 · App. 14/162,929 · Granted Mar 15, 2016

Just-in time expensive compilation hints

Inventor: Marius Pirvu (Toronto, CA)
Assignee: International Business Machines Corporation
G06F9/45516
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,286,089
App. No.
14/162,929
Granted
Mar 15, 2016
Kind
B2
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.

Claims (31)

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.

2. The method of claim 1 wherein the change of compilation behavior includes scheduling the subsequent compilation request by assigning the code segment a queue priority.

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).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2014
From: PIRVU, MARIUS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032036/0264 →
Continuity (1)
Related Publication 20150212838A1 · Jul 30, 2015