Improving application code execution performance by consolidating accesses to shared resources

US9851957B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9851957-B2
Application numberUS-201514957632-A
CountryUS
Kind codeB2
Filing dateDec 3, 2015
Priority dateDec 3, 2015
Publication dateDec 26, 2017
Grant dateDec 26, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • G06F8/454Primary

    Consistency (cache consistency protocols in hierarchically structured memory systems G06F12/0815) · CPC title

  • Code refactoring · CPC title

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • Runtime code conversion or optimisation · CPC title

  • Retargetable compilers · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9851957B2 cover?
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 …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/454. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 26 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).