Runtime Compiler Environment With Dynamic Co-Located Code Execution
US-2016170727-A1 · Jun 16, 2016 · US
US9851957B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9851957-B2 |
| Application number | US-201514957632-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 3, 2015 |
| Priority date | Dec 3, 2015 |
| Publication date | Dec 26, 2017 |
| Grant date | Dec 26, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer implemented method of refactoring software code to optimize execution performance by consolidating shared resources accesses, comprising: receiving target code containing code entries accessing shared resource(s); automatically creating a dependency record for each shared resource. The dependency record describes dependencies among the code entries accessing shared data items in the shared resource(s); identifying, based on the dependency record, a resource access point for each shared resource(s), wherein the resource access point is located in an execution path of the target code to precede code entries which use the shared data item(s) and follows code entries which define the shared data item(s); automatically refactoring the target code to group together code entries which use the shared data item(s), wherein the group is placed following the resource access point to consolidate shared resource accesses of the code entries to the shared resource(s); and outputting the refactored target code.
Opening claim text (preview).
What is claimed is: 1. A computer implemented method of refactoring software code to optimize execution performance by consolidating shared resources accesses, comprising: using at least one hardware processor for performing the following: receiving a target code containing a plurality of code entries comprising instructions to access at least one of a plurality of shared resources, said at least one shared resource is a member of a group consisting of: a memory resource address, a storage resource address, a communication resource address and a processing resource address, wherein said at least one shared resource is local or remote; automatically creating a dependency graph for each of said at least one shared resource by analyzing said target code using a static code analysis, said dependency graph describes dependencies among at least some of said plurality of code entries accessing at least one shared data items in said at least one shared resource; identifying, based on said dependency graph, a resource access point for each of said at least one shared resource, said resource access point is located in an execution path of said target code to precede execution of at least some of said plurality of code entries which use said at least one shared data item and said resource access point follows execution of defining code entries of said plurality of code entries which define said at least one shared data item; automatically refactoring said target code to group together said at least some code entries which use said at least one shared data item, said group is placed following said resource access point to consolidate shared resource accesses of said at least some code entries to said at least one shared resource; and outputting said refactored target code. 2. The computer implemented method of claim 1 , wherein said refactoring does not alter any functional characteristics of said target code. 3. The computer implemented method of claim 1 , wherein said definition performed by said defining code entries is a member selected from a group consisting of: manipulating said at least one shared data item in said at least one shared resource, setting said at least one shared data item in said at least one shared resource and retrieving said at least one shared data item from said at least one shared resource. 4. The computer implemented method of claim 1 , further comprising consolidating shared resource accesses for at least some of said defining code entries, said consolidated access is executed prior to said resource access point in said execution path. 5. The computer implemented method of claim 1 , further comprising refactoring said target code to include at least one additional resource access point for said at least one shared resource to consolidate accesses to said at least one shared resource for at least one additional segment of said target code. 6. The computer implemented method of claim 1 , further comprising said dependency graph is enhanced by analyzing usage analytics of said target code, said usage analytics is collected from a plurality of users using said target code. 7. The computer implemented method of claim 1 , further comprising said fourth program instructions refactors said target code to include at least one additional resource access point for said at least one shared resource to consolidate accesses to said at least one shared resource for at least one additional segment of said target code. 8. A system for refactoring software code to optimize execution performance by consolidating shared resources accesses, comprising: an interface for communicating with a user; a program store storing a code; and at least one processor coupled to said interface and said program store for executing the stored code, the code comprising: code instructions to receive a target code containing a plurality of code entries comprising instructions to access at least one of a plurality of shared resources, said at least one shared resource is a member of a group consisting of: a memory resource address, a storage resource address, a communication resource address and a processing resource address, wherein said at least one shared resource is local or remote; code instructions to create a dependency graph for each of said at least one shared resource by analyzing said target code using a static code analysis, said dependency graph describes dependencies among at least some of said plurality of code entries accessing at least one shared data item in said at least one shared resource; code instructions to identify, based on said dependency graph, a resource access point for each of said at least one shared resource, said resource access point is located in an execution path of said target code to precede execution of at least some code entries of said plurality of code entries which use said at least one shared data item and said resource access point follows execution of defining code entries of said plurality of code entries which define said at least one shared data item; code instructions to refactor said target code to group together said at least some code entries which use said at least one shared data item, said group is placed following said resource access point to consolidate shared resource accesses of said at least some code entries to said at least one shared resource; and code instructions to output said refactored target code. 9. The system of claim 8 , wherein said refactoring does not alter any functional characteristics of said target code. 10. The system of claim 8 , further comprising said at least one processor is adapted for executing the following code instructions in said code stored: code instructions to consolidate shared resource accesses for at least some of said defining code entries, said consolidated access is executed prior to said resource access point in said execution path. 11. A computer program product for refactoring software code to optimize execution performance by consolidating shared resources accesses, comprising: a non-transitory computer readable storage medium; first program instructions to receive a target code containing a plurality of code entries comprising instructions to access at least one of a plurality of shared resources, said at least one shared resource is a member of a group consisting of: a memory resource address, a storage resource address, a communication resource address and a processing resource address, wherein said at least one shared resource is local or remote; second program instructions to create a dependency graph for each of said at least one shared resource by analyzing said target code using a static code analysis, said dependency graph describes dependencies among at least some of said plurality of code entries accessing at least one shared data item in said at least one shared resource; third program instructions to identify based on said dependency graph, a resource access point for each of said at least one shared resource, said resource access point is located in an execution path of said target code to precede execution of at least some code entries of said plurality of code entries which use said at least one shared data item and said resource access point follows execution of defining code entries of said plurality of code entries which define said at least one shared data item; fourth program instructions to refactor said target code to group together said at least some code entries which use said at least one shared data item, said group is placed following said resource access point to consolidate shared resource accesses of said at least some code entries to said at least one shared resource; and f
Consistency (cache consistency protocols in hierarchically structured memory systems G06F12/0815) · CPC title
Code refactoring · CPC title
Dependency analysis; Data or control flow analysis · CPC title
Runtime code conversion or optimisation · CPC title
Retargetable compilers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.