Rate This Document
Findability
Accuracy
Completeness
Readability

Usage Statement

Application Scope

This License Agreement ("Agreement") is a legal agreement between you (an individual or a business entity) and Huawei Technologies Co., Ltd., including its subsidiaries ("Huawei") for the non-exclusive use of the Kunpeng DevKit ("DevKit") on Kunpeng hardware in the People's Republic of China. By downloading, installing, or using the DevKit, you acknowledge that you have read the terms and conditions set out in this Agreement, and agree to be legally bound by this Agreement. If you do not agree to this Agreement or you do not have the authority to agree to this Agreement, do not install or use the DevKit. This Agreement does not apply to the open source software included in the DevKit.

Definitions

For details, see Kunpeng DevKit License Agreement.

Related Concepts

Table 1 Concepts

Concept

Description

SO dependency library

Linux shared object files, named in filename.so.version format, for example, libname.so.1.1.1.

Dependency dictionary

A list that the Porting Advisor uses to record the SO files, software supported by the Kunpeng platform, and the installation status (installation from binary packages or installation from source code). You can download and update the dependency dictionary.

Software build project file

The common software build tools of C/C++/ASM/Fortran/Go are Make and CMake, and the corresponding build files are Makefile and CMakeLists.txt.

IPC

Instructions per cycle (IPC) is the average number of instructions executed by a CPU in each clock cycle. It reflects the smoothness of CPU execution. If a four-transmitter Kunpeng 920 processor executes four instructions in each clock cycle when its pipeline operates in full load, the IPC is 4.0. An IPC value closer to 4.0 indicates that the program uses the processor features to a greater extent.

CPU Cycles performance event

Based on the event sampling principle and performance events, performance analysis can be performed on performance metrics related to processors and operating systems. This metric can be used to locate performance bottlenecks and hotspot code.

CPU Cycles is the default performance event, which is also called clock tick. The sampling is performed based on tick interrupts. That is, sampling is triggered when a tick interrupt occurs, and the current context of the program is determined in the sampling point.

USE

The Utilization, Saturation, and Errors (USE) method is used to analyze the utilization, saturation, and errors of all resources to identify performance bottlenecks.

  • Resources: physical components of servers, including CPUs, memory, storage devices, and network devices. The software that provides similar metrics can also be considered as a resource.
  • Utilization: indicates the percentage of time that resources are used for service work within a specified period.
  • Saturation: indicates the degree to which resources cannot accept more work (the kernel usually has a waiting queue).
  • Error: indicates the number of error events.

Real-time profiling

Real-time profiling is a dynamic application analysis method, including the analysis on target JVMs and Java programs. It is used to analyze the internal distribution of resource consumption, method calling frequency, and time consumption during application running. This method is often used to assist application performance bottleneck locating and performance tuning.

Real-time profiling obtains the calling status of all methods in specific code by instrumenting the classes and methods of programs, which may greatly affect the application performance.

Sampling profiling

Sampling profiling is to collect internal activities and performance events of the JVM through data sampling, and performs offline analysis through data recording and playback. Sampling profiling does not require you to modify the application code, which has little impact on performance. It is suitable for large-scale Java programs. The precision of sampling profiling is lower than that of real-time profiling because the former only collects data periodically.

Upper-layer application workload

Workload analysis is to dynamically modify upper-layer application code and embed hooks to collect specific application performance data, helping to obtain the code performance and locate specific code.