Performance report display method and device, equipment, medium and program product
By providing a method for displaying performance reports and allowing developers to choose display modes with different levels of detail, the problem of game developers having difficulty quickly capturing useful information from the timeline is solved, thereby improving the efficiency of human-computer interaction.
Patent Information
- Application Number
- CN202510905408.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-30
- Publication Date
- 2025-10-17
AI Technical Summary
In existing technologies, it is difficult for game developers to quickly capture useful performance information from the timeline, resulting in low efficiency in human-computer interaction.
A performance report display method is provided, which receives performance data of a target application and allows developers to select display modes with different levels of detail, including a first mode, a second mode, and a third mode, which are suitable for developers of different levels to display analysis results of the performance data.
It improves the efficiency of human-computer interaction, allowing developers of different levels to view performance reports at an appropriate level of detail based on their needs. It is suitable for novice developers who are unfamiliar with the business, developers who are familiar with the business, and senior developers who are familiar with both the engine and the business.
Smart Images

Figure CN120803867A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the field of human-computer interaction, and in particular to a performance report display method and device, equipment, medium and program product. BACKGROUND
[0002] An engine is a game development tool that provides a large number of core technologies, data generation tools and basic support required by game developers, and is widely used in game development, film and television production and other fields. The analysis system is a debugging and analysis tool provided by the engine, which is used for performance analysis and optimization, and can help game developers understand the performance bottleneck of the game or application.
[0003] In the related art, the analysis system directly displays the collected time-consuming information in combination with a time axis. The time-consuming information is the time-consuming of program code execution.
[0004] However, this display method in combination with the time axis has many details, and it is difficult for the developer to quickly capture useful information from the time axis, resulting in low human-computer interaction efficiency. SUMMARY
[0005] Embodiments of the present application provide a performance report display method, device, equipment, medium and program product. The technical solution is as follows:
[0006] On the one hand, a performance report display method is provided, and the method comprises:
[0007] receiving performance data of a target application program when the target application program is running;
[0008] in response to a selection operation, selecting a display mode from candidate display modes, different candidate display modes indicating different levels of detail of performance reports corresponding to the display modes;
[0009] displaying a performance report of the performance data in the display mode, the performance report being used to display analysis results of the performance data in a visual form.
[0010] On the other hand, a performance report display device is provided, and the device comprises:
[0011] a receiving module configured to receive performance data of a target application program when the target application program is running;
[0012] a processing module configured to, in response to a selection operation, select a display mode from candidate display modes, different candidate display modes indicating different levels of detail of performance reports corresponding to the display modes;
[0013] The display module is configured to display a performance report of the performance data in the display mode, and the performance report is configured to visually display analysis results of the performance data.
[0014] In another aspect, a computer device is provided, which includes a processor and a memory, and the memory stores a computer program, which is loaded and executed by the processor to implement the method for displaying a performance report as described above.
[0015] In another aspect, a computer readable storage medium is provided, which stores a computer program, which is loaded and executed by a processor to implement the method for displaying a performance report as described above.
[0016] In another aspect, a computer program product is provided, which includes computer instructions stored in a computer readable storage medium, and a processor acquires the computer instructions from the computer readable storage medium, so that the processor is loaded and executed to implement the method for displaying a performance report as described above.
[0017] The technical scheme provided by the embodiments of the present application has at least the following beneficial effects:
[0018] A method for displaying a performance report of performance data in different display modes is provided. By receiving performance data generated during the running of a target application program, a developer can select a display mode from different candidate display modes by selecting operation, and display a performance report of the performance data in the display mode. Since different candidate display modes indicate performance reports with different levels of detail, the developer can select to view performance reports with different levels of detail according to actual business requirements, according to the developer's understanding of the business and the engine, according to the developer's development knowledge, and other factors, so that the performance report is more adaptable, suitable for novice developers unfamiliar with the business, developers familiar with the business, and senior developers familiar with both the engine and the business, thereby improving the efficiency of human-computer interaction. BRIEF DESCRIPTION OF DRAWINGS
[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0020] Figure 1 is a structural block diagram of a computer system provided by an exemplary embodiment of the present application;
[0021] Figure 2 is a flowchart of a display method of a performance report provided by an example embodiment of the present application;
[0022] Figure 3 is a schematic diagram of a first performance report provided by an example embodiment of the present application;
[0023] Figure 4 is a schematic diagram of a timeline display provided by an example embodiment of the present application;
[0024] Figure 5 is a schematic diagram of a second performance report provided by an example embodiment of the present application;
[0025] Figure 6 is a schematic diagram of a third performance report provided by an example embodiment of the present application;
[0026] Figure 7 is a schematic diagram of a timeline display provided by an example embodiment of the present application;
[0027] Figure 8 is a schematic diagram of a performance rule provided by an example embodiment of the present application;
[0028] Figure 9 is a flowchart of a display method of a performance report provided by an example embodiment of the present application;
[0029] Figure 10 is a schematic diagram of a time-consuming information format provided by an example embodiment of the present application;
[0030] Figure 11 is a flowchart of a display method of a performance report provided by an example embodiment of the present application;
[0031] Figure 12 is a flowchart of a display method of a performance report provided by an example embodiment of the present application;
[0032] Figure 13 is a flowchart of a display method of a performance report provided by an example embodiment of the present application;
[0033] Figure 14 is a block diagram of a display device of a performance report provided by an example embodiment of the present application;
[0034] Figure 15 is a structural block diagram of a computer device provided by an example embodiment of the present application. DETAILED DESCRIPTION
[0035] In order to make the purpose, technical scheme and advantages of the present application clearer, the embodiments of the present application will be described in further detail below with reference to the drawings.
[0036] Exemplary embodiments will be described in detail with reference to drawings, of which examples are shown. In the following description, same numbers in different drawings represent same or similar elements unless otherwise represented. The implementations described in the following exemplary embodiments are not meant to represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of the present disclosure as detailed in the appended claims.
[0037] The terminology used in the present disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. As used in the present disclosure and the appended claims, the singular forms "a," "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
[0038] It is to be understood that, although the terms first, second, etc. can be used herein to describe various information, these terms are not intended to denote a temporal or chronological order. Rather, these terms are used solely to distinguish one from another only. For example, a first parameter could be termed a second parameter, and, similarly, a second parameter could be termed a first parameter without departing from the scope of the present disclosure. As used herein, the term "if' can be construed to mean "when" or "in response to determining" or "in response to a determination" that a certain condition precedent has been satisfied or obtained, depending on the context.
[0039] It should be noted that, before collecting the relevant data of the user, the target application program, and the performance data, and in the process of collecting the relevant data of the user, the application can display a prompt interface, a pop-up window, or output voice prompt information, which is used to prompt the user that the relevant data of the user is currently being collected, so that the application only starts to perform the relevant steps of obtaining the relevant data of the user after obtaining the confirmation operation of the user to the prompt interface or the pop-up window, otherwise, if the confirmation operation of the user to the prompt interface or the pop-up window is not obtained, the relevant steps of obtaining the relevant data of the user are ended, that is, the relevant data of the user is not obtained. In other words, all the user data collected by the application is collected under the condition that the user agrees and authorizes, and the collection, use, and processing of the relevant user data need to comply with the relevant laws, regulations, and standards of the relevant countries and regions.
[0040] First, the terms involved in the embodiments of the present application are briefly introduced:
[0041] Time-consuming information: or time-consuming dot information, is the time-consuming of the program code execution. Record the execution time before and after a program code runs respectively to obtain time-consuming information, and a specific string can also be specified to distinguish the time-consuming information. Among them, time-consuming dotting is to add specific mark points (dots) in the program code to record and detect the time-consuming information of the target application during runtime. The time-consuming dotting granularity can be a function or an executable code, and a function can add multiple time-consuming dots.
[0042] Performance data: is the data collected by the target application during runtime, which is used to analyze the state and performance of the target application. Different performance data indicates different performance indicators. Performance data includes at least one of the following: time-consuming information, frame rate, memory usage, cache hit rate, central processing unit (CPU) usage, average response time, maximum response time, and throughput. To obtain more detailed performance information, additional performance data with finer granularity can also be recorded. For example, in a game application, performance data also includes at least one of the following: the number of actors, the number of ticks, the total memory of textures, the total uncompressed memory of textures, the number of draw calls, the shader complexity, and the lighting calculation overhead.
[0043] User generated content (UGC): refers to content generated by users. In a game scenario, users create levels, maps, characters, items, etc. through the creation tools and code editors provided by the game scenario, increasing the personalization and expandability of the game.
[0044] User generated content developer: is the developer of the user generated content platform or application, who often has little knowledge of software development techniques, but is more inclined to content generation.
[0045] First mode: also known as analysis mode, is used to perform analysis on performance data using predefined performance rules and present the analysis results of performance data. The first mode has the lowest technical requirements for developers and presents the simplest way, which can be read by UGC developers who are not familiar with the business.
[0046] Second mode: also known as basic mode or time-consuming tree mode, is used to perform analysis on performance data based on call hierarchy and call type in combination with time-consuming information in the selected frame performance data, and present the analysis results of performance data. The data displayed is more focused, and the call hierarchy is more explicit. Finally, simplified naming can also be selected. The second mode can help UGC developers who are familiar with the business of the target application but not familiar with the engine underlying architecture to further discover detailed performance hotspots.
[0047] Third mode: also known as advanced mode, with time-consuming information in performance data of all frames, can simultaneously show the call hierarchy relationship and time-consuming information of all or part of the frames of the entire timeline, the amount of information displayed is large, including the engine bottom layer, such as rendering, physics, skeletal animation, etc., also including the business level, such as map loading, distance detection, button click triggering, etc. The UGC developer who consults this information needs to have relevant professional development knowledge, and at the same time can also obtain the most detailed performance hotspots. The third mode is based on the CPU Trace of the Engine Unreal Insight to view the time-consuming information, and increases the more detailed time-consuming dotting of the business, and carries additional call types when dotting the time-consuming.
[0048] Performance hotspot: refers to the program code or function that causes performance bottleneck in the software development process.
[0049] In response to: used to indicate the condition or state on which the operation performed depends, when the dependent condition or state is met, the operation or operations performed can be real-time or have a set delay; in the absence of special instructions, there is no restriction on the execution order of multiple operations performed.
[0050] Figure 1 is the structural block diagram of the computer system provided by an exemplary embodiment of the present application. The computer system 100 can become the system architecture for realizing the display method of the performance report. The computer system 100 includes a terminal 120, a server 140.
[0051] The terminal 120 installs and runs a client of a target application. Optionally, the target application includes at least one of a game application, a game development engine, a game user generated content (UGC) editor, a visual programming tool, a code editor, a map editor, a chart application, a document application, a video application, an instant messaging application, and a shopping application. The game application can be a battle royale shooting game, a virtual reality (VR) game, an augmented reality (AR) program, a three-dimensional map program, a VR game, an AR game, a first-person shooting game (FPS), a third-person shooting game (TPS), a multiplayer online battle arena game (MOBA), a simulation game (SLG), a competitive party game, and any one of a game UGC editor provided by each of the foregoing games.
[0052] In some embodiments, the terminal 120 further installs and runs an application. The application is configured to provide an analysis function of performance data of the target application and / or a display function of a performance report, and the user can view the performance report corresponding to the performance data of the target application in the terminal 120.
[0053] The terminal 120 is a terminal used by a user to control a virtual character located in a virtual environment, and the control includes, but is not limited to, at least one of adjusting a body posture, crawling, walking, running, riding, jumping, driving, picking up, shooting, attacking, throwing, and building a virtual building.
[0054] In some embodiments, when the terminal 120 runs the target application, the application further receives performance data of the target application, and the user uses the application running in the terminal 120 to view a performance report of the performance data. Specifically, the terminal 120 selects a display mode from candidate display modes in response to a selection operation, and different candidate display modes indicate different levels of detail of performance reports corresponding to the performance data; and the terminal 120 displays the performance report of the performance data in the display mode, and the performance report is configured to display an analysis result of the performance data in a visual form.
[0055] The terminal 120 is connected to the server 140 through a wireless network or a wired network.
[0056] The server 140 can be a stand-alone physical server, a server cluster composed of multiple physical servers or a distributed system, or a cloud server providing cloud computing services. The server 140 includes at least one of a single server, multiple servers, a cloud computing platform, and a virtualization center.
[0057] The server 140 includes a processor 144 and a memory 142, and the memory 142 includes a receiving module 1421, a control module 1422, and a sending module 1423. The receiving module 1421 is configured to receive a request sent by a client. The control module 1422 is configured to control rendering of a virtual environment. The sending module 1423 is configured to send a response to the client. The server 140 is configured to provide a background service for the client of the terminal 120.
[0058] Optionally, the server 140 undertakes main computing work, and the terminal 120 undertakes secondary computing work. Alternatively, the server 140 undertakes secondary computing work, and the terminal 120 undertakes main computing work. Alternatively, the server 140 and the terminal 120 cooperatively compute in a distributed computing architecture.
[0059] The form of the client installed on the terminal 120 is not limited, including but not limited to an App (Application) installed in the terminal 120, a mini program, and the like, and can also be in the form of a webpage. The terminal 120 can refer to one of multiple terminals, and the embodiment is only exemplified by taking the terminal 120. The terminal 120 includes but is not limited to at least one of the following: at least one of a smart phone, a tablet computer, a wearable device, a PC (Personal Computer), a laptop computer, a desktop computer, and a palm game console.
[0060] Those skilled in the art can know that the number of the terminal 120 can be more or less. For example, the terminal 120 is one or more in number. The number and the type of the terminal 120 are not limited in the embodiment.
[0061] In the related art, an analysis system (Unreal Insight) directly displays collected time-consuming information in combination with a time axis. Alternatively, a central processor usage performance analyzer (Unity CPU Usage Profiler) also displays time-consuming information in combination with a time axis. However, the display manner in combination with the time axis displays a lot of detailed information, and it is difficult for a developer to quickly capture useful information from the time axis, especially for a developer who is not familiar with an engine or a business. The reading threshold is high, resulting in low human-computer interaction efficiency.
[0062] The embodiment of the present application provides a display method of performance report. The same performance data recorded when a target application program runs can be used to assist a developer, in particular, a UGC developer, in viewing performance reports of different detailed procedures in different use scenarios, so as to accelerate analysis and positioning of performance problems.
[0063] Specifically, the display modes include: a first mode, a second mode and a third mode, which are respectively for a novice developer unfamiliar with a business, a developer familiar with the business but having little development knowledge, and a developer familiar with the business and the development architecture bottom layer and having professional knowledge. It can be understood that, in order to quickly obtain analysis and positioning of performance problems, the developer having professional knowledge can also use the first mode and the second mode, and the developer familiar with the business but having little development knowledge can also use the first mode and the third mode.
[0064] Next, the display method of the performance report is described in detail.
[0065] Figure 2 FIG. 1 is a flowchart of a display method of a performance report provided by an exemplary embodiment of the present application. The method is executed by a computer device, which can be a terminal 120 as shown in FIG. 1. The method includes at least part of steps 220, 240 and 260. Figure 1
[0066] Step 220: receiving performance data of a target application program when the target application program runs.
[0067] The target application program is an application program to be collected for performance data. Optionally, the target application program includes at least one of the following: a game application program, a game development engine, a game user generated content (UGC) editor, a visual programming tool, a code editor, a map editor, a chart application program, a document application program, a video application program, an instant messaging application program and a shopping application program.
[0068] The type of performance data received and the specific data content vary with different target applications. The performance indicators indicated by the performance data also vary. Optionally, the performance data includes at least one of the following: time consumption information, frame rate, memory usage, cache hit rate, Central Processing Unit (CPU) usage, average response time, maximum response time, and throughput. To obtain more detailed performance information, more granular performance data can also be recorded. For example, for a game application, the performance data also includes at least one of the following: number of actors, number of ticks, total texture memory, total uncompressed texture memory, number of draw calls, shader complexity, and lighting computation overhead.
[0069] In some embodiments, the performance data of the target application is received in real time while the target application is running. The performance data can be analyzed in real time while the target application is running or analyzed after the target application is finished running. Optionally, the performance data is analyzed in real time while the target application is running according to a preset time granularity. For example, the time granularity is 20 seconds, and the performance data in the last 20 seconds is analyzed each time. Alternatively, the performance data is analyzed after the target application is finished running according to a preset time granularity. For example, the time granularity is 20 seconds, and the performance data in the last 20 seconds is analyzed each time.
[0070] In step 240, a display mode is selected from the candidate display modes in response to a selection operation. Different candidate display modes indicate different levels of detail of performance reports corresponding to the display of performance data.
[0071] The selection operation is used to select a display mode from the candidate display modes. The display mode is used to indicate the mode of the performance report in which the performance data is displayed. In this embodiment, three display modes are provided: a first mode, a second mode, and a third mode, which can be referred to as candidate display modes. Different candidate display modes indicate different levels of detail of performance reports corresponding to the display of performance data. The first mode indicates a first level of detail of a first performance report, which is the lowest. The second mode indicates a second level of detail of a second performance report, which is higher than the first level of detail of the first performance report indicated by the first mode. The third mode indicates a third level of detail of a third performance report, which is higher than the second level of detail of the second performance report indicated by the second mode.
[0072] The selection operation can be implemented in at least one of the following ways: clicking, double-clicking, long-pressing, swiping, gesture selection, and selection by an external input device. Different candidate display modes can be displayed in the form of menu items, in the form of buttons, or in the form of window titles. A window includes performance reports of performance data in the corresponding display mode.
[0073] In some embodiments, the level of detail of a performance report of performance data can be characterized by at least one of the following parameters: the amount of performance data displayed, the granularity of the performance data display, whether to display performance data for a single frame, whether to display timing information in the performance data, whether to display the call hierarchy between functions or executable codes corresponding to the performance data, and whether to display the call type of the function or executable code corresponding to the performance data. The call type is the name of the class called by the function or executable code.
[0074] For example, the more performance data displayed, the finer the granularity of the performance data display, the more performance data for a single frame is displayed, the more time consumption information in the performance data is displayed, the more call hierarchy relationships between functions or executable codes corresponding to the performance data are displayed, and the more call types of functions or executable codes corresponding to the performance data are displayed, the more detailed the performance report will be. It is understood that developers can select a display mode from the candidate display modes based on actual technical needs and view the corresponding performance report.
[0075] Step 260: Display a performance report of the performance data in a display mode. The performance report is used to present the analysis results of the performance data in a visual form.
[0076] After selecting a display mode from the candidate display modes, a performance report of the performance data is displayed in the display mode, where the performance report is used to present the analysis results of the performance data in a visual form. Optionally, the performance report is displayed in a list form or a tree structure form.
[0077] In summary, the present invention provides a method for displaying a performance report. When a target application is running, a computer device receives performance data of the target application; in response to a selection operation, a display mode is selected from candidate display modes, and different candidate display modes indicate performance reports with different levels of detail; and a performance report of the performance data is displayed in the display mode, where the performance report is used to present the analysis results of the performance data in a visual form. Accordingly, a method for displaying a performance report of performance data in different display modes is provided. By receiving performance data generated by the target application during its operation, a developer can select a display mode from different candidate display modes through a selection operation and display the performance report of the performance data in the display mode. Because the performance reports indicated by different candidate display modes have different levels of detail, developers can choose to view performance reports of different levels of detail based on actual business needs, their understanding of the business and the engine, and their own development knowledge. This makes the performance report more adaptable and suitable for novice developers who are unfamiliar with the business, developers who are familiar with the business, and experienced developers who are familiar with both the engine and the business, thereby improving the efficiency of human-computer interaction.
[0078] In some embodiments, step 260 is implemented as step 300:
[0079] Step 300, in response to the analysis mode indicated by the display mode, display the performance report matched with the analysis result of the performance data, the analysis result is obtained by performing analysis on all or part of the performance data based on the analysis mode.
[0080] Different display modes correspond to different analysis modes. For example, the first mode is to perform analysis on performance data based on preset performance rules, the second mode is to perform analysis on performance data based on calling hierarchy and calling type, and the third mode is to perform analysis on performance data based on calling type.
[0081] For example, in response to the analysis mode indicated by the display mode, the performance report matched with the analysis result of the performance data is displayed, and the analysis result is obtained by performing analysis on all or part of the performance data based on the analysis mode.
[0082] In this embodiment, the analysis result can be obtained by performing analysis on all or part of the performance data based on the analysis mode indicated by the display mode, and the matched performance report is displayed, which realizes the display of performance reports in different modes and is beneficial to improve the efficiency of human-computer interaction.
[0083] Next, the performance reports displayed in different display modes are described in detail:
[0084] · First mode
[0085] In some embodiments, the display mode includes the first mode. The first mode is also called analysis mode, and the first mode has the lowest technical requirement for developers and can be presented in the simplest way, which can be read by UGC developers who are not familiar with business. For example, step 300 is implemented as step 311:
[0086] Step 311, in response to the first analysis mode indicated by the first mode, display the first performance report matched with the first analysis result of the performance data in the form of a list, and the first analysis result is obtained by performing analysis on all or part of the performance data based on the first analysis mode;
[0087] Wherein, the first analysis result includes: the level of abnormal performance data, the time period of abnormal performance data, and the solution to solve the abnormal performance data, and the first performance report includes: the level, the time period and the solution displayed in the form of a list.
[0088] The first analysis manner based on the first mode indication is used to perform analysis on all or part of the performance data, and a first analysis result is obtained. The first analysis result includes: a level of abnormal performance data, a time period of abnormal performance data, and a solution to solve the abnormal performance data. The solution is preset according to actual technical needs, and the solution corresponds to the performance rule, and the performance rule corresponds to the performance data. When the abnormal performance data and the corresponding performance rule are determined, the solution to solve the abnormal performance data is determined. It can be understood that the solution is only a suggestion, and in actual application, the corresponding solution can be determined according to actual technical needs.
[0089] The first performance report includes: a level, a time period and a solution displayed in a list form. The level, the time period and the solution each occupy a column, and each abnormal performance data occupies a row.
[0090] As an example, referring to Figure 3 , the first performance report includes: a level 11, a time period 12 and a solution 13 displayed in a list form. For example, the level is: serious, the time period is: 1-47 seconds, the solution is:
get all objects
[0091] The blueprint (UBlueprint) is a short name of a blueprint visual script, which is an object-oriented visual programming language that needs to be compiled. The blueprint can be completely integrated in the engine, and the blueprint works through a chart composed of nodes and lines.
[0092] In this embodiment, a way of displaying a first performance report in a first mode is provided. The first performance report has the lowest first level of detail, which is suitable for novice developers who are not familiar with the business and the engine, and is also suitable for scenarios where it is necessary to quickly determine the preliminary performance of the target application, which is conducive to improving the efficiency of human-computer interaction. The first mode is also suitable for non-professional developers in the subsequent automatic performance acceptance of the program code submitted by the UGC developers, which is also conducive to improving the efficiency of the automatic performance acceptance of the degree code.
[0093] In some embodiments, the method further comprises step 312:
[0094] Step 312, display the performance data corresponding to all or part of the performance indicators in a timeline manner.
[0095] Optionally, the performance data corresponding to all or part of the performance indicators is displayed in a timeline manner. Taking a performance indicator as an example, the performance data corresponding to the performance indicator can include but is not limited to the time-consuming information in the performance data of all frames under the performance indicator. The timeline can be displayed at the top, and the time-consuming information can be displayed in the form of a waveform diagram to represent the time-consuming information of each frame in each type of performance data. Each type of performance data is displayed in the same row.
[0096] As an example, refer to Figure 4 The timeline 14 is displayed at the top, and the performance data can be: the performance data corresponding to the number of actors, the number of actors off-screen, the number of actors-tick & off-screen, the total time-consuming of tick, and the time-consuming of tick-UI, which includes but is not limited to time-consuming information. The number of actors, the number of actors off-screen, the number of actors-tick & off-screen, the total time-consuming of tick, and the time-consuming of tick-UI can also be referred to as performance indicators. From top to bottom, the time-consuming information 15 of the number of actors, the time-consuming information 16 of the number of actors off-screen, the time-consuming information 17 of the number of actors-tick & off-screen, the time-consuming information 18 of the total time-consuming of tick, and the time-consuming information 19 of the time-consuming of tick-UI are displayed. Optionally, other types of performance data can also be selected from the data labels on the right side, so that other types of performance data are displayed on the left side in a timeline manner. Figure 4 The other types of performance data can be selected from the data labels on the right side, so that other types of performance data are displayed on the left side in a timeline manner.
[0097] In this embodiment, a way of displaying time-consuming information in a timeline manner is provided. Novice developers who are not familiar with the business and the engine can also view the time-consuming information in the performance data through the timeline, which is conducive to improving the efficiency of human-computer interaction.
[0098] • Second mode
[0099] In some embodiments, the display mode includes a second mode, also referred to as a time-consuming tree mode or a basic mode, which can assist UGC developers who are less familiar with the business of the target application but are not familiar with the underlying architecture of the engine to further find detailed performance hotspots. The second mode indicates a second detailed level of the second performance report, which is higher than the first detailed level of the first performance report indicated by the first mode. For example, step 300 is implemented as steps 321 and 322:
[0100] Step 321, in response to a selection operation, determining a selected frame from the candidate frames;
[0101] Step 322, in response to the second analysis mode indicated by the second mode, displaying a second performance report matched with a second analysis result of the performance data of the selected frame in a tree structure, the second analysis result being obtained by performing analysis on the performance data of the selected frame based on the second analysis mode;
[0102] The second analysis result includes at least one layer of child nodes corresponding to the selected frame, and time-consuming information of each child node of the at least one layer of child nodes, each child node corresponding to a function or a piece of executable code; and the second performance report includes time-consuming information in the performance data of the selected frame, and the second analysis result displayed in a tree structure.
[0103] The selection operation is used to select a selected frame from all frames. The selection operation can be implemented by at least one of the following: clicking, double-clicking, long-pressing, swiping, gesture selection, and selection by an external input device.
[0104] The second analysis mode indicated by the second mode is used to perform analysis on all or part of the performance data to obtain a second analysis result. The second analysis result includes at least one layer of child nodes corresponding to the selected frame, and time-consuming information of each child node of the at least one layer of child nodes, each child node corresponding to a function or a piece of executable code. The time-consuming information corresponds to a time-consuming dot granularity, which can be a function or a piece of executable code, and a function can add multiple time-consuming dots.
[0105] The at least one layer of child nodes is determined based on a call level relationship and a call type. The call level relationship is also referred to as a function call level relationship or an executable code call level relationship. For example, executable code 1 can call executable code 2, and executable code 2 can call executable code 3 and executable code 4. Executable code 1 can be a child node, executable code 2 can be a child node of the child node where executable code 1 is located, and executable code 3 and executable code 4 can be child nodes of the child node where executable code 2 is located.
[0106] The second performance report includes time consumption information in performance data of the selected frame, and the second analysis result displayed in a tree structure. Since the tree structure displays time consumption information of functions or executable codes corresponding to different child nodes, the tree structure can also be referred to as a time consumption tree structure.
[0107] Optionally, the second performance report also displays time consumption information in performance data of all frames in a time axis manner. The selected frame can be a frame selected from the all frames through a selection operation. In some embodiments, the time consumption information in performance data of the selected frame includes a serial number of the selected frame, time consumption summary information, and time consumption information corresponding to each type of function or executable code.
[0108] As an example, referring to Figure 5 , the second performance report includes time consumption information 21 of the selected frame, where the selected frame is the 753rd frame, and the time consumption summary is: Scene Tick: 13.25ms, Scene Render 11.46ms, UI Tick: 1.46ms, and UI Render: 3.01ms. The second analysis result 22 displayed in a tree structure includes at least one layer of child nodes corresponding to the selected frame, time consumption information 23 of each child node of the at least one layer of child nodes, and each child node corresponds to a function or an executable code. For example, the parent node is “Focus”, and the time consumption of “Focus” is 10.38ms. The first layer of child nodes are “Monster_PoisonMushroom”, “RunnerCharacter”, “JumpingMushroom”, “PlayerOverrunAutoDestroyComponent”, “Other”, “Monster_EatingFlower”, “RunnerBulletMovement”, “InGameUI”, “BlankBaseTile”, “PlayerCamera”, and “TileGenerator”. Among them, the time consumption of “Monster_PoisonMushroom” is 2.65ms, the time consumption of “RunnerCharacter” is 2.11ms, the time consumption of “JumpingMushroom” is 1.27ms, the time consumption of “PlayerOverrunAutoDestroyComponent” is 1.12ms, the time consumption of “Other” is 1.09ms, the time consumption of “Monster_EatingFlower” is 1.05ms, the time consumption of “RunnerBulletMovement” is 0.37ms, the time consumption of “InGameUI” is 0.20ms, the time consumption of “BlankBaseTile” is 0.17ms, the time consumption of “PlayerCamera” is 1.15ms, and the time consumption of “TileGenerator” is 0.07ms.
[0109] For the "Monster Poison Mushroom", its second layer of child nodes are "Character Movement Component Per Frame Update", "Blueprint Per Frame Update", "Skeletal Mesh Component Per Frame Update", and "State Machine Component Per Frame Update". Among them, "Character Movement Component Per Frame Update" has a total of (1 time) 0.58 ms, "Blueprint Per Frame Update" has a total of (1 time) 0.55 ms, "Skeletal Mesh Component Per Frame Update" has a total of (1 time) 0.50 ms, and "State Machine Component Per Frame Update" has a total of (1 time) 0.48 ms. For the "Jumping Mushroom", its second layer of child nodes are "Skeletal Mesh Component Per Frame Update" and "Blueprint Per Frame Update". Among them, "Skeletal Mesh Component Per Frame Update" has a total of (7 times) 1.12 ms, and "Blueprint Per Frame Update" has a total of (7 times) 0.15 ms.
[0110] When the developer views the second performance report, when it is found that the "Monster Poison Mushroom" consumes more time, open the "Monster Poison Mushroom" child node to continue viewing. When "Skeletal Mesh Component Per Frame Update" consumes more time, it can be considered to simplify the skeletal animation of the character; when "Blueprint Per Frame Update" consumes more time, the corresponding blueprint can be opened to view the corresponding function part to see which blueprint node can reduce the call; finally, the use of "Monster Poison Mushroom" which consumes more time can also be appropriately reduced.
[0111] In this embodiment, a way of displaying a second performance report in a second mode is provided. The second detailed level of the second performance report is higher than the first detailed level of the first performance report, can display the details of the call level relationship and the single item time consumption information of the selected frame, can show more performance problems at the business level, the call level relationship is also more clear, is suitable for developers who have some knowledge of business and engine, is also suitable for scenarios that need to quickly determine the preliminary performance of the target application, and is beneficial to improve the human-computer interaction efficiency.
[0112] · Third mode
[0113] In some embodiments, the display mode includes a third mode, also called an advanced mode, which has time consumption information in the performance data of all frames, can simultaneously show the call level relationship and time consumption information of all or part of the frames of the entire timeline, and the amount of information displayed is large, including the engine bottom layer, such as rendering, physics, skeletal animation, etc., and also including the business level, such as map loading, distance detection, button click triggering, etc. The third detailed level of the third performance report indicated by the third mode is higher than the second detailed level of the second performance report indicated by the second mode. For example, step 300 is specifically implemented as steps 331 and 332:
[0114] Step 331, in response to an input operation, inputting a target call type in an input box;
[0115] Step 332: In response to the third analysis method indicated by the third mode, displaying a third performance report matching a third analysis result of the performance data related to the target call type in a list format, wherein the third analysis result is obtained by analyzing the performance data of the function or executable code matching the target call type based on the third analysis method;
[0116] Among them, the third analysis result includes: the number and time consumption information corresponding to the functions or executable codes matching the target call type; the third performance report includes: the time consumption information in the performance data indicating all or part of the frames, and the third analysis result displayed in a list form.
[0117] The input action is used to enter the target call type in the input box. The input action can be implemented as at least one of the following: text input, voice input, gesture input, speech-to-text conversion, and input through an external input device.
[0118] The performance data of the functions or executable codes that match the target call type are analyzed based on the third analysis method indicated by the third mode to obtain a third analysis result. The function or executable code that matches the target call type may include the target call type as a prefix of the function or executable code, or the target call type as a suffix of the function or executable code. The third analysis result includes: the number and timing information corresponding to the function or executable code that matches the target call type.
[0119] The third performance report includes: timing information in the performance data indicating all or part of the frames, and third analysis results displayed in a list format. That is, the third performance report adds a call type, which can subdivide functions or executable codes according to the call type.
[0120] As an example, refer to Figure 6 , the developer enters the target call type "Monster_PiranhaPlant" 32 in the input box, and the third performance report is displayed. The third performance report includes: the third analysis results displayed in a list format, and the third analysis results include: functions or executable codes 33 that match the target call type, as well as the corresponding quantity 34 and time consumption information 35.
[0121] The functions or executable codes matched with "Monster_EatmanFlower" include: "tick_3#tick_SkeletalMeshComponent#Monster_EatmanFlower_C", quantity 18, total time consumption 8.8ms. "tick_3#tick_SMStateMachineComponent#Monster_EatmanFlower_C", quantity 3, total time consumption 7.3ms. "bp_4_Process#ReceiveTick#Monster_EatmanFlower_C", quantity 3, total time consumption 1ms. "bp_4_Local#RemoteAttackEvent#Monster_EatmanFlower_C", quantity 3, total time consumption 244μs. "tick_3#tick_ProjectileMovementComponent#Monster_EatmanFlower_C", quantity 3, total time consumption 103μs. "bp_4_exec#Actor:K2_GetActorLocation#Monster_EatmanFlower_C", quantity 3, total time consumption 31μs.
[0122] In the embodiment, the third mode is provided to display the third performance report, and the third detailed level of the third performance report is higher than the second detailed level of the second performance report. The detailed level is the highest, and the details of the call hierarchy and the single item time consumption information of all frames can be displayed. The third performance report is suitable for senior developers who are familiar with the business and the engine, and is also suitable for scenarios in which the detailed performance of the target application program needs to be determined. The third performance report is beneficial to improve the human-computer interaction efficiency.
[0123] In some embodiments, the method further includes step 333:
[0124] In step 333, the time consumption information in the performance data of all or part of the frames is displayed in the form of a time axis, and the call hierarchy and the time consumption information corresponding to all or part of the functions or executable codes indicated by the performance data are displayed.
[0125] An exemplary time axis is used to display the time consumption information in the performance data of all or part of the frames. Optionally, each function or executable code is represented as a bar frame with different lengths according to the time consumption information, and the bar frames of the functions or executable codes are arranged and displayed from top to bottom according to the call hierarchy. For example, if executable code 1 calls executable code 2, the bar frame of executable code 1 is displayed above the bar frame of executable code 2. The time consumption information in the performance data of all or part of the frames is displayed above the call hierarchy.
[0126] As an example, refer to Figure 7In the time axis manner, the time-consuming information 31 in the performance data of all or part of the frames is displayed, and below the time-consuming information 31, the call level relationship corresponding to all functions or executable codes and the time-consuming information are displayed. For example, "tick_3#tick_SkeletalMeshComponent#JumpMushroom_C (138us)" 36 indicates that the function or executable code "tick_3#tick_SkeletalMeshComponent#JumpMushroom_C" consumes 138us. "USkinnedMeshComponent_TickComponent (133us)" 37 indicates that the function or executable code "USkinnedMeshComponent_TickComponent" consumes 133us. "SkinnedMeshCompTick (129us)" 38 indicates that the function or executable code "SkinnedMeshCompTick" consumes 129us. Among them, the function or executable code "tick_3#tick_SkeletalMeshComponent#JumpMushroom_C" can call the function or executable code "USkinnedMeshComponent_TickComponent", and the function or executable code "USkinnedMeshComponent_TickComponent" can call the function or executable code "SkinnedMeshCompTick".
[0127] In the embodiment, the manner of displaying the hierarchical call relationship and the time-consuming information in the time axis manner is provided. The senior developers familiar with the business and the engine can determine more time-consuming information therefrom, can distinguish the influence of different call types on the performance, and can distinguish the same call, which is conducive to improving the human-computer interaction efficiency.
[0128] Next, the technical implementation manner in different display modes is described in detail.
[0129] · The first mode
[0130] In some embodiments, in the first mode, the performance data needs to be analyzed according to the preset performance rules to determine whether the performance data is abnormal, the time period and level of the abnormal performance data, and the solution to solve the abnormal performance data. For example, it is first determined whether the single performance data corresponding to each performance rule is abnormal, and then the level of the abnormal performance data corresponding to each performance rule is determined, and the solution to solve the abnormal performance data is included in the performance rule. The method further includes steps 411, 412, 413, 414 and 415:
[0131] Step 411, based on the time period and the key value name, obtaining the performance data corresponding to the preset performance rule;
[0132] Step 412, detecting the relationship between the performance data and the threshold value in the performance rule;
[0133] Step 413, in the case that the performance data is greater than the threshold value, determining that the performance data is abnormal, and increasing the abnormal number of the performance data of the time period;
[0134] Step 414, obtaining the abnormal number of the performance data corresponding to the performance rule;
[0135] Step 415, based on the relationship between the abnormal number and the abnormal number threshold value in the performance rule, determining the level of the abnormal performance data.
[0136] The key value name (DataKeyName) is part of the performance rule, used to indicate the specific type of performance data. The threshold value (DataThreshold) is part of the performance rule, used to indicate the pre-defined threshold value of the performance data. When the performance data is greater than the threshold value, it is determined that the performance data is abnormal. The threshold value can be adaptively defined according to actual technical needs and the specific type of performance data. The abnormal number threshold value is part of the performance rule, used to indicate the level of abnormal performance data. The abnormal number threshold value can be adaptively defined according to actual technical needs and the specific type of level.
[0137] The abnormal number threshold value includes at least one of the error threshold value (ErrorTicks), the warning threshold value (WarnTicks), and the suggestion threshold value (SuggestTicks), and the level of abnormal performance data includes at least one of the error (Error), the warning (Warn), and the suggestion (Suggest). For example, the key value name is "Widget creation", the threshold value is 1, the error threshold value is 20.0, the warning threshold value is 10.0, and the suggestion threshold value is 5.0.
[0138] For example, based on the time period and the key value name, the performance data corresponding to the preset performance rule is obtained; the relationship between the performance data and the threshold value in the performance rule is detected; in the case that the performance data is greater than the threshold value, it is determined that the performance data is abnormal, and the abnormal number of the performance data of the time period is increased, specifically, the abnormal number of the performance data of the time period is increased by 1; in the case that the performance data is less than or equal to the threshold value, it is determined that the performance data is not abnormal, and the performance data does not need to be processed. The abnormal number of the performance data corresponding to the performance rule is obtained; based on the relationship between the abnormal number and the abnormal number threshold value in the performance rule, the level of the abnormal performance data is determined.
[0139] In the first mode, the performance data in the whole period or a specified time period can be analyzed in combination with the performance rules to determine which performance rule corresponds to the abnormal performance data in the period, and if the abnormality occurs, the corresponding level, time period and solution are integrated and output to the first performance report, so that the developers or other personnel who do not know the engine function and application business can also preliminarily determine the performance problem.
[0140] In the embodiment, the way of determining whether the performance data is abnormal and the level of the abnormal performance data in the first mode is provided, the performance data can be processed according to the preset performance rules, and the data processing efficiency can be improved.
[0141] In some embodiments, the abnormal number threshold includes at least one of the following: error threshold (ErrorTicks), warning threshold (WarnTicks), and suggestion threshold (SuggestTicks), and the level of the abnormal performance data includes at least one of the following: serious (Error), warning (Warn), and suggestion (Suggest). Step 415 is specifically implemented as step 4151, step 4152, step 4153, and step 4154.
[0142] Step 4151, in the case where the number of abnormalities is greater than the error threshold, the level of the abnormal performance data corresponding to the performance rule is marked as serious.
[0143] Step 4152, in the case where the number of abnormalities is less than the error threshold and greater than the warning threshold, the level of the abnormal performance data corresponding to the performance rule is marked as warning.
[0144] Step 4153, in the case where the number of abnormalities is less than the warning threshold and greater than the suggestion threshold, the level of the abnormal performance data corresponding to the performance rule is marked as suggestion.
[0145] Step 4154, in the case where the number of abnormalities is less than the error threshold, less than the warning threshold, and less than the suggestion threshold, the performance data corresponding to the performance rule is marked as not prompted.
[0146] For example, in the case where the number of abnormalities is greater than the error threshold, the level of the abnormal performance data corresponding to the performance rule is marked as serious (Error). In the case where the number of abnormalities is less than the error threshold and greater than the warning threshold, the level of the abnormal performance data corresponding to the performance rule is marked as warning (Warn). In the case where the number of abnormalities is less than the warning threshold and greater than the suggestion threshold, the level of the abnormal performance data corresponding to the performance rule is marked as suggestion (Suggest). In the case where the number of abnormalities is less than the error threshold, less than the warning threshold, and less than the suggestion threshold, the performance data corresponding to the performance rule is marked as not prompted, i.e. no need to prompt.
[0147] In the embodiment, the manner of determining the level of abnormal performance data according to the abnormal data and the abnormal quantity threshold in the first mode can mark the performance data into different levels, and is beneficial to subsequent prompting of the abnormal performance data in the first performance report.
[0148] In some embodiments, the method further includes steps 401, 402 and 403:
[0149] Step 401, determining the performance data to be collected;
[0150] Step 402, defining the threshold corresponding to the performance data, and the rule information of collecting the performance data;
[0151] Step 403, determining the performance rule corresponding to the performance data based on the rule information and the threshold of the performance data.
[0152] The performance data to be collected refers to the performance data corresponding to the performance indicators that need to be focused on in the current target application, that is, which performance data needs to form a performance report and be synchronized to the developer. The performance indicators indicated by the performance data include but are not limited to at least one of the following: the number of actors, the number of scene rendering times, the number of draw calls, and the level of shadows. The performance data is mainly used in the first mode.
[0153] For example, the performance data to be collected is determined, the threshold corresponding to the performance data is defined, and the rule information of collecting the performance data is determined. The performance rule corresponding to the performance data is determined based on the rule information and the threshold of the performance data.
[0154] In the embodiment, the manner of determining the performance rule corresponding to the performance data in the first mode is provided, which is beneficial to subsequent analysis of the performance data according to the performance rule, and improves the data processing efficiency.
[0155] In some embodiments, the storage format of the performance rule is at least one of the following: JSON format, table format, text format, and other arbitrary formats. The performance rule is converted based on the problems that are more valued in the business or the problems that are prone to occur according to past experience. The performance rule can be arranged according to the specific business and project. For each performance rule, whether the threshold is exceeded can be detected according to the performance data collected at runtime. In actual use, the rule of the linked performance data can also be increased, for example, a performance rule can detect multiple performance data to determine the first analysis result.
[0156] In some embodiments, the performance rule includes at least one of the following information:
[0157] Rule ID, Rule Name, Platform Type, Datatype, Data Key Name, Data Threshold, Tick Num or Tick Rate, Suggest Ticks, Warn Ticks, Error Ticks, Tip, Tip Doc, Tip Doc Title.
[0158] The Data Key Name corresponds to the Key value of the performance data, and the performance data corresponding to the Key Name in the series of performance data collected in a time period can be obtained. When the performance data is greater than the performance data threshold, the number of exceptions is recorded +1. The Tick Num or Tick Rate indicates whether the number of exceptions exceeding the threshold is determined by the numerical value of the total number or by the proportion of the total number, which is beneficial to determine the final level of the performance data in the entire time period. The Suggest Ticks is used to indicate that when the number of exceptions or the proportion of exceptions of the performance data exceeds the Suggest Ticks, the performance data and the performance rule are marked as: Suggest. When the Error Ticks and the Warn Ticks are both -1, and the Suggest Ticks is not -1, the Suggest Ticks is checked. The Warn Ticks is used to indicate that when the number of exceptions or the proportion of exceptions of the performance data exceeds the Warn Ticks, the performance data and the performance rule are marked as: Warn. When the Error Ticks is -1, and the Warn Ticks is not -1, the Warn Ticks is checked. The Error Ticks is used to indicate that when the number of exceptions or the proportion of exceptions of the performance data exceeds the Error Ticks, the performance data and the performance rule are marked as: Error. When the Error Ticks is not -1, the Error Ticks is checked.
[0159] As an example, refer to Figure 8 In the figure, three performance rules are shown, which are respectively:
[0160] Example 1 of the performance rule:
[0161] The Rule ID is: 2;
[0162] RuleName: UWC Dynamic Frequent Creation
[0163] Platform: win64 & html5
[0164] Datatype: 0
[0165] DataKeyName: Widget Creation
[0166] DataThreshold: 1
[0167] TickNumOrTickRate: 0
[0168] SuggestTicks: 5.0
[0169] WarnTicks: 10.0
[0170] ErrorTicks: 20.0
[0171] Tip: Frequent creation of UMG can cause stuttering, suggest using Object Pool
[0172] TipDoc: null
[0173] TipDocTitle: Object Pool Usage
[0174] Example Two of Performance Rules:
[0175] RuleID: 3
[0176] RuleName: Character-Number Too Many
[0177] Platform: win64 & html5
[0178] Datatype: 0
[0179] DataKeyName: Character-Number
[0180] DataThreshold: 50
[0181] TickNumOrTickRate: 1;
[0182] SuggestTicks: 0.2;
[0183] WarnTicks: -1.0;
[0184] ErrorTicks: -1.0;
[0185] Tip: The number of characters is too large, which affects the running performance. It is suggested that the number of characters does not exceed 50.
[0186] TipDoc: null;
[0187] TipDocTitle: null.
[0188] Example three of the performance rule:
[0189] RuleID: 4;
[0190] RuleName: Too much time is spent on recording the field;
[0191] Platform: win64&html5;
[0192] Datatype: 1;
[0193] DataKeyName: World Tick Time;
[0194] DataThreshold: 1500;
[0195] TickNumOrTickRate: 1;
[0196] SuggestTicks: 0.1;
[0197] WarnTicks: 0.2;
[0198] ErrorTicks: 0.5;
[0199] The solution tip (Tip) is: single frame blueprint takes a long time, it is suggested to check the specific time-consuming position through UnrealInsight, and repair the problem;
[0200] The solution tip document (TipDoc) is: empty.
[0201] The solution tip document title (TipDocTitle) is: Unreal-Light Game-Trace&Insights usage instructions.
[0202] In this embodiment, the specific content contained in the performance rule in the first mode is provided, which is beneficial to subsequent analysis of performance data according to the performance rule, and improves the data processing efficiency.
[0203] · Second mode
[0204] In some embodiments, in the second mode, the time-consuming information in the performance data of the selected frame, and the call level relationship and the call type are needed to determine at least one layer of child nodes corresponding to the selected frame, and the time-consuming information of each child node of the at least one layer of child nodes. For example, the performance data corresponding to the selected frame can be filtered first, and then the performance data meeting the filtering condition is analyzed according to the call level relationship and the call type. The method further includes steps 421, 422:
[0205] Step 421, filtering the performance data corresponding to the selected frame to determine the performance data meeting the filtering condition;
[0206] Step 422, determining a second analysis result of the performance data based on the performance data meeting the filtering condition, and the call level relationship and the call type;
[0207] The filtering condition includes at least one of the following: the time-consuming information in the performance data is greater than a threshold, the type of the performance data is a preset type, and the performance data is related to the business; the call level relationship is used to indicate the calling relationship between the functions or executable codes corresponding to the performance data, and the call type is indicated by the suffix in the time-consuming information format of the function or executable code.
[0208] The filtering condition can be set according to actual technical needs. Optionally, the filtering condition includes at least one of the following: the time-consuming information in the performance data is greater than a threshold, the type of the performance data is a preset type, and the performance data is related to the business. Wherein, the preset type can be the type of the function or executable code corresponding to the business. For the performance data corresponding to the selected frame, only the part related to the business is filtered and classified and displayed, which can avoid too many details of time-consuming information affecting the developer reading the performance report.
[0209] For example, the time-consuming of building instance (CPU submits the instantiation data required by GPU rendering before rendering), the time-consuming of RDG building (the time-consuming of the rendering framework Render Dependency Graph in UE), the time-consuming of bone animation updating, and the like are difficult for non-professional developers to understand, and cannot be directly modified. Even if there is time-consuming, there is no corresponding solution, so this part of performance data can be filtered out.
[0210] For example, the performance data corresponding to the selected frame is filtered out, and the performance data meeting the filtering condition is determined. Based on the performance data meeting the filtering condition and the call hierarchy and the call type, a second analysis result of the performance data is determined.
[0211] In this embodiment, a way of performing processing on performance data in the second mode is provided. By filtering out performance data meeting the filtering condition, the details of excessive time-consuming information can be avoided to cause reading difficulty for developers unfamiliar with the engine, and thus the problem of being unable to find performance hotspots. This is beneficial to provide data processing efficiency. Through the second analysis result, the developer can more easily find performance hotspots and determine the corresponding solution, which is beneficial to improve human-computer interaction efficiency.
[0212] Specifically, step 422 is implemented as step 4221 and step 4222:
[0213] In step 4221, based on the call hierarchy and the call type, the time-consuming information in the performance data meeting the filtering condition is sorted to determine the first layer of child nodes. Based on the call hierarchy, the next layer of child nodes of the first layer of child nodes is determined until the call hierarchy is traversed.
[0214] In step 4222, the same type of time-consuming information of the same layer of child nodes in at least one layer of child nodes is merged to obtain the merged time-consuming information of the child nodes.
[0215] For example, based on the call hierarchy and the call type, the time-consuming information in the performance data meeting the filtering condition is sorted to determine the first layer of child nodes. Specifically, the time-consuming information in the performance data meeting the filtering condition is sorted in descending order of time-consuming duration. The first N functions or executable codes whose time-consuming duration exceeds a threshold value are determined as the first layer of candidate child nodes. According to the call type, in the case where the function or the executable code corresponding to the first layer of candidate child nodes is not called by other functions or other executable codes, the function or the executable code is determined as the first layer of child nodes. Next, based on the call hierarchy, the next layer of child nodes of the first layer of child nodes is determined until the call hierarchy is traversed or all functions or all executable codes are indicated to be traversed.
[0216] In some embodiments, the same-layer same-type time-consuming information merging is also performed. Specifically, the same-layer same-type time-consuming information of the same-layer child nodes in the at least one layer of child nodes is merged to obtain the merged time-consuming information of the child nodes. For example, referring to Figure 5 For the “Jumping Mushroom”, its second layer of child nodes should include 7 “Skeletal Mesh Component Update Per Frame” and 7 “Blueprint Update Per Frame”, and here the same-layer same-type time-consuming information of the same-layer child nodes is merged, and the total time-consuming (merged time-consuming) of the 7 “Skeletal Mesh Component Update Per Frame” is 1.12 ms, and the total time-consuming (merged time-consuming) of the 7 “Blueprint Update Per Frame” is 0.15 ms.
[0217] In some optional embodiments, the names of all or part of the child nodes of the at least one layer of child nodes are also optimized, for example, in the case that the length of the name of the child node exceeds a threshold, the name of the child node is simplified for display. Time-consuming information less than the threshold is no longer displayed in order to reduce the difficulty for the developer to read the time-consuming information. For example, the threshold is set to 0.001 ms.
[0218] In this embodiment, the manner of determining the child nodes of each layer based on the call hierarchy and the call type in the second mode is provided, and this manner of using the call type for classification can make the second performance report easier to read, and can avoid generating too many details of time-consuming information to make the developer unfamiliar with the engine to have difficulty reading, and thus cannot find the performance hotspot problem. By merging the same-layer same-type time-consuming information, it is beneficial to reduce the difficulty for the developer to read the time-consuming information, thereby facilitating the data processing efficiency and human-computer interaction efficiency.
[0219] • Third mode
[0220] In some embodiments, in the third mode, when displaying the call hierarchy and the time-consuming information corresponding to all or part of the functions or executable codes indicated by the performance data in the time axis manner, since the size of the display window of the time axis is limited, it is necessary to determine the time period to be displayed first, and then draw the time-consuming nodes in the time period. Exemplarily, the method further includes steps 431, 432 and 433:
[0221] Step 431, determining the time period to be displayed;
[0222] Step 432, based on the time period, obtaining the time-consuming information in the performance data;
[0223] Step 433, based on the time-consuming information and the call hierarchy corresponding to the time-consuming information, drawing the time-consuming nodes.
[0224] The time period to be displayed can be determined according to at least one of the following: size of the current display window, zoom ratio, display position. The time period to be displayed and the amount of time consumption information displayed are adjustable, for example, by adjusting the start time point and end time point of the time period to view the time consumption information of different time periods. Or, by reducing the proportion of the time consumption node, so that more time consumption information is displayed in the same display window, the more time consumption information displayed, the smaller the proportion of a single time consumption node. Or, by enlarging the proportion of the time consumption node, so that less time consumption information is displayed in the same display window, the less time consumption information displayed, the larger the proportion of a single time consumption node, and the time consumption information of a certain time consumption node can be focused on.
[0225] For example, the time period to be displayed is determined; based on the time period, the time consumption information in the performance data is obtained; and based on the time consumption information and the call level relationship corresponding to the time consumption information, the time consumption node is drawn. Wherein, the time consumption node refers to a function or executable code displayed in a bar frame of different lengths. Each time consumption node displays at least one of the following information: call level relationship, name, time length corresponding to time consumption information. Wherein, according to the call level relationship, the bar frames of various functions or executable codes are displayed in order from top to bottom. For example, executable code 1 calls executable code 2, and the bar frame of executable code 1 is displayed above the bar frame of executable code 2.
[0226] In this embodiment, a method of performing processing on performance data in the third mode is provided, which can display the most comprehensive performance data in the form of a time axis, and is beneficial to improve the efficiency of human-computer interaction.
[0227] In some embodiments, the time consumption information format of the function or executable code is also defined, wherein the call type is added to the original time consumption information format. The method further comprises step 440:
[0228] Step 440, define the time consumption information format of the function or executable code of the target application program running time;
[0229] Wherein, the time consumption information format includes: prefix, call function mark or call executable code mark, suffix; the prefix is used to indicate at least one of the following: engine internal call to business, load, engine internal loop, and the suffix is used to indicate the call type, which is used to indicate at least one of the following: engine internal type, business use type, and other type.
[0230] Exemplarily, the timing information format for functions or executable code during the runtime of a target application is defined. The timing information format includes a prefix, a function call marker or an executable code call marker, and a suffix. The prefix indicates at least one of the following: an internal engine call to a business (blueprint), loading, or an internal engine loop. The suffix indicates the call type, which indicates at least one of the following: an internal engine type (C++ class), a business usage type (blueprint class), or other types (special types).
[0231] For example, the timing information of a function or executable code is expressed as: "bp_Process#ReceiveTick#ParkourRole_C". Among them, the prefix "bp_Process" indicates the internal call to the business (blueprint) in the engine. "ReceiveTick" indicates the call function tag / name, or, indicates the call executable code tag / name. The suffix "ParkourRole_C" indicates the call type, specifically the blueprint class used by the business. It should also be noted that the timing information format provided in this embodiment is only an example. The timing information format can also be planned according to the actual project and the performance data available at runtime. The purpose is to record the information needed for time-consuming analysis.
[0232] Based on this timing information format, you can obtain timing information from performance data. This timing information is mainly used in the first, second, and third modes. The difference is that the first mode only displays the timing information in a list format and does not display the details of individual timing information. The second mode displays the details of individual timing information after filtering and optimizes the name of the final displayed timing information. The third mode directly displays the details of individual timing information in the original timeline format.
[0233] In this embodiment, a method for defining the format of time-consuming information is provided, so that the time-consuming information also includes the call type and can record the time-consuming information, which is conducive to improving the data processing efficiency of the time-consuming information.
[0234] Next, the method for displaying the performance report is generally described with reference to a flowchart and a schematic diagram.
[0235] Interface side
[0236] This embodiment provides three display modes: the first mode, the second mode, and the third mode. These display modes can be used individually or in combination to help developers from different backgrounds or positions who want to understand application performance quickly understand performance and specific issues. This covers developers who are new to the business, UGC developers who are familiar with the business, and senior developers who are familiar with the engine and business code.
[0237] For the first performance report in the first mode, please refer to Figure 3The first performance report includes: rank 11, time period 12, solution 13 displayed in list form. For example, the rank is: serious, the time period is: 1-47 seconds, the number of calls to get all objects, the solution is:
get all objects
[0238] In the first mode, the performance data in the whole period or the specified time period can be analyzed in combination with the performance rules to determine which performance rule corresponds to the abnormal performance data in this period. If an exception occurs, the corresponding rank, time period and solution are integrated and output as a first performance report, so that developers or other personnel who do not understand engine functions and application business can also preliminarily determine performance problems.
[0239] For the second performance report in the second mode, refer to Figure 5The performance data of the selected frame is filtered in combination with the time-consuming information in the performance data, and is displayed in a tree structure in combination with the call hierarchy and the call type. The second performance report includes: time-consuming information 21 of the selected frame, wherein the selected frame is the 753th frame, and the time-consuming summary is: Scene Tick: 13.25ms, Scene Render 11.46ms, UI Tick: 1.46ms, UI Render: 3.01ms, and the second analysis result 22 displayed in a tree structure, wherein the second analysis result includes: at least one layer of child nodes corresponding to the selected frame, time-consuming information 23 of each child node of the at least one layer of child nodes, and each child node corresponds to a function or an executable code. For example, the parent node is “Focus”, and the “Focus” consumes 10.38ms. The first layer of child nodes are “Monster_PoisonMushroom”, “RunnerCharacter”, “JumpingMushroom”, “PlayerOverridingAutoDestroyComponent”, “Other”, “Monster_EatingFlower”, “RunnerBulletMovement”, “InGameUI”, “EmptyBaseTile”, “PlayerCamera”, and “TileGenerator”. Among them, “Monster_PoisonMushroom” consumes 2.65ms, “RunnerCharacter” consumes 2.11ms, “JumpingMushroom” consumes 1.27ms, “PlayerOverridingAutoDestroyComponent” consumes 1.12ms, “Other” consumes 1.09ms, “Monster_EatingFlower” consumes 1.05ms, “RunnerBulletMovement” consumes 0.37ms, “InGameUI” consumes 0.20ms, “EmptyBaseTile” consumes 0.17ms, “PlayerCamera” consumes 1.15ms, and “TileGenerator” consumes 0.07ms.
[0240] For “Monster_PoisonMushroom”, the second layer of child nodes are “CharacterMovementComponent Per Frame Update”, “Blueprint Per Frame Update”, “SkeletalMeshComponent Per Frame Update”, and “State Machine Component Per Frame Update”. Among them, “CharacterMovementComponent Per Frame Update” consumes 0.58ms in total (1 time), “Blueprint Per Frame Update” consumes 0.55ms in total (1 time), “SkeletalMeshComponent Per Frame Update” consumes 0.50ms in total (1 time), and “State Machine Component Per Frame Update” consumes 0.48ms in total (1 time). For “JumpingMushroom”, the second layer of child nodes are “SkeletalMeshComponent Per Frame Update” and “Blueprint Per Frame Update”. Among them, “SkeletalMeshComponent Per Frame Update” consumes 1.12ms in total (7 times), and “Blueprint Per Frame Update” consumes 0.15ms in total (7 times).
[0241] The first layer of sub-nodes is classified according to the call type, which can make it easier for non-professional developers to read and know the performance hotspots and approximately know the solutions to be taken. For example, when the developer views the second performance report and finds that the "Monster_PoisonMushroom" takes a long time, the "Monster_PoisonMushroom" sub-node is opened to continue viewing. When the "Skeletal Mesh Component updates every frame" takes a long time, the character can be simplified for skeletal animation; when the "Blueprint updates every frame" takes a long time, the corresponding blueprint can be opened to view the corresponding function part to see which blueprint node can reduce the call; finally, the use of the "Monster_PoisonMushroom" character, which takes a long time, can be appropriately reduced. The next layer of sub-nodes of the first layer of sub-nodes is determined according to the call level relationship, and the time consumption information of the functions or executable codes of the same layer and the same type is combined, and the time consumption information that takes a very small amount of time, for example, less than 0.001 ms, is no longer displayed, thereby reducing the difficulty for non-professional developers to read the time consumption information.
[0242] For the third performance report in the third mode, refer to Figure 6 The call type is added, and the time consumption information can be subdivided according to the call type. The developer inputs the target call type "Monster_EatingFlower" 32 in the input box, and the third performance report is displayed. The third performance report includes the third analysis result displayed in the form of a list, and the third analysis result includes the function or executable code 33 matched with the target call type, the corresponding number 34, and the time consumption information 35.
[0243] The function or executable code matched with the "Monster_EatingFlower" includes "tick_3#tick_SkeletalMeshComponent#Monster_EatingFlower_C", the number is 18, and the total time consumption is 8.8 ms. "tick_3#tick_SMStateMachineComponent#Monster_EatingFlower_C", the number is 3, and the total time consumption is 7.3 ms. "bp_4_Process#ReceiveTick#Monster_EatingFlower_C", the number is 3, and the total time consumption is 1 ms. "bp_4_Local#RemoteAttackEvent#Monster_EatingFlower_C", the number is 3, and the total time consumption is 244 μs. "tick_3#tick_ProjectileMovementComponent#Monster_EatingFlower_C", the number is 3, and the total time consumption is 103 μs. "bp_4_exec#Actor:K2_GetActorLocation#Monster_EatingFlower_C", the number is 3, and the total time consumption is 31 μs.
[0244] For the timeline viewing example in the third mode, refer to Figure 7, the timing information 31 of the performance data of all or part of the frame is displayed in the form of a timeline, and the call hierarchy relationship and timing information corresponding to all functions or executable codes are displayed below the timing information 31. For example, "tick_3#tick_SkeletalMeshComponent#Bounce Mushroom_C(138μs)" 36 indicates that the function or executable code "tick_3#tick_SkeletalMeshComponent#Bounce Mushroom_C" took 138μs. "USkinnedMeshComponent_TickComponent(133μs)" 37 indicates that the function or executable code "USkinnedMeshComponent_TickComponent" took 133μs. "SkinnedMeshCompTick(129μs)" 38 indicates that the function or executable code "SkinnedMeshCompTick" took 129μs. Among them, the function or executable code "tick_3#tick_SkeletalMeshComponent#bouncing mushroom_C" can call the function or executable code "USkinnedMeshComponent_TickComponent", and the function or executable code "USkinnedMeshComponent_TickComponent" can call the function or executable code "SkinnedMeshCompTick".
[0245] Technical side
[0246] refer to Figure 9 The main implementation process of this embodiment includes: 1. Customization: including defining performance rules and time-consuming information formats; 2. Real-time recording: performance data; 3. Offline / real-time analysis: determining performance reports and time-consuming tree structures.
[0247] (1) For defining performance rules: Analyze the performance data corresponding to the performance indicators that the current target application needs to focus on, determine which ones need to be generated into performance reports and synchronized to the developer, define the thresholds for the performance data, and collect rule information such as key values and recommended documents for the performance data to form performance rules. In some embodiments, the performance indicators indicated by the performance data include but are not limited to at least one of the following: number of Actors, number of scene renderings, number of DrawCalls, shadow level, etc. Performance rules are mainly used in the first mode.
[0248] (2) For defining the time-consuming information format: refer to Figure 10The time consumption information format includes: 1. prefix, 2. function call mark or executable code call mark, 3. suffix; the prefix is used to indicate at least one of the following: engine internal call to business, loading, engine internal loop, and the suffix is used to indicate the call type, which is used to indicate at least one of the following: engine internal type (C++ class), business use type (blueprint class), and other types.
[0249] For example, the time consumption information of a function or executable code is represented as: "bp_Process#ReceiveTick#RunningCharacter_C". Among them, the prefix "bp_Process" indicates an engine internal call to business (blueprint). "ReceiveTick" represents a function call mark / name, or an executable code call mark / name. The suffix "RunningCharacter_C" represents the call type, specifically a blueprint class used by the business. It should be noted that the time consumption information format provided in this embodiment is only an example, and the time consumption information format can be planned according to actual projects and performance data available at runtime. The purpose is to record the information needed when analyzing time consumption.
[0250] Based on the time consumption information format, time consumption information in the performance data can be obtained, which is mainly used in the first mode, the second mode and the third mode. The difference lies in that the first mode only shows in the form of a list without showing the details of the single time consumption information, the second mode shows the details of the single time consumption information after screening and optimizes the name of the time consumption information finally displayed, and the third mode directly shows the details of the single time consumption information in the form of an original time axis.
[0251] (3) For real-time recording of performance data: collect performance data and time consumption information in performance data according to the pre-planned collection. In some embodiments, a collection switch is also configured. When the collection switch is in the off state, the performance data of the target application is not collected, and the normal operation of the target application is not affected. When the collection switch is in the on state, the performance data of the target application is collected. Thus, the performance impact of this function on the target application is as small as possible.
[0252] (4) For offline / real-time analysis: real-time analysis is supported, and offline analysis of previously stored performance data is also supported.
[0253] (4.1) For the first mode, the performance data is analyzed according to the performance rules.
[0254] In the first mode, it is first determined whether the single performance data corresponding to each performance rule is abnormal, then the level of abnormality of the performance data corresponding to each performance rule is determined, and finally the output performance report in the first mode is determined. Referring to Figure 11 , the steps are as follows:
[0255] 1. Get performance data by time period and key name;
[0256] 2. Is greater than threshold? Yes, go to 3, otherwise go to 4;
[0257] 3. Number of exceptions for this time period + 1;
[0258] 4. No exceptions;
[0259] 5. Get number of exceptions;
[0260] 6. Is greater than error threshold? Yes, go to 7, otherwise go to 8;
[0261] 7. Record as severe;
[0262] 8. Is greater than warning threshold?
[0263] 9. Record as warning;
[0264] 10. Is greater than suggestion threshold?
[0265] 11. Record as suggestion;
[0266] 12. No suggestion;
[0267] 13. Output performance report.
[0268] (4.2) For the second mode, first filter the performance data that meets the filtering conditions, then perform analysis on the performance data according to the call type and call level relationship, and finally construct a time-consuming tree structure. Referring to Figure 12 , the steps are as follows:
[0269] 1. Filter the time-consuming information that needs to be paid attention to (storage: unordered list);
[0270] 2. Sort by time-consuming information level (storage: ordered list);
[0271] 3. Extract the call type and determine the first layer of child nodes (storage: tree structure);
[0272] 4. Combine the call level relationship to build the next layer of child nodes of the first layer of child nodes (storage: tree structure);
[0273] 5. Merge the same name time-consuming (storage: tree structure);
[0274] 6. Optimize the display of the name (storage: tree structure);
[0275] 7. Prune low time-consuming nodes (storage: simplified tree structure).
[0276] (4.3) For the third mode, when displaying the call hierarchy relationship and the time consumption information of all functions or executable codes in the time axis manner, the time consumption information of the target application running is received, and the time period to be displayed is determined according to the current display window size, scaling, display position and the like. All time consumption information in the time period is obtained, and the time consumption nodes are drawn and displayed according to the call hierarchy relationship, name and time length corresponding to the time consumption information of the time consumption information. Reference is made to Figure 13 , and the steps are as follows:
[0277] 1. Receiving time consumption information;
[0278] 2. Determining the time period to be displayed according to the display window size, scaling, display position and the like;
[0279] 3. Obtaining the time consumption information in the time period;
[0280] 4. Drawing the time consumption nodes according to the call hierarchy relationship, name and time length corresponding to the time consumption information.
[0281] In summary, the display method of the performance report provided by the embodiments of the present application is beneficial to helping developers with different development backgrounds, including novice developers who do not understand the project at all, UGC developers who have some understanding of the project, and senior developers who are familiar with the engine and business, to quickly view the performance report and understand the performance hotspots, quickly find a more suitable method to solve the performance problem, and thereby improve the human-computer interaction efficiency.
[0282] Figure 14 is a block diagram of a display device of a performance report provided by an exemplary embodiment of the present application. The display device 800 of the performance report includes at least part of the modules of a receiving module 820, a processing module 840 and a display module 860.
[0283] The receiving module 820 is configured to receive performance data of a target application during running of the target application.
[0284] The processing module 840 is configured to select a display mode from candidate display modes in response to a selection operation, wherein different candidate display modes indicate different levels of detail of performance reports corresponding to the performance data.
[0285] The display module 860 is configured to display a performance report of the performance data in the display mode, wherein the performance report is used to display analysis results of the performance data in a visual form.
[0286] In some embodiments, the display module 860 is configured to:
[0287] In response to the analysis mode indicated by the display mode, a performance report matching an analysis result of the performance data is displayed, the analysis result being obtained by performing analysis on all or part of the performance data based on the analysis mode.
[0288] In some embodiments, the display mode includes a first mode;
[0289] The display module 860 is configured to:
[0290] In response to a first analysis mode indicated by the first mode, a first performance report matching a first analysis result of the performance data is displayed in a list form, the first analysis result being obtained by performing analysis on all or part of the performance data based on the first analysis mode.
[0291] The first analysis result includes a level of abnormality of the performance data, a time period of abnormality of the performance data, and a solution to the abnormality of the performance data, and the first performance report includes the level, the time period, and the solution displayed in the list form.
[0292] In some embodiments, the display module 860 is configured to:
[0293] The performance data corresponding to all or part of the performance indicators is displayed in a time axis form.
[0294] In some embodiments, the display mode includes a second mode, and a second detailed level of a second performance report indicated by the second mode is higher than a first detailed level of the first performance report indicated by the first mode.
[0295] The display module 860 is configured to:
[0296] In response to a selection operation, a selected frame is determined from the candidate frames.
[0297] In response to a second analysis mode indicated by the second mode, a second performance report matching a second analysis result of the performance data of the selected frame is displayed in a tree structure form, the second analysis result being obtained by performing analysis on the performance data of the selected frame based on the second analysis mode.
[0298] The second analysis result includes at least one layer of child nodes corresponding to the selected frame, and time consumption information of each child node of the at least one layer of child nodes, each child node corresponding to a function or an executable code; and the second performance report includes time consumption information in the performance data of the selected frame, and the second analysis result displayed in the tree structure form.
[0299] In some embodiments, the display mode includes a third mode, the third mode indicating a third detailed level of third performance reports, higher than a second detailed level of second performance reports indicated by the second mode;
[0300] The display module 860 is configured to:
[0301] In response to the input operation, input the target call type in the input box;
[0302] In response to a third analysis manner indicated by the third mode, display, in a list form, third performance reports matched with a third analysis result of the performance data related to the target call type, the third analysis result being obtained by performing analysis on the performance data of functions or executable codes matched with the target call type based on the third analysis manner;
[0303] The third analysis result includes: quantity and time consumption information of functions or executable codes matched with the target call type; and the third performance reports include: the third analysis result displayed in a list form.
[0304] In some embodiments, the display module 860 is configured to:
[0305] Display, in a time axis manner, time consumption information in performance data of all or part of frames, and display, in a time axis manner, call level relationships and time consumption information of all or part of functions or executable codes indicated by the performance data.
[0306] In some embodiments, the processing module 840 is configured to:
[0307] Based on a time period and a key value name, obtain the performance data corresponding to a preset performance rule;
[0308] Detect a relationship between the performance data and a threshold in the performance rule;
[0309] In a case where the performance data is greater than the threshold, determine that the performance data is abnormal, and increase an abnormal number of the performance data of the time period;
[0310] Obtain an abnormal number of the performance data corresponding to the performance rule;
[0311] Based on a relationship between the abnormal number and an abnormal number threshold in the performance rule, determine a level of abnormality of the performance data.
[0312] In some embodiments, the abnormal number threshold includes at least one of: an error threshold, an alarm threshold, and a suggestion threshold, and the level of abnormality of the performance data includes at least one of: serious, alarm, and suggestion.
[0313] The processing module 840 is configured to:
[0314] In a case where the number of exceptions is greater than the error threshold, marking a level of the performance data corresponding to the performance rule at which the exception occurs as the error;
[0315] In a case where the number of exceptions is less than the error threshold and greater than an alarm threshold, marking a level of the performance data corresponding to the performance rule at which the exception occurs as the alarm;
[0316] In a case where the number of exceptions is less than the alarm threshold and greater than a suggestion threshold, marking a level of the performance data corresponding to the performance rule at which the exception occurs as the suggestion;
[0317] In a case where the number of exceptions is less than the error threshold, less than the alarm threshold, and less than the suggestion threshold, marking the performance data corresponding to the performance rule as no prompt.
[0318] In some embodiments, the processing module 840 is configured to:
[0319] determine performance data to be collected;
[0320] define threshold values corresponding to the performance data, and rule information for collecting the performance data;
[0321] determine a performance rule corresponding to the performance data based on the rule information and the threshold values of the performance data.
[0322] In some embodiments, the performance rule comprises at least one of the following information:
[0323] a rule identifier, a rule name, a platform type, a type of the performance data, a key value name of the performance data, a threshold value of the performance data, a numerical value or a proportion of an exception number threshold value, a suggestion threshold value, an alarm threshold value, an error threshold value, a prompt of a solution, a prompt document of the solution, and a prompt document title of the solution.
[0324] In some embodiments, the processing module 840 is configured to:
[0325] screen the performance data corresponding to the selected frame to determine performance data satisfying a screening condition;
[0326] determine the second analysis result of the performance data based on the performance data satisfying the screening condition and a calling hierarchical relationship and a calling type;
[0327] The filtering condition includes at least one of the following: time consumption information in the performance data is greater than a threshold, a type of the performance data is a preset type, and the performance data is related to a service. The call level relationship is used to indicate a call relationship between functions or executable codes corresponding to the performance data, and the call type is indicated by a suffix in a time consumption information format of the functions or the executable codes.
[0328] In some embodiments, the processing module 840 is configured to:
[0329] Based on the call level relationship and the call type, perform sorting on time consumption information in the performance data that meets the filtering condition to determine a first layer of child nodes; and based on the call level relationship, determine a next layer of child nodes of the first layer of child nodes until the call level relationship is traversed completely.
[0330] Merge time consumption information of the same type of child nodes in the same layer in the at least one layer of child nodes to obtain merged time consumption information of the child nodes.
[0331] In some embodiments, the processing module 840 is configured to:
[0332] Determine a time period to be displayed.
[0333] Based on the time period, obtain time consumption information in the performance data.
[0334] Based on the time consumption information and a call level relationship corresponding to the time consumption information, draw a time consumption node.
[0335] In some embodiments, the processing module 840 is further configured to:
[0336] Define a time consumption information format of functions or executable codes running at the target application program.
[0337] The time consumption information format includes a prefix, a call function mark or a call executable code mark, and a suffix. The prefix is used to indicate at least one of the following: engine internal call to service, loading, and engine internal loop. The suffix is used to indicate a call type, and the call type is used to indicate at least one of the following: engine internal type, service usage type, and other type.
[0338] It should be noted that the specific limitations in the above embodiment of the display device 800 providing one or more performance reports can refer to the above limitations for the display method of the performance report, which will not be repeated here. The modules of the above device can be realized by software, hardware and their combination in whole or in part, and each module can be embedded in the form of hardware or independent of the processor of the computer device, or stored in the form of software in the memory of the computer device, so as to be called and executed by the processor to perform the corresponding operation of each module.
[0339] The embodiments of the present application further provide a computer device, which comprises a processor and a memory, and the memory stores a computer program; the processor is used to execute the computer program in the memory to realize the display method of the performance report provided by each method embodiment.
[0340] Figure 15 is a structural block diagram of the computer device provided by an exemplary embodiment of the present application.
[0341] The computer device 1000 can be a terminal, such as a smart phone, a tablet computer, an MP3 player (Moving Picture Experts Group Audio Layer III), an MP4 player (Moving Picture Experts Group Audio Layer IV), an unmanned terminal, a smart home appliance, a smart voice interaction device, and a self-service terminal. The computer device 1000 can also be referred to as a user device, a portable terminal, a portable mobile terminal, and other names.
[0342] Generally, the computer device 1000 comprises a processor 1001 and a memory 1002.
[0343] The processor 1001 can include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. The processor 1001 can be implemented in the form of at least one of a DSP (Digital Signal Processing), an FPGA (Field Programmable Gate Array), a PLA (Programmable Logic Array). The processor 1001 can also include a main processor and a coprocessor. The main processor is a processor for processing data in an awake state, also known as a CPU (Central Processing Unit). The coprocessor is a low-power processor for processing data in a standby state. In some embodiments, the processor 1001 can be integrated with a GPU (Graphics Processing Unit) that is responsible for rendering and drawing the content to be displayed by the display screen. In some embodiments, the processor 1001 can also include an AI (Artificial Intelligence) processor for processing machine learning-related computing operations.
[0344] The memory 1002 can include one or more computer-readable storage media that can be tangible and non-transitory. The memory 1002 can also include high-speed random access memory and non-volatile memory such as one or more disk storage devices, flash storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 1002 is used to store at least one instruction for being executed by the processor 1001 to implement the performance report display method provided in the embodiments of the present application.
[0345] In some embodiments, the computer device 1000 can also optionally include a peripheral device interface 1003 and at least one peripheral device. Specifically, the peripheral device includes at least one of a radio frequency circuit 1004, a touch display screen 1005, a camera assembly 1006, an audio circuit 1007, and a power supply 1008.
[0346] The peripheral interface 1003 can be used to connect at least one I / O (Input / Output) related peripheral device to the processor 1001 and the memory 1002. In some embodiments, the processor 1001, the memory 1002 and the peripheral interface 1003 are integrated on the same chip or circuit board; in some other embodiments, any one or two of the processor 1001, the memory 1002 and the peripheral interface 1003 can be implemented on a separate chip or circuit board, and the present embodiments are not limited in this regard.
[0347] The radio frequency circuit 1004 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The radio frequency circuit 1004 communicates with a communication network and other communication devices through electromagnetic signals. The radio frequency circuit 1004 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals. Optionally, the radio frequency circuit 1004 includes an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, etc. The radio frequency circuit 1004 can communicate with other terminals through at least one wireless communication protocol. The wireless communication protocol includes but is not limited to: the World Wide Web, a metropolitan area network, an intranet, various generations of mobile communication networks (2G, 3G, 4G and 5G), a wireless local area network and / or a WiFi (Wireless Fidelity) network. In some embodiments, the radio frequency circuit 1004 can also include NFC (Near Field Communication) related circuitry, and the present application is not limited in this regard.
[0348] The touch display screen 1005 is configured to display a UI (User Interface). The UI can include graphics, text, icons, video, and any combination thereof. The touch display screen 1005 is further configured to capture touch signals on or above the surface of the touch display screen 1005. The touch signals can be input to the processor 1001 as control signals for processing. The touch display screen 1005 is configured to provide virtual buttons and / or virtual keyboard, also known as soft buttons and / or soft keyboard. In some embodiments, the touch display screen 1005 can be one, configured to set the front panel of the computer device 1000; in other embodiments, the touch display screen 1005 can be at least two, respectively configured to set different surfaces of the computer device 1000 or in a folding design; in some embodiments, the touch display screen 1005 can be a flexible display screen, configured to set a curved surface or a folding surface of the computer device 1000. Even, the touch display screen 1005 can also be configured to be an irregular shape other than a rectangle, i.e., a special-shaped screen. The touch display screen 1005 can be made of materials such as LCD (Liquid Crystal Display), OLED (Organic Light-Emitting Diode), etc.
[0349] The camera assembly 1006 is configured to capture images or videos. Optionally, the camera assembly 1006 includes a front camera and a rear camera. Generally, the front camera is configured to implement video calls or selfies, and the rear camera is configured to implement photo or video shooting. In some embodiments, the rear camera is at least two, respectively configured to be any one of a main camera, a depth-of-field camera, and a wide-angle camera, to implement the background blurring function by fusing the main camera and the depth-of-field camera, and to implement the panoramic shooting and VR (Virtual Reality) shooting functions by fusing the main camera and the wide-angle camera. In some embodiments, the camera assembly 1006 can further include a flash. The flash can be a single-color-temperature flash or a dual-color-temperature flash. The dual-color-temperature flash refers to a combination of a warm light flash and a cold light flash, which can be used for light compensation under different color temperatures.
[0350] The audio circuit 1007 is used to provide an audio interface between the user and the computer device 1000. The audio circuit 1007 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals that are input into the processor 1001 for processing, or input into the radio frequency circuit 1004 to achieve voice communication. For the purpose of stereo sound collection or noise reduction, multiple microphones may be provided, located in different parts of the computer device 1000. The microphone may also be an array microphone or an omnidirectional collection microphone. The speaker is used to convert electrical signals from the processor 1001 or the radio frequency circuit 1004 into sound waves. The speaker may be a traditional thin-film speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can not only convert electrical signals into sound waves audible to humans, but also convert electrical signals into sound waves inaudible to humans for purposes such as distance measurement. In some embodiments, the audio circuit 1007 may also include a headphone jack.
[0351] Power supply 1008 is used to power various components in computer device 1000. Power supply 1008 can be AC power, DC power, a disposable battery, or a rechargeable battery. When power supply 1008 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, while a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.
[0352] In some embodiments, the computer device 1000 further includes one or more sensors 1009 , including but not limited to an acceleration sensor 1010 , a gyroscope sensor 1011 , a pressure sensor 1012 , an optical sensor 1013 , and a proximity sensor 1014 .
[0353] The accelerometer 1010 can detect the magnitude of acceleration along the three coordinate axes of the coordinate system established by the computer device 1000. For example, the accelerometer 1010 can be used to detect the components of gravity acceleration along the three coordinate axes. The processor 1001 can control the touch screen display 1005 to display the user interface in a landscape or portrait view based on the gravity acceleration signal collected by the accelerometer 1010. The accelerometer 1010 can also be used to collect game or user motion data.
[0354] The gyroscope sensor 1011 can detect the body direction and rotation angle of the computer device 1000, and the gyroscope sensor 1011 can cooperate with the acceleration sensor 1010 to collect the 3D action of the user on the computer device 1000. According to the data collected by the gyroscope sensor 1011, the processor 1001 can realize the following functions: action sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.
[0355] The pressure sensor 1012 can be arranged on the side frame of the computer device 1000 and / or the lower layer of the touch display screen 1005. When the pressure sensor 1012 is arranged on the side frame of the computer device 1000, the user's holding signal on the computer device 1000 can be detected, and left-hand or right-hand recognition or shortcut operation can be performed according to the holding signal. When the pressure sensor 1012 is arranged on the lower layer of the touch display screen 1005, the operable control on the UI interface can be controlled according to the user's pressure operation on the touch display screen 1005. The operable control includes at least one of a button control, a scroll bar control, an icon control, and a menu control.
[0356] The optical sensor 1013 is used to collect the ambient light intensity. In an embodiment, the processor 1001 can control the display brightness of the touch display screen 1005 according to the ambient light intensity collected by the optical sensor 1013. Specifically, when the ambient light intensity is high, the display brightness of the touch display screen 1005 is increased; when the ambient light intensity is low, the display brightness of the touch display screen 1005 is decreased. In another embodiment, the processor 1001 can also dynamically adjust the shooting parameters of the camera assembly 1006 according to the ambient light intensity collected by the optical sensor 1013.
[0357] The proximity sensor 1014, also known as a distance sensor, is usually arranged on the front of the computer device 1000. The proximity sensor 1014 is used to collect the distance between the user and the front of the computer device 1000. In an embodiment, when the proximity sensor 1014 detects that the distance between the user and the front of the computer device 1000 gradually decreases, the processor 1001 controls the touch display screen 1005 to switch from the bright screen state to the off-screen state; when the proximity sensor 1014 detects that the distance between the user and the front of the computer device 1000 gradually increases, the processor 1001 controls the touch display screen 1005 to switch from the off-screen state to the bright screen state.
[0358] Those skilled in the art can understand that the structure shown in the above embodiments is not a limitation on the computer device, and the computer device can include more or fewer components than the drawings, or combine certain components, or use different component arrangements. Figure 15 The structure shown in the above embodiments does not constitute a limitation on the computer device, and the computer device can include more or fewer components than the drawings, or combine certain components, or use different component arrangements.
[0359] In an example embodiment, the embodiment of the present application further provides a chip, which comprises a programmable logic circuit and / or computer instructions, and when the chip is run on a computer device, is used to implement the display method of the performance report provided by the above-mentioned method embodiment.
[0360] The embodiment of the present application further provides a computer readable storage medium, which stores a computer program, and the computer program is loaded and executed by a processor to implement the display method of the performance report provided by the above-mentioned method embodiment.
[0361] The embodiment of the present application further provides a computer program product or computer program, which comprises computer instructions stored in a computer readable storage medium. The processor of a computer device reads the computer instructions from the computer readable storage medium, and the processor executes the computer instructions, so that the processor of the computer device is loaded and executed to implement the display method of the performance report provided by the above-mentioned method embodiment.
[0362] The above-mentioned serial numbers of the embodiments of the present application are only for description, and do not represent the advantages or disadvantages of the embodiments.
[0363] Those skilled in the art can understand that all or part of the above-mentioned embodiments can be completed by hardware, or by program instructing relevant hardware to complete, and the program can be stored in a computer readable storage medium. The above-mentioned computer readable storage medium can be a read-only memory, a magnetic disk or an optical disk.
[0364] Those skilled in the art should realize that in the above-mentioned one or more examples, the functions described in the embodiments of the present application can be realized by hardware, software, firmware or any combination thereof. When realized by software, these functions can be stored in a computer readable medium or transmitted as one or more instructions or codes on a computer readable medium. The computer readable medium includes a computer storage medium and a communication medium, wherein the communication medium includes any medium that facilitates the transmission of computer programs from one place to another. The storage medium can be any available medium that can be accessed by a general or special purpose computer.
[0365] The above-mentioned is only the optional embodiment of the present application, and does not limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for displaying a performance report, characterized in that: The method comprises: receiving performance data of the target application while the target application is running; In response to a selection operation, selecting a display mode from candidate display modes, wherein different candidate display modes indicate different levels of detail corresponding to the performance report; In the display mode, a performance report of the performance data is displayed, where the performance report is used to present the analysis results of the performance data in a visual form.
2. The method according to claim 1, characterized in that The displaying of the performance report of the performance data in the display mode includes: In response to the analysis method indicated by the display mode, a performance report matching the analysis result of the performance data is displayed, where the analysis result is obtained by analyzing all or part of the performance data based on the analysis method.
3. The method according to claim 2, characterized in that The display mode includes a first mode; The step of displaying a performance report matching the analysis result of the performance data in response to the analysis method indicated by the display mode includes: In response to the first analysis method indicated by the first mode, displaying in a list form a first performance report matching a first analysis result of the performance data, where the first analysis result is obtained by analyzing all or part of the performance data based on the first analysis method; Among them, the first analysis result includes: the level of the performance data anomaly, the time period of the performance data anomaly, and the solution to the performance data anomaly; the first performance report includes: the level, the time period and the solution displayed in the form of the list.
4. The method according to claim 3, characterized in that The method further comprises: The performance data corresponding to all or part of the performance indicators are displayed in a timeline manner.
5. The method according to any one of claims 2 to 4, characterized in that: The display mode includes a second mode, wherein the second mode indicates a second level of detail of the second performance report that is higher than the first level of detail of the first performance report indicated by the first mode; The step of displaying a performance report matching the analysis result of the performance data in response to the analysis method indicated by the display mode includes: In response to a selection operation, determining a selected frame from the candidate frames; In response to the second analysis method indicated by the second mode, displaying a second performance report matching a second analysis result of the performance data of the selected frame in a tree structure, where the second analysis result is obtained by analyzing the performance data of the selected frame based on the second analysis method; Among them, the second analysis result includes: at least one layer of sub-nodes corresponding to the selected frame, and the time consumption information of each sub-node of the at least one layer of sub-nodes, and each sub-node corresponds to a function or a piece of executable code; the second performance report includes: the time consumption information in the performance data for indicating the selected frame, and the second analysis result displayed in the form of the tree structure.
6. The method according to any one of claims 2 to 5, characterized in that: The display mode includes a third mode, the third mode indicating a third level of detail of the third performance report being higher than the second level of detail of the second performance report indicated by the second mode; The step of displaying a performance report matching the analysis result of the performance data in response to the analysis method indicated by the display mode includes: In response to an input operation, a target call type is input in the input box; In response to the third analysis method indicated by the third mode, displaying a third performance report matching a third analysis result of the performance data related to the target call type in a list format, wherein the third analysis result is obtained by analyzing the performance data of the function or executable code matching the target call type based on the third analysis method; The third analysis result includes: the number and time-consuming information of functions or executable codes that match the target call type; and the third performance report includes: the third analysis result displayed in a list form.
7. The method according to claim 6, characterized in that The method further comprises: The time consumption information in the performance data of all or part of the frames is displayed in a timeline manner, and the calling hierarchy relationship and time consumption information corresponding to all or part of the functions or executable codes indicated by the performance data are displayed.
8. The method according to claim 3, characterized in that The method further comprises: Based on the time period and key value name, obtain the performance data corresponding to the preset performance rule; detecting a relationship between the performance data and a threshold in the performance rule; When the performance data is greater than the threshold, determining that the performance data is abnormal, and increasing the number of abnormal performance data in the time period; Obtaining the number of abnormalities in the performance data corresponding to the performance rule; Based on the relationship between the number of anomalies and the threshold of the number of anomalies in the performance rule, the level of anomaly of the performance data is determined.
9. The method according to claim 8, characterized in that The abnormality number threshold includes at least one of the following: an error threshold, a warning threshold, and a suggestion threshold; the level of the abnormality of the performance data includes at least one of the following: severe, warning, and suggestion; The determining, based on the relationship between the number of anomalies and the anomaly number threshold in the performance rule, the level of anomaly of the performance data includes: When the number of anomalies is greater than the error threshold, marking the level of the anomaly of the performance data corresponding to the performance rule as severe; When the number of anomalies is less than the error threshold and greater than the warning threshold, marking the level of the anomaly of the performance data corresponding to the performance rule as the warning; When the number of anomalies is less than the warning threshold and greater than the recommendation threshold, marking the level of anomaly of the performance data corresponding to the performance rule as the recommendation; When the number of anomalies is smaller than the error threshold, smaller than the warning threshold, and smaller than the recommendation threshold, the performance data corresponding to the performance rule is marked as not prompting.
10. The method according to claim 8, characterized in that The method further comprises: Determine the performance data to be collected; defining thresholds corresponding to the performance data, and collecting rule information for the performance data; Based on the rule information and the threshold of the performance data, a performance rule corresponding to the performance data is determined.
11. The method according to claim 10, characterized in that The performance rule includes at least one of the following information: Rule identifier, rule name, platform type, type of performance data, key value name of performance data, threshold of performance data, value or ratio of abnormal quantity threshold, recommended threshold, warning threshold, error threshold, solution prompt, solution prompt document, and solution prompt document title.
12. The method according to claim 5, characterized in that The method further comprises: Filtering the performance data corresponding to the selected frame to determine performance data that meets the filtering conditions; Determining the second analysis result of the performance data based on the performance data that meets the screening condition, the call hierarchy relationship, and the call type; Among them, the screening conditions include at least one of the following: the time-consuming information in the performance data is greater than a threshold, the type of the performance data is a preset type, and the performance data is related to the business; the calling hierarchy relationship is used to indicate the calling situation between the functions or executable codes corresponding to the performance data, and the calling type is indicated by the suffix in the time-consuming information format of the function or executable code.
13. The method according to claim 12, characterized in that The determining the second analysis result of the performance data based on the performance data that meets the screening condition, the call hierarchy relationship, and the call type includes: Based on the call hierarchy relationship and the call type, the time-consuming information in the performance data that meets the screening conditions is sorted to determine the first-level child nodes; and based on the call hierarchy relationship, the next-level child nodes of the first-level child nodes are determined until the call hierarchy relationship is completely traversed; The same type of time consumption information of the same-layer child nodes in the at least one layer of child nodes is merged to obtain merged time consumption information of the child nodes.
14. The method according to claim 7, wherein: The method further comprises: Determine the time period for the exhibition; Based on the time period, obtaining time consumption information in the performance data; Based on the time-consuming information and the call hierarchy relationship corresponding to the time-consuming information, a time-consuming node is drawn.
15. The method according to any one of claims 1 to 14, characterized in that: The method further comprises: Defining a time-consuming information format of a function or executable code when the target application is running; Among them, the time-consuming information format includes: a prefix, a call function mark or a call executable code mark, and a suffix; the prefix is used to indicate at least one of the following: an internal engine call to a business, loading, or an internal engine loop; the suffix is used to indicate a call type, and the call type is used to indicate at least one of the following: an internal engine type, a business usage type, or other types.
16. A device for displaying a performance report, characterized in that: The device comprises: A receiving module, configured to receive performance data of a target application when the target application is running; A processing module, configured to select a display mode from candidate display modes in response to a selection operation, wherein different candidate display modes indicate performance reports corresponding to different levels of detail; The display module is used to display a performance report of the performance data in the display mode, and the performance report is used to present the analysis results of the performance data in a visual form.
17. A computer device, characterized in that: The computer device includes: a processor and a memory, wherein the memory stores a computer program, and the computer program is loaded and executed by the processor to implement the performance report display method according to any one of claims 1 to 15.
18. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and the computer program is loaded and executed by a processor to implement the method for displaying a performance report according to any one of claims 1 to 15.
19. A computer program product, characterized in that The computer program product includes computer instructions, which are stored in a computer-readable storage medium. The processor obtains the computer instructions from the computer-readable storage medium, so that the processor loads and executes them to implement the performance report display method according to any one of claims 1 to 15.