# US 2023/0409308 A1 · Program code update recommendation based on a heatmap

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0409308 A1
- Document ID: US20230409308A1
- Status: Published application
- Kind: A1
- Application number: 17/843,262
- Filed: 2022-06-17
- Published: 2023-12-21
- Earliest claimed: 2022-06-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Bo Chen Zhu; Peng Hui Jiang; Chu Yun Tong; Ai Ping Feng; Xinzhe Wang; Cheng Fang Wang
- Web page: https://patentgrep.com/patent/US20230409308A1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 11/323: {Visualisation of programs or trace data}
- G06F 11/3409: {for performance assessment}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 8/658: Incremental updates; Differential updates
- G06F 2201/88: Monitoring involving counting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A computer-implemented method for recommending an application of a software code update, the computer-implemented method comprising:
receiving, by one or more processors, components of an executable program;
scanning, by the one or more processors, the components to divide the executable program into units;
creating, by the one or more processors, a logical layer of entry lists, based on the units, of instantiations of the executable program;
loading, by the one or more processors, the instantiations of the executable program based on the logical layer;
monitoring, by the one or more processors, execution of the instantiations to increment counters based on executions of the units;
creating, by the one or more processors, a heatmap of executions based on the counters;
generating, by the one or more processors, a recommendation to update the executable program based on the heatmap.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the unit can comprise at least one of a class, a function, a procedure, or a module.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the heatmap is normalized based on a depth value.

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 6)

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

### Claim 8

A computer program product for recommending an application of 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 components of an executable program;
program instructions to scan the components to divide the executable program into units;
program instructions to create a logical layer of entry lists, based on the units, for instantiations of the executable program;
program instructions to load the instantiations of the executable program based on the logical layer;
program instructions to monitor execution of the instantiations to increment counters based on executions of the units;
program instructions to create a heatmap of executions based on the counters; and
program instructions to generate a recommendation to update the executable program based on the heatmap.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the unit can comprise at least one of a class, a function, a procedure, or a module.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the heatmap is normalized based on a depth value.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein monitoring can be made at an application level or at a system level.

### Claim 12 (depends on 8)

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

### Claim 13 (depends on 8)

The computer program product of claim 8, 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.

### Claim 14 (depends on 13)

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

### Claim 15

A computer system for recommending an application of 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 components of an executable program;
program instructions to scan the components to divide the executable program into units;
program instructions to create a logical layer of entry lists, based on the units, for instantiations of the executable program;
program instructions to load the instantiations of the executable program based on the logical layer;
program instructions to monitor execution of the instantiations to increment counters based on executions of the units;
program instructions to create a heatmap of executions based on the counters; and
program instructions to generate a recommendation to update the executable program based on the heatmap.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the unit can comprise at least one of a class, a function, a procedure, or a module.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein the heatmap is normalized based on a depth value.

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

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

### Claim 20 (depends on 15)

The computer system of claim 15, 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.
