IP Library Granted Patent US 12,487,809
Granted Patent B2
US 12,487,809 · App. 17/843,262 · Granted Dec 2, 2025

Program code update recommendation based on a heatmap

Inventors: Bo Chen Zhu (Xi'an, CN); Peng Hui Jiang (Beijing, CN); Chu Yun Tong (Beijing, CN); Ai Ping Feng (Beijing, CN); Xinzhe Wang (Beijing, CN); Cheng Fang Wang (Beijing, CN)
Assignee: International Business Machines Corporation
G06F8/65
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 12,487,809
App. No.
17/843,262
Granted
Dec 2, 2025
Kind
B2
Abstract

An approach for recommending an application of a software code update. The approach receives components of an executable program. The approach scans the components to divide the executable program into units. The approach creates a logical layer of entry lists, based on the units, for instantiations of the executable program. The approach loads the instantiations of the executable program based on the logical layers. The approach monitors the execution of the instantiations to increment counters based on executions of the units. The approach creates a heatmap of the executions based on the counters. The approach generates a recommendation to update the executable based on the heatmap.

Claims (45)

1 . A computer-implemented method for recommending a deployment strategy for deploying a software code update, the computer-implemented method comprising:

receiving, by a pre-loader module at a server computer, a software code update for a target program installed on a client computer, the software code update for updating the target program on the client computer;

scanning, by the pre-loader module, the software code update to identify executable units of the software code update, the executable units being identified by the scan as one of class, function, or module;

creating, in the server computer, a logical layer of entry lists for instantiations of the identified executable units;

loading the instantiations of the identified executable units to system memory from the logical layer of entry lists;

monitoring execution of the instantiations of the identified executable units to increment counters based on observed executions of the instantiations;

creating a heatmap of the executions of the instantiations based on the counters; and

generating a deployment strategy for deploying the software code update to update the target program, the deployment strategy including a recommended rate of use of the executable units at the client computer based on analysis of the heatmap.

2 . The computer-implemented method of claim 1 , wherein the monitoring can be made at an application level or at a system level.

3 . The computer-implemented method of claim 1 , wherein executable units are assigned unique identities based on their location in the logical layer of entry lists.

4 . The computer-implemented method of claim 3 , wherein the assigned unique identities are indicative of an order in which the executable units were loaded.

5 . The computer-implemented method of claim 1 , wherein an entry instruction pointer contains an address of an entry in the logical layer of entry lists to provide to a central processing unit (CPU) to execute.

6 . The computer-implemented method of claim 5 , wherein a first counter of the counters is incremented when the CPU returns from executing the address.

7 . The computer-implemented method of claim 1 , wherein creating the heatmap is further based on normalizing a depth value based on processor capabilities.

8 . The computer-implemented method of claim 1 , further comprising:

updating the logical layers with status and characteristics data for the executable units when the instantiations of the executable program are loaded to the system memory.

9 . The computer-implemented method of claim 1 , wherein generating the recommendation includes:

comparing a first heatmap illustrating use of application code in the target program from before the software code update was executed to the generated heatmap from after the software code update was executed; and

calculating a recommended rate of use of modified code portions of the software code update.

10 . A computer program product for recommending a deployment strategy for deploying a software code update, the computer program product comprising:

one or more non-transitory computer readable storage media and program instructions stored on the one or more non-transitory computer readable storage media, the program instructions comprising:

program instructions to receive, by a pre-loader module at a server computer, a software code update for a target program installed on a client computer, the software code update for updating the target program on the client computer;

program instructions to scan, by a pre-loader module, the software code update to identify executable units of the software code update, the executable units being identified by the scan as one of class, function, or module;

program instructions to create, in the server computer, a logical layer of entry lists for instantiations of the identified executable units;

program instructions to load the instantiations of the identified executable units to system memory from the logical layer of entry lists;

program instructions to monitor execution of the instantiations of the identified executable units to increment counters based on observed executions of the instantiations;

program instructions to create a heatmap of the executions of the instantiations based on the counters; and

program instructions to generate a deployment strategy for deploying the software code update to update the target program, the deployment strategy including a recommended rate of use of the executable units at the client computer based on analysis of the heatmap.

11 . The computer program product of claim 10 , wherein executable units are assigned unique identities based on their location in the logical layer of entry lists.

12 . The computer program product of claim 10 , wherein an entry instruction pointer contains an address of an entry in the logical layer of entry lists to provide to a central processing unit (CPU) to execute.

13 . The computer program product of claim 12 , wherein a first counter of the counters is incremented when the CPU returns from executing the address.

14 . A computer system for recommending a deployment strategy for deploying a software code update, the computer system comprising:

one or more computer processors;

one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media, the program instructions comprising:

program instructions to receive, by a pre-loader module at a server computer, a software code update for a target program installed on a client computer, the software code update for updating the target program on the client computer;

program instructions to scan, by a pre-loader module, the software code update to identify executable units of the software code update, the executable units being identified by the scan as one of class, function, or module;

program instructions to create, in the server computer, a logical layer of entry lists for instantiations of the identified executable units;

program instructions to load the instantiations of the identified executable units to system memory from the logical layer of entry lists;

program instructions to monitor execution of the instantiations of the identified executable units to increment counters based on observed executions of the instantiations;

program instructions to create a heatmap of the executions of the instantiations based on the counters; and

program instructions to generate a deployment strategy for deploying the software code update to update the target program, the deployment strategy including a recommended rate of use of the executable units at the client computer based on analysis of the heatmap.

15 . The computer system of claim 14 , wherein the monitoring can be made at an application level or at a system level.

16 . The computer system of claim 14 , wherein executable units are assigned unique identities based on their location in the logical layer of entry lists.

17 . The computer system of claim 14 , wherein an entry instruction pointer contains an address of an entry in the logical layer of entry lists to provide to a central processing unit (CPU) to execute and wherein a counter is incremented when the CPU returns from executing the address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2022
From: ZHU, BO CHEN; JIANG, PENG HUI; TONG, CHU YUN; FENG, AI PING; WANG, XINZHE; WANG, CHENG FANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060238/0283 →
Continuity (1)
Related Publication 20230409308A1 · Dec 21, 2023
References Cited (20)
US 8381188B2 · John · 2013 [cited by applicant]
US 8661415B2 · Fanning · 2014 [cited by applicant]
US 9383992B2 · Nigul · 2016 [cited by applicant]
US 9535815B2 · Smith · 2017 [cited by applicant]
US 10365985B2 · Wagner · 2019 [cited by applicant]
US 11204756B1 · Samuel · 2021 [cited by examiner]
US 20100077388A1 · Kimura · 2010 [cited by examiner]
US 20120222017A1 · Hinkle · 2012 [cited by applicant]
US 20120311540A1 · Fanning · 2012 [cited by examiner]
US 20160124834A1 · Davis · 2016 [cited by examiner]
US 20170255545A1 · Voccio · 2017 [cited by applicant]
US 20170270026A1 · Kumar · 2017 [cited by examiner]
US 20200104198A1 · Hussels · 2020 [cited by applicant]
WO 2023241851A1 · 2023 [cited by applicant]
“A method and system for recommending patches to customers”, An IP.com Prior Art Database Technical Disclosure, Authors et al.: Disclosed Anonymously, IP.com No. IPCOM000248708D, IP.com Electronic Publication Date: Dec.… [cited by applicant]
“Provide Customers of Recommended Software Fixes Which Have Not Been Applied On Their System(s)”, An IP.com Prior Art Database Technical Disclosure, Authors et al.: Disclosed Anonymously, IP.com No. IPCOM000223106D, IP.… [cited by applicant]
Feldt et al., “Supporting Software Decision Meetings: Heatmaps for Visualising Test and Code Measurements”, Software Engineering and Advanced Applications (SEAA), 2013 39th EUROMICRO Conference, Sep. 2013, 8 pages. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing”, Recommendations of the National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]
Fuerlinger et al., “On Using Incremental Profiling for the Performance Analysis of Shared Memory Parallel Applications”, Euro-Par 2007, LNCS 4641, pp. 62-71, 2007. [cited by applicant]
International Search Report and Written Opinion, International Application No. PCT/EP2023/061694, International Filing Dtae May 3, 2023. [cited by applicant]