Grouping frequently referenced data items to co-locate for cache utilization
Abstract
A method, system and apparatus for configuring programmatic objects for cache co-location. The method can include the steps of counting a frequency of access for individual fields in the object in a static analysis, rearranging the fields in the object based upon the counted frequency in the static analysis, and executing the object. Subsequently, a frequency of access for the individual fields in the object further can be counted in a dynamic analysis. Consequently, the fields in the object can be further rearranged based upon the counted frequency in the dynamic analysis to produce an optimal grouping for placement in cache memory. In a preferred aspect of the invention, access types for the individual fields can be identified. Subsequently, the rearranging step and the further rearranging step can be performed based both upon the counted frequency and also upon the access types.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A method for grouping data fields in an object for optimal cache co-location, comprising:
counting a frequency of access for individual fields in the object in a static analysis; identifying access types for the individual fields in the object as part of the static analysis; and, sorting the individual fields in the object based first based upon the identified access types and then based upon the counted frequency of access as part of the static analysis.
22 . The method of claim 21 , further comprising:
loading a byte code of a class for the object.
23 . The method of claim 21 , further comprising:
generating a call graph for the object based upon internal and external references to the individual fields in the object in the static analysis.
24 . The method of claim 22 , further comprising:
rearranging the byte code of the class to incorporate the sorted individual fields.
25 . The method of claim 21 , further comprising:
instrumenting the object; executing the object; identifying an access count for each of the individual fields based upon detecting attempts to access the individual fields of the instrumented object in a dynamic analysis; further identifying access types for each of the individual fields in the dynamic analysis; and, sorting the individual fields in the object based upon both the identified access types and also the counted frequency of access as part of the dynamic analysis.
26 . The method of claim 25 , further comprising:
recording the identified access type for each of the individual fields and also the access count for each of the individual fields in a log.
27 . An object tuning system for grouping data fields in an object for optimal cache co-location, comprising:
a computer comprising a memory; a static analysis processor executing in the memory of the computer, the static analysis processor comprising programming which upon execution causes the computer to count a frequency of access for individual fields in the object in a static analysis, to identify access types for the individual fields in the object as part of the static analysis, and to sort the individual fields in the object based first based upon the identified access types and then based upon the counted frequency of access as part of the static analysis.
28 . The system of claim 27 , wherein the computer further comprises programming which upon execution causes the computer to load a byte code of a class for the object.
29 . The system of claim 27 , wherein the static analysis processor further comprises programming which upon execution causes the computer to generate a call graph for the object based upon internal and external references to the individual fields in the object in the static analysis.
30 . The system of claim 28 , wherein the static analysis processor further comprises programming which upon execution causes the computer to rearrange the byte code of the class to incorporate the sorted individual fields.
31 . The system of claim 27 , further comprising a run-time analysis processor executing in the memory of the computer, the run-time analysis processor comprising programming which upon execution causes the computer to instrument the object, to execute the object, to identify an access count for each of the individual fields based upon detecting attempts to access the individual fields of the instrumented object in a dynamic analysis, to further identify access types for each of the individual fields in the dynamic analysis, and to sort the individual fields in the object based upon both the identified access types and also the counted frequency of access as part of the dynamic analysis.
32 . The system of claim 31 , wherein the run-time analysis processor further comprises programming which upon execution causes the computer to record the identified access type for each of the individual fields and also the access count for each of the individual fields in a log.
33 . A non-transitory machine readable storage medium having stored thereon a computer program for grouping data fields in an object for optimal cache co-location, the computer program comprising a routine set of instructions which when executed by a computer cause the computer to perform the steps of:
counting a frequency of access for individual fields in the object in a static analysis; identifying access types for the individual fields in the object as part of the static analysis; and, sorting the individual fields in the object based first based upon the identified access types and then based upon the counted frequency of access as part of the static analysis.
34 . The non-transitory machine readable storage medium of claim 33 , further comprising instructions for causing the computer to perform the steps of:
loading a byte code of a class for the object.
35 . The non-transitory machine readable storage medium of claim 33 , further comprising instructions for causing the computer to perform the steps of:
generating a call graph for the object based upon internal and external references to the individual fields in the object in the static analysis.
36 . The non-transitory machine readable storage medium of claim 34 , further comprising instructions for causing the computer to perform the steps of:
rearranging the byte code of the class to incorporate the sorted individual fields.
37 . The non-transitory machine readable storage medium of claim 33 , further comprising instructions for causing the computer to perform the steps of:
instrumenting the object; executing the object; identifying an access count for each of the individual fields based upon detecting attempts to access the individual fields of the instrumented object in a dynamic analysis; further identifying access types for each of the individual fields in the dynamic analysis; and, sorting the individual fields in the object based upon both the identified access types and also the counted frequency of access as part of the dynamic analysis.
38 . The non-transitory machine readable storage medium of claim 37 , further comprising instructions for causing the computer to perform the steps of:
recording the identified access type for each of the individual fields and also the access count for each of the individual fields in a log.Join the waitlist — get patent alerts
Track US2015286575A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.