Detailed Description
For the purpose of making the objects, technical solutions and advantages of the present application more apparent, the embodiments of the present application will be described in further detail with reference to the accompanying drawings.
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples do not represent all implementations consistent with the application. Rather, they are merely examples of apparatus and methods consistent with aspects of the application as detailed in the accompanying claims.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. As used in this specification 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 should also be understood that the term "and/or" as used herein refers to and encompasses any or all possible combinations of one or more of the associated listed items.
It should be understood that, although the terms first, second, etc. may be used herein to describe various information, these information should not be limited by these terms. These terms are only used to distinguish one type of information from another. For example, a first parameter may also be referred to as a second parameter, and similarly, a second parameter may also be referred to as a first parameter, without departing from the scope of the application. The term "if" as used herein may be interpreted as "at..once" or "when..once" or "in response to a determination", depending on the context.
It should be noted that, before collecting relevant data and performance data of a user and a target application program and in the process of collecting relevant data of a user, the application can display a prompt interface, a popup window or output voice prompt information, wherein the prompt interface, the popup window or the voice prompt information is used for prompting the user to collect relevant data currently, so that the application only starts to execute the relevant step of acquiring relevant data of the user after acquiring the confirmation operation of the user on the prompt interface or the popup window, otherwise, the relevant step of acquiring relevant data of the user is ended when the confirmation operation of the user on the prompt interface or the popup window is not acquired, namely, the relevant data of the user is not acquired. In other words, all user data collected by the present application is collected with the consent and authorization of the user, and the collection, use and processing of relevant user data requires compliance with relevant laws and regulations and standards of the relevant country and region.
First, the terms involved in the embodiments of the present application will be briefly described:
Time-consuming information, or time-consuming dotting information, is the time consumed by the execution of the program code. The execution time is recorded for a section of program code before and after running to obtain time-consuming information, and a specific character string can be designated at the same time so as to distinguish the time-consuming information. Wherein, time consuming dotting is to add specific mark points (dotting) in the program code to record and detect time consuming information of the target application program in running. The time-consuming dotting granularity can be a function or a piece of executable code, and one function can add a plurality of time-consuming dotting.
The performance data is data collected when the target application program runs and is used for analyzing the state and performance of the target application program. The performance data is different, and the indicated performance indexes are also different. The performance data includes at least one of time consuming information, frame rate, memory usage, cache hit rate, central processing unit (Central Processing Unit, CPU) usage, average response time, maximum response time, throughput. To obtain more detailed performance, performance data of finer granularity may be additionally recorded, for example, the game application program, where the performance data further includes at least one of an interactive object (Actor) number, a frame update (Tick) number, a texture total memory, a texture uncompressed total memory, a drawing command (Draw Call) number, shader complexity, and illumination calculation overhead.
User generated content (User Generated Content, UGC) refers to content generated by a user. In the game scene, the user creates the level, the map, the role, the article and the like through the creation tool, the code editor and the like provided by the game scene, so that the individuation and the expansibility of the game are increased.
User-generated content developers, which are developers of user-generated content platforms or applications, tend not to be well known about software development techniques, but rather are more biased towards content generation.
A first mode, also referred to as an analysis mode, for performing an analysis on the performance data using predefined performance rules and presenting the analysis results of the performance data. The first mode is the least technically demanding for the developer, can be presented in the simplest way, and can be read by UGC developers unfamiliar with the business.
And the second mode is also called a basic mode or a time-consuming tree mode, is used for combining time-consuming information in the performance data of the selected frame, analyzing the performance data based on the calling hierarchy relation and the calling type, presenting the analysis result of the performance data, displaying the data in a more focused mode, enabling the calling hierarchy relation to be more definite, and finally, optionally simplifying naming. The second mode may assist UGC developers that are better aware of the traffic of the target application, but are not familiar with the underlying architecture of the engine, to further discover detailed performance hot spots.
The third mode, also called advanced mode, has time-consuming information in the performance data of all frames, can display the calling level relation and time-consuming information of all or part of frames of the whole time axis at the same time, and has large displayed information quantity, including engine bottom layers, such as rendering, physics, skeleton animation and the like, and business layers, such as map loading, distance detection, button click triggering and the like. UGC developers reviewing this information need to have specialized development knowledge, while also obtaining the most detailed performance hot spots. The third mode adds more detailed time-consuming dotting to the business and carries additional call types when time-consuming dotting, based on the CPU Trace view time-consuming information in conjunction with the engine analysis system (Engine Unreal Insight).
Performance hot spot refers to program code or functions that cause performance bottlenecks in the software development process.
In response to a condition or state representing a dependency of an operation performed, one or more operations performed may be performed in real-time or with a set delay when the dependency is satisfied, and without any particular limitation to execution sequencing of the operations performed.
FIG. 1 is a block diagram of a computer system provided in an exemplary embodiment of the application. Computer system 100 may be a system architecture that implements a method of displaying performance reports. Computer system 100 includes a terminal 120 and a server 140.
The terminal 120 installs a client running the target application. Optionally, the target application includes at least one of a game-like application, a game development engine, a game user original content (User Generated Content, UGC) editor, a visual programming tool, a code editor, a map editor, a chart-like application, a document-like application, a video-like application, an instant messaging-like application, and a shopping-like application. The Game-like application may be any one of a large fleeing shooting Game, a Virtual Reality (VR) Game, an augmented Reality (Augmented Reality, AR) program, a three-dimensional map program, a Virtual Reality Game, an augmented Reality Game, a First-person shooting Game (FPS), a Third-person shooting Game (Third-Personal Shooting Game, TPS), a multiplayer online tactical Game (Multiplayer Online Battle ARENA GAMES, MOBA), a strategy Game (SLG), a Game party Game, and a Game UGC editor provided by the foregoing respective games.
In some embodiments, terminal 120 also installs a client running an application. The application program is used for providing an analysis function of the performance data of the target application program and/or a display function of the performance report, and the user can view the performance report corresponding to the performance data of the target application program in the terminal 120.
The terminal 120 is a user-used terminal, and the user uses the terminal 120 to control virtual characters located in a virtual environment, including, but not limited to, at least one of adjusting body posture, crawling, walking, running, riding, jumping, driving, picking up, shooting, attacking, throwing, building a virtual building.
In some embodiments, the terminal 120, while the target application is running, the application also receives performance data for the target application, and the user also uses the application running by the terminal 120 to view performance reports for the performance data. Specifically, the terminal 120 selects a display mode from among the candidate display modes in response to a selection operation, the different candidate display modes indicating performance reports with different levels of detail, and displays performance reports of performance data in the display mode, the performance reports being used to display the analysis results of the performance data in a visual form.
The terminal 120 is connected to the server 140 through a wireless network or a wired network.
The server 140 may be an independent physical server, a server cluster or a distributed system formed by a plurality of physical servers, or a cloud server providing cloud computing services. Server 140 includes at least one of a server, a plurality of servers, a cloud computing platform, and a virtualization center.
The server 140 includes a processor 144 and a memory 142, the memory 142 further includes a receiving module 1421, a control module 1422 and a transmitting 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 transmitting module 1423 is configured to send a response to the client, and the server 140 is configured to provide a background service for the client of the terminal 120.
Optionally, the server 140 performs primary computing, the terminal 120 performs secondary computing, or the server 140 performs secondary computing, the terminal 120 performs primary computing, or the server 140 and the terminal 120 perform collaborative computing using a distributed computing architecture.
The form of the client installed in the terminal 120 is not limited, and includes, but is not limited to, an App (Application), an applet, etc. installed in the terminal 120, and may also be in the form of a web page. The terminal 120 may refer broadly to one of a plurality of terminals, and the present embodiment is illustrated only with the terminal 120. The terminal 120 includes, but is not limited to, at least one of a smart phone, a tablet computer, a wearable device, a PC (Personal Computer ), a laptop portable computer, a desktop computer, a palm game console.
Those skilled in the art will appreciate that the number of terminals 120 may be greater or lesser. For example, the terminal 120 is one or more in number. The number and device type of the terminals 120 are not limited in the embodiment of the present application.
In the related art, the analysis system (Unreal Insight) directly displays the collected time-consuming information in combination with the time axis. Or, the CPU usage performance analyzer (Unity CPU Usage Profiler) also presents time-consuming information in conjunction with the time axis. However, in this manner of displaying in combination with the time axis, the detailed information displayed is very much, so that it is very difficult for the developer to quickly capture useful information from the time axis, especially for the developer unfamiliar with the engine or the business, the reading threshold is very high, and the man-machine interaction efficiency is not high.
The embodiment of the application provides a method for displaying a performance report. The same piece of performance data recorded during the running of the target application program can be used for assisting a developer, particularly a UGC developer, to view performance reports of different detailed programs in different use scenes so as to accelerate analysis and positioning of performance problems.
The display modes comprise a first mode, a second mode and a third mode, and are respectively aimed at a novice or a developer unfamiliar with the business, a developer familiar with the business but with little development knowledge, and a developer with professional knowledge which is relatively known to the business and the development architecture bottom layer. It will be appreciated that in order to quickly obtain analysis and locate performance problems, a developer with expertise may also use the first and second modes as well, while a developer familiar with business but with little development knowledge may also use the first and third modes as well.
Next, a detailed description will be given of a method of displaying a performance report:
fig. 2 is a flowchart of a method of displaying a performance report provided by an exemplary embodiment of the present application. The method is performed by a computer device, which may be the terminal 120 shown in fig. 1. The method comprises at least part of the steps 220, 240 and 260:
step 220, receiving performance data of the target application while the target application is running.
The target application is an application to which performance data is to be collected. Optionally, the target application includes at least one of a game-like application, a game development engine, a game user original content (User Generated Content, UGC) editor, a visual programming tool, a code editor, a map editor, a chart-like application, a document-like application, a video-like application, an instant messaging-like application, and a shopping-like application.
The type of performance data received, the specific data content, varies from one target application to another. The performance data is different, and the indicated performance indexes are also different. Optionally, the performance data includes at least one of time consuming information, frame rate, memory usage, cache hit rate, central processing unit (Central Processing Unit, CPU) usage, average response time, maximum response time, throughput. To obtain more detailed performance, performance data of finer granularity may be additionally recorded, for example, the game application program, where the performance data further includes at least one of an interactive object (Actor) number, a frame update (Tick) number, a texture total memory, a texture uncompressed total memory, a drawing command (Draw Call) number, shader complexity, and illumination calculation overhead.
In some embodiments, performance data of the target application is received in real-time as the target application is running. The performance data may be analyzed in real time as the target application is running or after the target application is running. Optionally, the performance data is analyzed in real time at the target application run time at a preset time granularity. For example, the time granularity is 20 seconds, and performance data within the last 20 seconds is analyzed in real time each time. Or analyzing the performance data after the running of the target application program is finished according to the preset time granularity. For example, the time granularity is 20 seconds, and performance data within 20 seconds is analyzed each time.
In response to the selection operation, a display mode is selected from the candidate display modes, and the performance reports indicated by the different candidate display modes are different in the corresponding degree of detail.
The selection operation is used for selecting a display mode from the candidate display modes. The display mode is used to indicate a mode of displaying a performance report of the performance data. In this embodiment, three display modes, i.e., a first mode, a second mode, and a third mode, may be referred to as candidate display modes, and the detailed degrees of the performance report correspondence indicated by different candidate display modes are different. Wherein the first level of detail of the first performance report indicated by the first mode is the lowest, the second level of detail of the second performance report indicated by the second mode is higher than the first level of detail of the first performance report indicated by the first mode, and the third level of detail of the third performance report indicated by the third mode is higher than the second level of detail of the second performance report indicated by the second mode.
The selection operation may be implemented as at least one of a click, a double click, a long press, a swipe, a gesture selection, a selection through an external input device. The different candidate display modes may be displayed in the form of menu items or buttons or window titles, with a performance report including performance data for the respective display mode.
In some embodiments, the level of detail of the performance report of the performance data may be characterized by at least one parameter of how much the performance data is displayed, the granularity of the performance data display, whether the performance data of a single frame is displayed, whether time consuming information in the performance data is displayed, whether call hierarchy between functions or executable code corresponding to the performance data is displayed, and whether call types of functions or executable code corresponding to the performance data are displayed. Where the call type is the name of the class called by the function or executable code.
For example, when the more the content of the performance data display, the smaller the fine granularity of the performance data display, the performance data of a single frame is displayed, the time-consuming information in the performance data is displayed, the call level relation between functions or executable codes corresponding to the performance data is displayed, the call type of functions or executable codes corresponding to the performance data is displayed, the higher the degree of detail of the performance report indicating the performance data is. It is understood that the developer may select a display mode from the candidate display modes according to actual technical requirements, and view the corresponding performance report.
Step 260, displaying, in a display mode, a performance report of the performance data, the performance report being used to present the analysis results of the performance data in a visual form.
After selecting a display mode from the candidate display modes, displaying a performance report of the performance data in the display mode, the performance report being used to present the analysis results of the performance data in a visual form. Alternatively, the performance report is displayed in the form of a list, or in the form of a tree structure.
In summary, the method for displaying the performance report includes that the computer device receives performance data of a target application program when the target application program runs, selects a display mode from candidate display modes in response to a selection operation, displays the performance report of the performance data in the display mode, wherein the performance report is used for displaying an analysis result of the performance data in a visual mode, and the detail degrees corresponding to the performance report indicated by different candidate display modes are different. Accordingly, a method is provided for supporting performance reporting of display performance data in different display modes. By receiving performance data generated at the time of the target application program run, the developer can select a display mode from among different candidate display modes by a selection operation, and display a performance report of the performance data in the display mode. Because the corresponding detailed degrees of the performance reports indicated by different candidate display modes are different, a developer can automatically select and view the performance reports with different detailed degrees according to actual service demands, the knowledge of the service and the engine, the development knowledge of the developer and other factors, so that the performance report is more adaptive, and the performance report is suitable for novice developers unfamiliar with the service, developers familiar with the service and senior developers familiar with the engine and the service, thereby improving the human-computer interaction efficiency.
In some embodiments, step 260 is embodied as step 300:
And 300, displaying a performance report matched with the analysis result of the performance data in response to the analysis mode indicated by the display mode, wherein the analysis result is obtained by performing analysis on all or part of the performance data based on the analysis mode.
Different display modes correspond to different analysis modes. For example, the first mode is to perform analysis on performance data based on a preset performance rule, the second mode is to perform analysis on performance data based on a call hierarchy relationship and a call type, and the third mode is to perform analysis on performance data based on a call type.
Illustratively, in response to the analysis mode displaying the mode indication, a performance report is displayed that matches the analysis result of the performance data, the analysis result being obtained by performing an analysis on all or part of the performance data based on the analysis mode.
In this embodiment, according to the analysis mode indicated by the display mode, analysis may be performed on all or part of the performance data to obtain an analysis result and a matched performance report is displayed, so that performance reports in different modes are displayed, which is beneficial to improving the man-machine interaction efficiency.
Next, a detailed description will be made of performance reports displayed in different display modes:
First mode
In some embodiments, the display mode includes a first mode. The first schema, also called the analysis schema, is the least technically demanding for the developer, will be presented in the simplest way, and can also be read by UGC developers that are not familiar with the business. Illustratively, step 300 is embodied as step 311:
Step 311, in response to the first analysis mode indicated by the first mode, displaying a first performance report matching with a first analysis result of the performance data in a list form, wherein the first analysis result is obtained by performing analysis on all or part of the performance data based on the first analysis mode;
The first analysis result comprises a grade of abnormal performance data, a time period of abnormal performance data and a solution mode for solving the abnormal performance data, and the first performance report comprises the grade, the time period and the solution mode which are displayed in a list form.
And performing analysis on all or part of the performance data based on a first analysis mode indicated by the first mode to obtain a first analysis result. The first analysis result comprises the level of abnormality of the performance data, the time period of abnormality of the performance data and the solution mode for solving the abnormality of the performance data. The solution is preset according to the actual technical requirement, 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 rules thereof are determined, a solution for solving the abnormal performance data is determined. It will be appreciated that the solution is only one proposal, and that in practical applications the corresponding solution may be determined according to the actual technical needs.
The first performance report includes levels, time periods, and solutions displayed in list form. The level, the time period and the solution occupy a column respectively, and each abnormal performance data occupies a row respectively. The level includes at least one of severity, advice, alarms.
As an example, referring to fig. 3, the first performance report includes a level 11, a time period 12, a solution 13 displayed in a list form. For example, the class is serious, the time period is 1 second-47 seconds, the number of times of acquiring all objects is called, the solution is that the related function is acquired all objects, and the calling in the Tick related function is not suggested. The user interface (Tick-UI) is extremely time-consuming, and the solution is that the UI update logic is extremely time-consuming, and the Tick needs to avoid invoking medium and high time-consuming contents. The method is characterized in that the method is serious, the time period is 1-47 seconds, the time consumption of the scene is excessive, the time consumption of a single-frame blueprint is high, and the method is used for suggesting to check a specific time-consuming position through Unreal Insight and repairing the problem. The scale is severe, the time period is 14-47 seconds, the uncompressed mapping is used, the solution is that the texture format suggests to use Adaptive Scalable Texture Compression (ASTC), and the uncompressed format is not used in a large amount. The scale is severe, the time period is 17 seconds-47 seconds total DC number, the solution is that the Draw Call number is too large, and the unnecessary rendering number is recommended to be reduced. The level is advice, the time period is 1 second-16 seconds UMG dynamic frequent creation, the solution is that a UI editor (UMG) is frequently created, the jam is easy to occur, and the object pool is advice to use. The level is that advice is provided, the time period is 1 second-17 seconds, the dynamic frequent creation of the Actor is provided, the solution is that the Actor is frequently created, the problem that the reactor is easy to get stuck is solved, and the object pool is advice to use.
The blueprint (UBlueprint) is short for blueprint visual script, is an object-oriented visual programming language to be compiled, can be completely integrated in an engine, and works by forming a graph through nodes and connecting lines.
In this embodiment, a manner of displaying a first performance report in a first mode is provided, and the first detail degree of the first performance report is the lowest, so that the method is suitable for novice developers unfamiliar with services and engines, is also suitable for scenes in which preliminary performance conditions of a target application program need to be determined quickly, and is beneficial to improving human-computer interaction efficiency. The first mode is also suitable for non-professional developers in the follow-up, and is beneficial to improving the efficiency of automatic performance acceptance of the degree code by carrying out automatic performance acceptance on the program code submitted by the UGC developer.
In some embodiments, the method further comprises step 312:
In step 312, the performance data corresponding to all or part of the performance indicators is displayed in a time-axis manner.
Optionally, the performance data corresponding to all or part of the performance indicators is displayed in a time axis manner. Taking a performance index as an example, the corresponding performance data may include, but is not limited to, time-consuming information in the performance data of all frames under the performance index. Wherein the time axis may be displayed at the uppermost and the time-consuming information may be displayed in the form of a waveform diagram for representing the time-consuming information of each frame in each type of performance data. Each type of performance data is displayed in the same row.
By way of example, referring to FIG. 4, with the timeline 14 displayed uppermost, the performance data may be the respective performance data for the number of actors, the number of actors off screen, the number of Actor-Tick & off screen, the total time spent by Tick, and the time spent by Tick-UI, including but not limited to time spent information. The number of the above-mentioned actors, the number of the off-screen actors-Tick, the total time consumption of Tick, and the time consumption of Tick-UI may also be referred to as performance indexes. The time-consuming information 15 of the number of the actors, the time-consuming information 16 of the number of the off-screen of the actors, the time-consuming information 17 of the number of the time-consuming and off-screen of the actors-Tick, the time-consuming information 18 of the whole time-consuming and time-consuming information 19 of the Tick-UI are displayed sequentially from top to bottom. Alternatively, other types of performance data may also be selected from the data tab on the right side of fig. 4, so that the other types of performance data are displayed on the left side in a time-axis manner.
In the embodiment, a time-consuming information display mode is provided in a time axis mode, so that a novice developer unfamiliar with both business and engines can view the time-consuming information in the performance data through the time axis, and the man-machine interaction efficiency is improved.
Second mode
In some embodiments, the display mode includes a second mode, also referred to as a time-consuming tree mode or base mode, which may assist UGC developers that are knowledgeable about the traffic of the target application, but are not familiar with the underlying architecture of the engine, in further discovering detailed performance hot spots. The second level of detail of the second performance report of the second mode indication is higher than the first level of detail of the first performance report of the first mode indication. Illustratively, step 300 is embodied as steps 321 and 322:
step 321, in response to the selection operation, determining a selected frame from the candidate frames;
Step 322, in response to the second analysis mode indicated by the second mode, displaying a second performance report matching with a second analysis result of the performance data of the selected frame in a tree structure, where the second analysis result is obtained by performing analysis on the performance data of the selected frame based on the second analysis mode;
The second analysis result comprises at least one layer of sub-node corresponding to the selected frame and time consumption information of each sub-node of the at least one layer of sub-node, each sub-node corresponds to a function or a section of executable code, and the second performance report comprises the time consumption information in the performance data for indicating the selected frame and the second analysis result displayed in a tree structure mode.
The selecting operation is used for selecting one selected frame from all frames. The selection operation may be implemented as at least one of a click, a double click, a long press, a swipe, a gesture selection, a selection through an external input device.
And performing analysis on all or part of the performance data based on a second analysis mode indicated by the second mode to obtain a second analysis result. The second analysis result comprises at least one layer of sub-nodes corresponding to the selected frame and time-consuming information of each sub-node of the at least one layer of sub-nodes, wherein each sub-node corresponds to a function or a section of executable code. The time-consuming dotting granularity corresponding to the time-consuming information can be a function or a section of executable code, and a function can add a plurality of time-consuming dotts.
Wherein at least one level of child nodes is determined based on a call hierarchy, i.e., a function call hierarchy or executable code call hierarchy, and a call type. For example, executable code 1 may call executable code 2, executable code 2 may call executable code 3 and executable code 4, then executable code 1 may be a child node, executable code 2 may be a child node of the child node in which executable code 1 is located, and executable code 3 and executable code 4 may be child nodes of the child node in which executable code 2 is located.
The second performance report includes time-consuming information in the performance data indicating the selected frame, and a second analysis result displayed in a tree structure. Since the tree structure displays time-consuming information of functions or executable codes corresponding to different child nodes, the tree structure may also be referred to as a time-consuming tree structure.
Optionally, the second performance report also displays time-consuming information in the performance data of all frames in a time-axis manner. The selected frame may be one frame selected from the entire frames through a selection operation. In some embodiments, the time consuming information in the performance data of the selected frame includes a sequence number of the selected frame, time consuming summary information, time consuming information corresponding to each type of function or executable code, respectively.
As an example, referring to fig. 5, the second performance report includes time consuming information 21 of a selected frame, wherein the selected frame is 753 rd frame, the time consuming summary is a scene Tick of 13.25ms, a scene rendering 11.46ms,UI Tick:1.46ms,UI renders 3.01ms, and a second analysis result 22 displayed in a tree structure, wherein the second analysis result includes at least one layer of sub-nodes corresponding to the selected frame, time consuming information 23 of each sub-node of the at least one layer of sub-nodes, and each sub-node corresponds to a function or a section of executable code. For example, a parent node is "focused on", "focused on" takes 10.38ms. The first layer of child nodes are "monster_poison mushroom", "running character", "bouncing mushroom", "override player automatic destruction component", "other", "monster_pirate flower", "running bullet movement", "in-game UI", "blank foundation block", "player camera", "block generator". Wherein, the "monster_toxic mushroom" takes 2.65ms, the "running cool character" takes 2.11ms, the "bouncing mushroom" takes 1.27ms, the "overrun player automatic destruction component" takes 1.12ms, the "other" takes 1.09ms, the "monster_foodbreak" takes 1.05ms, the "running cool bullet movement" takes 0.37ms, the "in-game UI" takes 0.20ms, the "blank foundation plot" takes 0.17ms, the "player camera" takes 1.15ms, and the "plot generator" takes 0.07ms.
For "monster_toxin mushroom", its second level child nodes are "character movement component per frame update", "blueprint per frame update", "skeletal grid component per frame update", "state machine component per frame update". Wherein "character movement component" takes 0.58ms per frame update "and" blueprint "takes 0.55ms per frame update" and "skeletal grid component" takes 0.50ms per frame update "and" state machine component "takes 0.48ms per frame update" and "1 time". For "bouncing mushrooms", the second level sub-nodes are "skeletal mesh component update per frame", "blueprint update per frame". Wherein "skeletal grid component updates per frame" takes 1.12ms in total (7 times) and "blueprint updates per frame" takes 0.15ms in total (7 times).
When the developer looks at the second performance report, the "monster_poison mushroom" child node is turned on to continue looking when it is found that the "monster_poison mushroom" is more time consuming. When the time consumption of updating each frame of the skeleton grid assembly is high, the simplification of skeleton animation for the role can be considered, when the time consumption of updating each frame of the blueprint is high, the corresponding blueprint can be opened to check the corresponding function part, which blueprint nodes can be seen to reduce the call, and finally, the time consumption of properly reducing the role consumption of the monster_toxic mushroom can be considered.
In this embodiment, a manner of displaying a second performance report in a second mode is provided, and the second detail level of the second performance report is higher than the first detail level of the first performance report, so that details of calling hierarchy relation and single time-consuming information of a selected frame can be displayed, more service layer performance problems can be displayed, the calling hierarchy relation is also more clear, and the method is suitable for developers with certain knowledge on services and engines, is also suitable for scenes in which preliminary performance conditions of a target application program need to be determined quickly, and is beneficial to improving man-machine interaction efficiency.
Third mode
In some embodiments, the display mode includes a third mode, which is also called a high-level mode, and has time-consuming information in performance data of all frames, and can display calling level relation and time-consuming information of all or part of frames of the whole time axis at the same time, wherein the displayed information is large in amount, including an engine bottom layer, such as rendering, physics, skeleton animation, and the like, and also includes a business layer, such as map loading, distance detection, button click triggering, and the like. The third level of detail of the third performance report of the third mode indication is higher than the second level of detail of the second performance report of the second mode indication. Illustratively, step 300 is embodied as steps 331 and 332:
step 331, in response to the input operation, inputting a target call type in an input box;
Step 332, in response to the third analysis mode 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 form, wherein the third analysis result is obtained by performing analysis on the performance data of the function or executable code matching the target call type based on the third analysis mode;
the third analysis result comprises the quantity and time-consuming information corresponding to the function or executable code with the matched target call type, and the third performance report comprises the time-consuming information in the performance data for indicating all or part of frames and the third analysis result displayed in a list form.
The input operation is used to input the target call type in the input box. The input operation may be implemented as at least one of text input, voice input, gesture input, voice-to-text, input through an external input device.
And performing analysis on the performance data of the function or the executable code matched with the target call type based on a third analysis mode indicated by the third mode to obtain a third analysis result. Wherein the prefix of the function or executable code that the target call type matches comprises the target call type, or the suffix of the function or executable code comprises the target call type. The third analysis result includes the number and time-consuming information corresponding to the function or executable code for which the target call type matches.
The third performance report includes third analysis results displayed in list form for indicating time-consuming information in the performance data of all or part of the frames. That is, the third performance report adds a call type, and can subdivide functions or executable code according to the call type.
By way of example, referring to FIG. 6, the developer enters the target call type "monster_food flower" 32 in the input box, and then displays a third performance report that includes third analysis results, shown in list form, including the function or executable code 33 that the target call type matches, and the corresponding quantity 34 and time consuming information 35.
The function or executable code for the "monster_predator flower" match includes "tick_3#tick_SkeletalMeshComponent#monster_predator flower_C", number 18, total time 8.8ms. "tick_3#tick_smstatemachinery component#monster_pirate_c", number 3, total 7.3ms. "bp_4_process#receiveTick#monster_pirate_C", number 3, total 1ms. "bp_4_local# remote challenge event # monster_predator_c", number 3, total time spent 244 μs. "tick_3#tick_ProjectileMovementComponent#monster_food flower_C", number 3, total consumption 103 μs. "bp_4_exec#actor: K2_GetActorlocation#monster_piranha_C", number 3, total consumption 31 μs.
In this embodiment, a manner of displaying a third performance report in a third mode is provided, and the third detail level of the third performance report is higher than the second detail level of the second performance report, and the detail level is highest, so that details of calling level relationships and single time-consuming information of all frames can be displayed, and the method is suitable for advanced developers familiar to both business and engines, is also suitable for scenes in which detailed performance conditions of a target application program need to be determined, and is beneficial to improving man-machine interaction efficiency.
In some embodiments, the method further comprises step 333:
step 333, displaying time-consuming information in the performance data of all or part of the frames in a time axis manner, and displaying the call hierarchy relationship and time-consuming information corresponding to all or part of the functions or executable codes indicated by the performance data.
Illustratively, time consuming information in the performance data of all or a portion of the frames is displayed in a time-axis manner. Alternatively, each function or executable code is represented as a bar frame of different lengths according to the time-consuming information, and the bar frames of the respective functions or executable codes are sequentially arranged and displayed from top to bottom according to the call hierarchy relation. For example, executable code 1 invokes executable code 2, and the bar of executable code 1 is displayed above the bar of executable code 2. Wherein time-consuming information in the performance data of all or part of the frames is displayed above the call hierarchy.
As an example, referring to fig. 7, time-consuming information 31 in performance data of all or a part of frames is displayed in a time axis manner, and below the time-consuming information 31, call hierarchy relationships corresponding to all functions or executable codes and the time-consuming information are displayed. For example, "tick3#tickSheletalMeshComponent#bouncing Mushroom_C (138 μs)" 36 represents a function or executable code "tick3#tickSheletalMeshComponent#bouncing Mushroom_C" takes 138 μs. "USkinnedMeshComponent _ TickComponent (133 μs)" 37 represents a function or executable code "USkinnedMeshComponent _ TickComponent" that takes 133 μs. "SkinnedMeshCompTick (129 μs)" 38 represents a function or executable code "SkinnedMeshCompTick" that takes 129 μs. Wherein the function or executable code "tick3#tickSkeletalMeshComponent#bouncing mushroom_C" may call the function or executable code "USkinnedMeshComponent _ TickComponent", and the function or executable code "USkinnedMeshComponent _ TickComponent" may call the function or executable code "SkinnedMeshCompTick".
In the embodiment, a time axis mode is provided, a hierarchical calling relation and time-consuming information mode is displayed, a deep developer familiar with both business and engines can determine more time-consuming information, influence of different calling types on performance can be distinguished, the same calling can be distinguished, and the man-machine interaction efficiency is improved.
Next, a detailed description will be given of a technical implementation manner in different display modes:
First mode
In some embodiments, in the first mode, performance data needs to be analyzed according to preset performance rules to determine whether the performance data is abnormal, a time period and a level of the performance data being abnormal, and a solution to the performance data being abnormal. For example, whether the single performance data corresponding to each performance rule is abnormal is determined, and then the level of abnormality of the performance data corresponding to each performance rule is determined, wherein the performance rule comprises a solution for solving the abnormality of the performance data. The method further comprises steps 411, 412, 413, 414 and 415:
Step 411, acquiring performance data corresponding to a preset performance rule based on the time period and the key value name;
Step 412, detecting a relationship of the performance data to a threshold in the performance rule;
Step 413, determining that the performance data is abnormal and increasing the abnormal number of the performance data in the time period when the performance data is greater than the threshold;
step 414, obtaining the abnormal quantity of the performance data corresponding to the performance rule;
In step 415, a level of performance data anomaly occurrence is determined based on a relationship between the anomaly number and an anomaly number threshold value in the performance rules.
The key name (DATAKEYNAME) is part of the performance rule, indicating the specific type of performance data. The threshold (DataThreshold) is part of the performance rules and is used to indicate a predefined threshold for the performance data. When the performance data is greater than the threshold, it is determined that an anomaly has occurred in the performance data. The threshold may be adaptively defined according to the specific type of performance data required by the actual technology. The anomaly number threshold is part of a performance rule that indicates the level at which anomalies occur in the performance data. The anomaly number threshold can be adaptively defined according to the specific type of level and actual technical needs.
The abnormal quantity threshold includes at least one of an Error threshold (ErrorTicks), an alarm threshold (WARNTICKS), and a recommendation threshold (SuggestTicks), and the level of performance data abnormality includes at least one of severity (Error), alarm (Warn), and recommendation (Suggest). For example, the key value name is "Widget creation", the threshold is 1, the error threshold is 20.0, the alarm threshold is 10.0, and the suggested threshold is 5.0.
The method comprises the steps of obtaining performance data corresponding to a preset performance rule based on a time period and a key value name, detecting the relation between the performance data and a threshold value in the performance rule, determining that the performance data is abnormal when the performance data is larger than the threshold value, increasing the abnormal quantity of the performance data in the time period, specifically, the abnormal quantity +1 of the performance data in the time period, and determining that the performance data is not abnormal when the performance data is smaller than or equal to the threshold value, wherein the performance data does not need to be processed. And determining the level of abnormality of the performance data based on the relation between the abnormal number and the abnormal number threshold value in the performance rule.
In the first mode, performance rules can be combined to analyze performance data in the whole period or a designated period of time, which performance data corresponding to the performance rules are abnormal in the period of time is determined, if the performance data are abnormal, corresponding levels, time periods and solutions are integrated and a first performance report is output, and therefore developers or other staff at positions, which are not known by engine functions and application services, can also initially determine performance problems.
In this embodiment, a manner of determining whether the performance data is abnormal or not and determining the level of the abnormality of the performance data in the first mode is provided, so that the performance data can be processed according to a preset performance rule, and the data processing efficiency can be improved.
In some embodiments, the anomaly number threshold comprises at least one of an Error threshold (ErrorTicks), an alarm threshold (WARNTICKS), a recommendation threshold (SuggestTicks), and the level of performance data anomaly comprises at least one of a severity (Error), an alarm (Warn), a recommendation (Suggest). Step 415 is embodied as step 4151, step 4152, step 4153, step 4154:
step 4151, marking the level of abnormality occurrence of the performance data corresponding to the performance rule as serious if the number of abnormalities is greater than the error threshold;
step 4152, marking the level of abnormality of the performance data corresponding to the performance rule as an alarm when the number of abnormalities is smaller than the error threshold and larger than the alarm threshold;
step 4153, marking the level of abnormality occurring in the performance data corresponding to the performance rule as a suggestion when the number of abnormalities is smaller than the alarm threshold and larger than the suggestion threshold;
In step 4154, if the number of anomalies is less than the error threshold, less than the alarm threshold, and less than the recommended threshold, the performance data corresponding to the performance rule is marked as not prompted.
For example, in the case where the number of anomalies is greater than the Error threshold, the level at which the performance data corresponding to the performance rule is abnormal is marked as severe (Error). And when the abnormal number is smaller than the error threshold value and larger than the alarm threshold value, marking the level of abnormality of the performance data corresponding to the performance rule as an alarm (Warn). And when the abnormal number is smaller than the alarm threshold value and larger than the suggestion threshold value, marking the level of abnormality occurrence of the performance data corresponding to the performance rule as a suggestion (Suggest). And marking the performance data corresponding to the performance rule as not to be prompted, namely not to be prompted under the condition that the abnormal number is smaller than the error threshold value, smaller than the alarm threshold value and smaller than the recommended threshold value.
In this embodiment, a manner of determining, in the first mode, a level of abnormality in performance data according to the abnormality data and the abnormality number threshold is provided, and the performance data can be marked as different levels, which is beneficial to prompting the abnormal performance data in the first performance report.
In some embodiments, the method further comprises step 401, step 402, and step 403:
Step 401, determining performance data to be collected;
step 402, defining a threshold value corresponding to the performance data, and collecting rule information of the performance data;
Step 403, determining a performance rule corresponding to the performance data based on the rule information of the performance data and the threshold value.
The performance data to be collected refers to the corresponding performance data of the performance index which needs to be focused on in the current target application program, namely, which performance data need to form a performance report and be synchronized with a developer. The performance indicators indicated by the performance data include, but are not limited to, at least one of an Actor number, a scene rendering number, drawCall number, a shadow level. The portion of the performance data is used primarily in the first mode.
The method comprises the steps of determining performance data to be collected, defining a threshold value corresponding to the performance data, collecting rule information of the performance data, and determining a performance rule corresponding to the performance data based on the rule information of the performance data and the threshold value.
In this embodiment, a manner of determining a performance rule corresponding to performance data in the first mode is provided, which is favorable for performing analysis on the performance data according to the performance rule later, and improves data processing efficiency.
In some embodiments, the storage format of the performance rules is at least one of JSON format, table format, text format, or any other format. The performance rules are converted based on the problems which are more important in the service or the problems which are easy to occur by the developer according to past experience, and the more applicable performance rules can be arranged according to specific service and project. For each performance rule, whether the performance data collected during operation exceeds a threshold value or not can be detected, and rules of linkage performance data can be added during actual use, for example, one performance rule can detect a plurality of performance data, so that a first analysis result is determined.
In some embodiments, the performance rules include at least one of the following information:
Rule identification (RuleID), rule name (RuleName), platform type (Platform), type of performance data (Datatype), key name of performance Data (DATAKEYNAME), threshold of performance data (DataThreshold), value or proportion of anomaly number threshold (TickNumOrTickRate), suggestion threshold (SuggestTicks), alarm threshold (WARNTICKS), error threshold (ErrorTicks), tip of solution, tip document of solution (TipDoc), tip document of solution (TipDocTitle).
The Key value name (DATAKEYNAME) of the performance data corresponds to the Key (Key) value of the performance data, and performance data corresponding to the Key value name in a series of performance data collected in a corresponding time period can be obtained. When the performance data is greater than the threshold (DataThreshold) of the performance data, the number of anomalies +1 is recorded. The value or proportion (TickNumOrTickRate) of the anomaly number threshold value indicates whether the anomaly number exceeding the threshold value is determined as a total number or as a proportion of the total number, facilitating the determination of the level of the performance data over the final period of time. A recommendation threshold (SuggestTicks) is used to indicate that the performance data and performance rules are recommended when the number of anomalies or the proportion of the number of anomalies exceeds the recommendation threshold. When both the error threshold (ErrorTicks) and the alarm threshold (WARNTICKS) are-1 and the proposed threshold (SuggestTicks) is not-1, then the proposed threshold (SuggestTicks) is checked. The alarm threshold (WARNTICKS) is used for indicating that the abnormal quantity or the abnormal quantity proportion of the performance data exceeds the alarm threshold, and the performance data and the performance rule are marked as an alarm. When the error threshold (ErrorTicks) is-1 and the alarm threshold (WARNTICKS) is not-1, then the alarm threshold (WARNTICKS) is checked. An error threshold (ErrorTicks) is used to indicate that the number of anomalies or the number of anomalies duty cycles of the performance data exceeds the error threshold, marking the performance data as severe as well as the performance rules. When the error threshold (ErrorTicks) is not-1, then the error threshold (ErrorTicks) is checked.
As an example, referring to fig. 8, there are shown 3 performance rules, expressed separately as:
Example one of the performance rules:
the rule mark (RuleID) is 2;
the rule name (RuleName) is UWC dynamically created frequently;
The Platform type (Platform) is win64& html5;
The type of performance data (Datatype) is 0;
the key name (DATAKEYNAME) of the performance data is created for the item (Widget);
The threshold (DataThreshold) of the performance data is 1;
The value or ratio (TickNumOrTickRate) of the anomaly number threshold is 0;
The recommended threshold (SuggestTicks) is 5.0;
the alarm threshold (WARNTICKS) is 10.0;
the error threshold (ErrorTicks) is 20.0;
The prompt (Tip) of the solution is that UMG is frequently created, the jam is easy to occur, and an object pool is suggested to be used;
the prompt document (TipDoc) of the solution is empty;
the hint document title (TipDocTitle) of the solution is object pool usage.
Example two of the performance rules:
The rule mark (RuleID) is 3;
rule names (RuleName) are Character-excess;
The Platform type (Platform) is win64& html5;
The type of performance data (Datatype) is 0;
The key name (DATAKEYNAME) of the performance data is Character-number ";
the threshold (DataThreshold) of the performance data is 50;
the value or ratio (TickNumOrTickRate) of the abnormal quantity threshold is 1;
the recommended threshold (SuggestTicks) is 0.2;
The alarm threshold (WARNTICKS) is-1.0;
the error threshold (ErrorTicks) is-1.0;
The prompt (Tip) of the solution is that the number of roles is too large, the running performance is affected, and the number of suggested roles is not more than 50;
the prompt document (TipDoc) of the solution is empty;
the hint document title (TipDocTitle) of the solution is empty.
Example three of performance rules:
the rule mark (RuleID) is 4;
The rule name (RuleName) is that the field is recorded too much time;
The Platform type (Platform) is win64& html5;
the type of performance data (Datatype) is 1;
the key name (DATAKEYNAME) of the performance data is World Tick Time;
the threshold (DataThreshold) for performance data is 1500;
the value or ratio (TickNumOrTickRate) of the abnormal quantity threshold is 1;
the recommended threshold (SuggestTicks) is 0.1;
The alarm threshold (WARNTICKS) is 0.2;
The error threshold (ErrorTicks) is 0.5;
the Tip of the solution is that the single-frame blueprint consumes more time, and the proposal is that a specific time-consuming position is checked through UnrealInsight and the problem is repaired;
the prompt document (TipDoc) of the solution is empty;
the title (TipDocTitle) of the hint document of the solution is Unreal-light game-Trace & Insights instruction.
In this embodiment, specific content included in the performance rule in the first mode is provided, which is favorable for performing analysis on performance data according to the performance rule later, and improves data processing efficiency.
Second mode
In some embodiments, in the second mode, time-consuming information of at least one layer of sub-nodes corresponding to the selected frame and each sub-node of the at least one layer of sub-nodes needs to be determined according to time-consuming information in the performance data of the selected frame, and the calling hierarchy relationship and the calling type. For example, the performance data corresponding to the selected frame may be screened first, and then the performance data satisfying the screening condition may be analyzed according to the call hierarchy relationship and the call type. The method further comprises the steps 421 and 422 of:
Step 421, screening the performance data corresponding to the selected frame, and determining the performance data meeting the screening condition;
step 422, determining a second analysis result of the performance data based on the performance data satisfying the screening condition, and the call hierarchy relationship and call type;
The screening condition comprises at least one of the following steps that time consumption information in performance data is larger than a threshold value, the type of the performance data is a preset type, the performance data is related to a service, the calling hierarchy relation is used for indicating calling conditions between functions or executable codes corresponding to the performance data, and the calling type is indicated through suffixes in time consumption information formats of the functions or the executable codes.
The screening conditions can be set according to the actual technical requirements. Optionally, the screening condition comprises at least one of time consuming information in the performance data being greater than a threshold, the type of the performance data being a preset type, the performance data being business related. The preset type may be a function corresponding to the service or a type of executable code. For the performance data corresponding to the selected frames, only the part related to the service is screened out and classified for display, so that the influence of excessive time-consuming information details on the performance report reading of a developer can be avoided.
For example, the information required to build an Instance (Instance) at rendering (CPU submitting instantiation data required to build GPU rendering before rendering), RDG build time (time consuming rendering framework RENDER DEPENDENCY GRAPH in UE), skeletal animation update time, etc. is often difficult for non-professional developers to understand, and cannot be directly modified, and there is no corresponding solution if there is time consuming, so this part of performance data can be filtered out.
The method includes the steps of selecting performance data corresponding to a selected frame, determining performance data meeting a screening condition, and determining a second analysis result of the performance data based on the performance data meeting the screening condition, the calling level relation and the calling type.
In this embodiment, a manner of performing processing on performance data in the second mode is provided, and by screening performance data that meets the screening condition, the problem that too many time-consuming information details are generated to cause reading difficulty for a developer unfamiliar with the engine, and further performance hot spots cannot be found can be avoided, which is beneficial to providing data processing efficiency. Through the second analysis result, a developer can easily perform hot spots and determine corresponding solutions, and the man-machine interaction efficiency is improved.
Specifically, step 422 is implemented as step 4221 and step 4222:
Step 4221, based on the calling level relation and the calling type, ordering the time-consuming information in the performance data meeting the screening condition to determine a first layer of sub-nodes, and based on the calling level relation, determining the next layer of sub-nodes of the first layer of sub-nodes until the calling level relation is traversed;
step 4222, merging the time-consuming information of the same type of the same layer of sub-nodes in the at least one layer of sub-nodes to obtain the merged time-consuming information of the sub-nodes.
Illustratively, ordering is performed on time-consuming information in the performance data that satisfies the screening condition based on the call hierarchy relationship and the call type, and the first-layer child node is determined. Specifically, time-consuming information in performance data meeting screening conditions is sorted according to time-consuming time length from large to small, first N functions or executable codes with time-consuming time length exceeding a threshold value are determined to be first-layer candidate child nodes, and according to the calling type, when the function or executable code corresponding to the first-layer candidate child nodes is detected to be not called by other functions or other executable codes, the function or the executable code is determined to be the first-layer child nodes. And then, continuing to determine the next layer of sub-nodes of the first layer of sub-nodes based on the calling hierarchy relation until the calling hierarchy relation is traversed, or indicating that all functions or all executable codes are traversed.
In some embodiments, time consuming information merging of the same layer type is also performed. Specifically, the time-consuming information of the same type of the same-layer child node in at least one layer of child nodes is combined, and the time-consuming information after the combination of the child nodes is obtained. For example, referring to fig. 5, for "bouncing mushroom", the second layer child node should include 7 "skeleton network component updates per frame" and 7 "blueprint updates per frame", where the same type of time-consuming information of the same layer child node performs merging, the total time consumption (time consumed after merging) of the "skeleton network component updates per frame" total (7 times) is 1.12ms, and the total time consumption (time consumed after merging) of the "blueprint updates per frame" total (7 times) total is 0.15ms.
In some alternative embodiments, the names of all or part of the child nodes of at least one layer of child nodes are also optimized, for example, in case the length of the child node name exceeds a threshold value, the child node name is displayed in a simplified manner. Time-consuming information smaller than the threshold value is not displayed any more, so that difficulty of a developer in reading the time-consuming information is reduced. For example, the threshold is set to 0.001ms.
In this embodiment, a manner of determining sub-nodes of each layer based on a call hierarchy relationship and a call type in the second mode is provided, and the manner of classifying by using the call type can enable the second performance report to be easier to read, so that the problem that a developer unfamiliar with an engine generates reading difficulty due to the fact that too much time-consuming information details are generated, and performance hot spots cannot be found can be avoided. The time-consuming information of the same layer type is combined, so that difficulty in reading the time-consuming information by a developer is reduced, and data processing efficiency and man-machine interaction efficiency are improved.
Third mode
In some embodiments, in the third mode, when all or part of the function indicated by the performance data or the call level relation corresponding to the executable code and the time-consuming information are displayed in a 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 presented first, and then draw the time-consuming node in the time period. Illustratively, the method further includes steps 431, 432, 433:
Step 431, determining a time period to be displayed;
Step 432, based on the time period, obtaining time-consuming information in the performance data;
and 433, drawing time-consuming nodes based on the time-consuming information and the calling hierarchy relation corresponding to the time-consuming information.
The time period to be displayed can be determined according to at least one of the size, the scaling and the display position of the current display window. The time period to be displayed and the time consumption information to be displayed are adjustable, for example, by adjusting the starting time point and the ending time point of the time period, the time consumption information of different time periods is checked. Or, by reducing the proportion of the time-consuming nodes, more time-consuming information is displayed in the same display window, wherein the more the time-consuming information is displayed, the smaller the occupation ratio of the single time-consuming node. Or, by enlarging the proportion of the time-consuming nodes, less time-consuming information is displayed in the same display window, wherein the less time-consuming information is displayed, the larger the proportion of a single time-consuming node is, and the time-consuming information of a certain time-consuming node can be focused and checked.
The method comprises the steps of determining a time period to be displayed, obtaining time-consuming information in performance data based on the time period, and drawing time-consuming nodes based on the time-consuming information and a calling hierarchy relation corresponding to the time-consuming information. Wherein, the time-consuming nodes refer to functions or executable codes displayed in bar boxes of different lengths. Each time consuming node displays at least one of calling hierarchy relation, name and time length corresponding to the time consuming information. And the bar frames of the functions or the executable codes are sequentially arranged and displayed from top to bottom according to the calling hierarchy relation. For example, executable code 1 invokes executable code 2, and the bar of executable code 1 is displayed above the bar of executable code 2.
In this embodiment, a manner of performing processing on performance data in the third mode is provided, so that the most comprehensive performance data can be displayed in a time axis manner, which is beneficial to improving man-machine interaction efficiency.
In some embodiments, a time-consuming information format of the function or executable code is also defined, wherein the call type is further increased on the basis of the original time-consuming information format. The method further comprises step 440:
step 440, defining a function or time-consuming information format of executable code of the target application program runtime;
The time-consuming information format comprises a prefix, a calling function mark or a calling executable code mark and a suffix, wherein the prefix is used for representing at least one of calling the service from the inside of the engine, loading and circulating the inside of the engine, the suffix is used for indicating a calling type, and the calling type is used for indicating at least one of the inside of the engine, a service using type and other types.
Illustratively, the time-consuming information format of the function or executable code at the runtime of the target application is defined. The time-consuming information format comprises a prefix, a calling function mark or a calling executable code mark and a suffix, wherein the prefix is used for representing at least one of calling the service (blueprint) inside an engine, loading and circulating inside the engine, the suffix is used for indicating a calling type, and the calling type is used for indicating at least one of the type (C++ type) inside the engine, the service use type (blueprint type) and other types (special types).
For example, time consuming information for a function or executable code is denoted "bp_process# RECEIVETICK # run role_C". Where the prefix "bp_process" indicates that the engine calls to traffic internally (blueprint). "RECEIVETICK" means call function tags/names, or call executable code tags/names. The suffix "running role_c" indicates the type of call, in particular the blueprint class of service usage. It should be further noted that, the time-consuming information format provided in this embodiment is only an example, and specifically, the time-consuming information format may be planned according to the actual project and the performance data provided in the running process, so as to record the information required in time-consuming and dotting analysis.
Time-consuming information in the performance data can be acquired based on the time-consuming information format, and the time-consuming information is mainly used for the first mode, the second mode and the third mode. The method is characterized in that the first mode is only displayed in a list form, details of single time-consuming information cannot be displayed, the second mode can display the details of the single time-consuming information after screening, the names and the like of the finally displayed time-consuming information are optimized, and the third mode directly displays the details of the single time-consuming information in an original time axis mode.
In this embodiment, a method for defining a time-consuming information format is provided, so that the time-consuming information also includes a call type, and the time-consuming information can be recorded, which is beneficial to improving the data processing efficiency of the time-consuming information.
Next, a method for displaying the performance report will be described in detail with reference to the flowchart and the schematic.
Interface side
The embodiment provides three display modes, namely a first mode, a second mode and a third mode. The display modes are used independently or jointly respectively, so that developers in different backgrounds or positions with the intention of knowing application performances can be helped to quickly understand performances and specific problems, including novice developers unfamiliar with business, UGC developers familiar with business, and finally advanced developers familiar with engines and business codes.
For a first performance report in the first mode, reference may be made to fig. 3. The first performance report includes a level 11, a time period 12, a solution 13 displayed in a list form. For example, the class is serious, the time period is 1 second-47 seconds, the number of times of acquiring all objects is called, the solution is that the related function is acquired all objects, and the calling in the Tick related function is not suggested. The user interface (Tick-UI) is extremely time-consuming, and the solution is that the UI update logic is extremely time-consuming, and the Tick needs to avoid invoking medium and high time-consuming contents. The method is characterized in that the method is serious, the time period is 1-47 seconds, the time consumption of the scene is excessive, the time consumption of a single-frame blueprint is high, and the method is used for suggesting to check a specific time-consuming position through Unreal Insight and repairing the problem. The scale is severe, the time period is 14-47 seconds, the uncompressed mapping is used, the solution is that the texture format suggests to use Adaptive Scalable Texture Compression (ASTC), and the uncompressed format is not used in a large amount. The scale is severe, the time period is 17 seconds-47 seconds total DC number, the solution is that the Draw Call number is too large, and the unnecessary rendering number is recommended to be reduced. The level is advice, the time period is 1 second-16 seconds UMG dynamic frequent creation, the solution is that a UI editor (UMG) is frequently created, the jam is easy to occur, and the object pool is advice to use. The level is that advice is provided, the time period is 1 second-17 seconds, the dynamic frequent creation of the Actor is provided, the solution is that the Actor is frequently created, the problem that the reactor is easy to get stuck is solved, and the object pool is advice to use.
In the first mode, performance rules can be combined to analyze performance data in the whole period or a designated period of time, which performance data corresponding to the performance rules are abnormal in the period of time is determined, if the performance data are abnormal, corresponding levels, time periods and solutions are integrated and a first performance report is output, and therefore developers or other staff at positions, which are not known by engine functions and application services, can also initially determine performance problems.
For a second performance report in the second mode, refer to fig. 5. And executing screening on the performance data of the selected frame by combining time-consuming information in the performance data, and displaying in a tree structure by combining the calling hierarchy relation and the calling type. The second performance report includes time-consuming information 21 of a selected frame, wherein the selected frame is 753 th frame, the time-consuming summary is that a scene Tick is 13.25ms, a scene rendering 11.46ms,UI Tick:1.46ms,UI renders 3.01ms, and a second analysis result 22 is displayed in a tree structure, and the second analysis result includes at least one layer of sub-nodes corresponding to the selected frame, time-consuming information 23 of each sub-node of the at least one layer of sub-nodes, and each sub-node corresponds to a function or a section of executable code. For example, a parent node is "focused on", "focused on" takes 10.38ms. The first layer of child nodes are "monster_poison mushroom", "running character", "bouncing mushroom", "override player automatic destruction component", "other", "monster_pirate flower", "running bullet movement", "in-game UI", "blank foundation block", "player camera", "block generator". Wherein, the "monster_toxic mushroom" takes 2.65ms, the "running cool character" takes 2.11ms, the "bouncing mushroom" takes 1.27ms, the "overrun player automatic destruction component" takes 1.12ms, the "other" takes 1.09ms, the "monster_foodbreak" takes 1.05ms, the "running cool bullet movement" takes 0.37ms, the "in-game UI" takes 0.20ms, the "blank foundation plot" takes 0.17ms, the "player camera" takes 1.15ms, and the "plot generator" takes 0.07ms.
For "monster_toxin mushroom", its second level child nodes are "character movement component per frame update", "blueprint per frame update", "skeletal grid component per frame update", "state machine component per frame update". Wherein "character movement component" takes 0.58ms per frame update "and" blueprint "takes 0.55ms per frame update" and "skeletal grid component" takes 0.50ms per frame update "and" state machine component "takes 0.48ms per frame update" and "1 time". For "bouncing mushrooms", the second level sub-nodes are "skeletal mesh component update per frame", "blueprint update per frame". Wherein "skeletal grid component updates per frame" takes 1.12ms in total (7 times) and "blueprint updates per frame" takes 0.15ms in total (7 times).
The first layer child nodes are classified by the calling type, so that a non-professional developer can read the first layer child nodes more easily, and can know the performance hot spot and presumably what scheme is adopted. For example, when a developer views a second performance report, the "monster_poison" child node is turned on to continue viewing when the "monster_poison" is found to be more time consuming. When the time consumption of updating each frame of the skeleton grid assembly is high, the simplification of skeleton animation for the role can be considered, when the time consumption of updating each frame of the blueprint is high, the corresponding blueprint can be opened to check the corresponding function part, which blueprint nodes can be seen to reduce the call, and finally, the time consumption of properly reducing the role consumption of the monster_toxic mushroom can be considered. The next layer of sub-nodes of the first layer of sub-nodes are determined by calling the hierarchical relationship, and the time-consuming information of the functions or executable codes of the same layer type are combined, and the time-consuming information which is very little in time consumption, for example, less than 0.001ms, is not displayed, so that the difficulty of a non-professional developer in reading the time-consuming information is reduced.
For a third performance report in the third mode, refer to fig. 6. The call type is newly added, and the time-consuming information can be subdivided according to the call type. The developer inputs the target call type "monster_eater" 32 in the input box and a third performance report is displayed, the third performance report comprising a third analysis result, which is displayed in list form, comprising the function or executable code 33 with the target call type matching, and the corresponding quantity 34 and time consuming information 35.
The function or executable code for the "monster_predator flower" match includes "tick_3#tick_SkeletalMeshComponent#monster_predator flower_C", number 18, total time 8.8ms. "tick_3#tick_smstatemachinery component#monster_pirate_c", number 3, total 7.3ms. "bp_4_process#receiveTick#monster_pirate_C", number 3, total 1ms. "bp_4_local# remote challenge event # monster_predator_c", number 3, total time spent 244 μs. "tick_3#tick_ProjectileMovementComponent#monster_food flower_C", number 3, total consumption 103 μs. "bp_4_exec#actor: K2_GetActorlocation#monster_piranha_C", number 3, total consumption 31 μs.
For the time axis view example in the third mode, referring to fig. 7, time-consuming information 31 in the performance data of all or part of the frames is displayed in a time axis manner, and below the time-consuming information 31, call hierarchy relationships corresponding to all functions or executable codes and the time-consuming information are displayed. For example, "tick3#tickSheletalMeshComponent#bouncing Mushroom_C (138 μs)" 36 represents a function or executable code "tick3#tickSheletalMeshComponent#bouncing Mushroom_C" takes 138 μs. "USkinnedMeshComponent _ TickComponent (133 μs)" 37 represents a function or executable code "USkinnedMeshComponent _ TickComponent" that takes 133 μs. "SkinnedMeshCompTick (129 μs)" 38 represents a function or executable code "SkinnedMeshCompTick" that takes 129 μs. Wherein the function or executable code "tick3#tickSkeletalMeshComponent#bouncing mushroom_C" may call the function or executable code "USkinnedMeshComponent _ TickComponent", and the function or executable code "USkinnedMeshComponent _ TickComponent" may call the function or executable code "SkinnedMeshCompTick".
Technical side
Referring to FIG. 9, the main implementation flow of the present embodiment includes 1. Customization includes defining performance rules and time consuming information formats, 2. Real-time recording of performance data, 3. Offline/real-time analysis, determining performance report, time consuming tree structure.
(1) For defining the performance rules, analyzing the performance data corresponding to the performance indexes which are required to be focused by the current target application program, and forming performance reports which are required to be synchronized to the developer, defining the threshold value of the performance data, and collecting the key value of the performance data, the rule information such as suggested documents and the like to form the performance rules. In some embodiments, the performance indicators indicated by the performance data include, but are not limited to, at least one of an Actor number, a scene rendering number, a DrawCall number, a shadow level, and the like. The performance rules are mainly used for the first mode.
(2) Referring to FIG. 10, the time consuming information format is defined and comprises 1. Prefix, 2. Call function mark or call executable code mark, 3. Suffix, wherein the prefix is used for representing at least one of calling to service, loading and circulating inside the engine, the suffix is used for indicating a calling type, and the calling type is used for indicating at least one of the type inside the engine (C++ class), the service use type (blueprint class) and other types.
For example, time consuming information for a function or executable code is denoted "bp_process# RECEIVETICK # run role_C". Where the prefix "bp_process" indicates that the engine calls to traffic internally (blueprint). "RECEIVETICK" means call function tags/names, or call executable code tags/names. The suffix "running role_c" indicates the type of call, in particular the blueprint class of service usage. It should be further noted that, the time-consuming information format provided in this embodiment is only an example, and specifically, the time-consuming information format may be planned according to the actual project and the performance data provided in the running process, so as to record the information required in time-consuming and dotting analysis.
Time-consuming information in the performance data can be acquired based on the time-consuming information format, and the time-consuming information is mainly used for the first mode, the second mode and the third mode. The method is characterized in that the first mode is only displayed in a list form, details of single time-consuming information cannot be displayed, the second mode can display the details of the single time-consuming information after screening, the names and the like of the finally displayed time-consuming information are optimized, and the third mode directly displays the details of the single time-consuming information in an original time axis mode.
(3) And for recording the performance data in real time, collecting the performance data and time-consuming information in the performance data according to the advanced planning. In some embodiments, the collection switch is further configured to not collect performance data of the target application program without affecting normal operation of the target application program when the collection switch is in an off state. And collecting performance data of the target application program under the condition that the collection switch is in an on state. Thereby ensuring that the functionality has as little impact as possible on the performance of the target application.
(4) For offline/real-time analysis, real-time analysis is supported, as well as subsequent execution of offline analysis on previously stored performance data.
(4.1) For the first mode, performing an analysis on the performance data according to the performance rules.
In the first mode, whether single performance data corresponding to each performance rule are abnormal or not is firstly determined, then the level of abnormality of the performance data corresponding to each performance rule is determined, and finally a performance report is output in the first mode. Referring to fig. 11, the steps are as follows:
1. Acquiring performance data according to the time period and the key value name;
2. Determining if is greater than the threshold is 3, otherwise 4;
3. abnormal number +1 of this time period;
4. No abnormality;
5. obtaining abnormal quantity;
6. determining if is greater than the error threshold is 7, otherwise 8;
7. Record as severe;
8. Determine if is greater than the alert threshold?
9. Recording as an alarm;
10. Determine if it is greater than the recommended threshold?
11. Recording as advice;
12. Not prompting;
13. and outputting a performance report.
And (4.2) for the second mode, screening to obtain performance data meeting screening conditions, performing analysis on the performance data according to the calling type and the calling level relation, and finally constructing a time-consuming tree structure. Referring to fig. 12, the steps are as follows:
1. Screening time-consuming information (storage: unordered list) that needs to be of interest;
2. Ordering (storing: ordered list) by time-consuming information hierarchy;
3. extracting a call type, and determining a first-layer child node (storage: tree structure);
4. constructing a next layer of child nodes (storage: tree structure) of the first layer of child nodes by combining the calling hierarchy relationship;
5. The same name is time-consuming combined (stored: tree structure);
6. optimization name display (store: tree structure);
7. The time-consuming nodes (storage: reduced version tree structure) are deleted.
And (4.3) for the third mode, when the calling hierarchy relation and time-consuming information corresponding to all functions or executable codes are displayed in a time axis mode, receiving the time-consuming information when the target application program runs, determining the current time period to be displayed according to the size, the scaling, the display position and the like of the window which is currently displayed, acquiring all the time-consuming information in the time period, and drawing and displaying the time-consuming nodes according to the calling hierarchy relation, the name and the time length corresponding to the time-consuming information of the time-consuming information. Referring to fig. 13, the steps are as follows:
1. receiving time-consuming information;
2. Determining a time period to be displayed according to the size, the zoom, the display position and the like of the displayed window;
3. Acquiring time-consuming information in the time period;
4. And drawing time-consuming nodes according to the calling hierarchy relationship, the name and the time length corresponding to the time-consuming information.
In summary, the display method of the performance report provided by the embodiment of the application is beneficial to helping developers with different development background knowledge, including novice developers who do not know about projects at all, UGC developers who know about projects to a certain extent, senior developers who are familiar with engines and businesses in experience, and fast look up the performance report and know about performance hot spots, and fast find out a more suitable method for solving the performance problem, thereby improving the man-machine interaction efficiency.
Fig. 14 is a block diagram of a display device for performance reporting provided by an exemplary embodiment of the application. The display device 800 of the performance report includes at least some of the receiving module 820, the processing module 840, and the display module 860.
A receiving module 820, configured to receive performance data of a target application program when the target application program runs;
A processing module 840, configured to select a display mode from candidate display modes in response to a selection operation, where different performance reports indicated by the candidate display modes correspond to different levels of detail;
And a display module 860 for displaying a performance report of the performance data in the display mode, the performance report being used for displaying the analysis result of the performance data in a visual form.
In some embodiments, the display module 860 is configured to:
and displaying a performance report matched with an analysis result of the performance data in response to the analysis mode indicated by the display mode, wherein the analysis result is obtained by performing analysis on all or part of the performance data based on the analysis mode.
In some embodiments, the display mode includes a first mode;
a display module 860 for:
Displaying a first performance report matching a first analysis result of the performance data in a list form in response to a first analysis mode indicated by the first mode, the first analysis result being obtained by performing analysis on all or part of the performance data based on the first analysis mode;
The first analysis result comprises a grade of abnormality of the performance data, a time period of abnormality of the performance data and a solution mode for solving the abnormality of the performance data, and the first performance report comprises the grade, the time period and the solution mode which are displayed in the list form.
In some embodiments, the display module 860 is configured to:
And displaying all or part of the performance data corresponding to the performance indexes in a time axis manner.
In some embodiments, the display mode includes a second mode indicating a second level of detail of a second performance report that is higher than a first level of detail of the first performance report indicated by the first mode;
a display module 860 for:
determining a selected frame from the candidate frames in response to the selecting operation;
Displaying a second performance report matching a second analysis result of the performance data of the selected frame in a tree structure form in response to a second analysis mode indicated by the second mode, the second analysis result being obtained by performing analysis on the performance data of the selected frame based on the second analysis mode;
The second analysis result comprises at least one layer of sub-node corresponding to the selected frame and time consumption information of each sub-node of the at least one layer of sub-node, wherein each sub-node corresponds to a function or a section of executable code, and the second performance report comprises 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.
In some embodiments, the display mode includes a third mode indicating a third level of detail of a third performance report that is higher than a second level of detail of a second performance report indicated by the second mode;
a display module 860 for:
Inputting a target call type in an input box in response to an input operation;
displaying a third performance report matched with a third analysis result of the performance data related to the target call type in a list form in response to a third analysis mode indicated by the third mode, wherein the third analysis result is obtained by performing analysis on the performance data of a function or executable code matched with the target call type based on the third analysis mode;
the third analysis result comprises the quantity and time-consuming information corresponding to the function or executable code matched with the target call type, and the third performance report comprises the third analysis result displayed in a list form.
In some embodiments, the display module 860 is configured to:
And displaying time-consuming information in the performance data of all or part of the frames in a time axis mode, and displaying the calling hierarchy relation and the time-consuming information corresponding to all or part of functions or executable codes indicated by the performance data.
In some embodiments, processing module 840 is to:
acquiring the performance data corresponding to a preset performance rule based on the time period and the key value name;
detecting a relationship of the performance data to a threshold in the performance rule;
Determining that abnormality occurs in the performance data in a case where the performance data is greater than the threshold, and increasing the number of abnormality of the performance data for the period of time;
acquiring the abnormal quantity of the performance data corresponding to the performance rule;
And determining the level of abnormality of the performance data based on the relation between the abnormal quantity and the abnormal quantity threshold value in the performance rule.
In some embodiments, the anomaly number threshold comprises at least one of an error threshold, an alarm threshold, a suggestion threshold, and the level of anomaly in the performance data comprises at least one of severity, alarm, suggestion;
a processing module 840 for:
Marking the level of abnormality of the performance data corresponding to the performance rule as the severity when the number of abnormalities is greater than the error threshold;
Marking the level of abnormality of the performance data corresponding to the performance rule as the alarm under the condition that the abnormal number is smaller than the error threshold and larger than the alarm threshold;
Marking the level of abnormality of the performance data corresponding to the performance rule as the suggestion under the condition that the number of abnormalities is smaller than the alarm threshold and larger than the suggestion threshold;
and marking the performance data corresponding to the performance rule as not to be prompted under the condition that the abnormal quantity is smaller than the error threshold value, smaller than the alarm threshold value and smaller than the suggestion threshold value.
In some embodiments, processing module 840 is to:
determining performance data to be collected;
Defining a threshold value corresponding to the performance data, and collecting rule information of the performance data;
And determining a performance rule corresponding to the performance data based on the rule information of the performance data and the threshold value.
In some embodiments, the performance rule includes at least one of the following information:
Rule identification, rule name, platform type, type of the performance data, key name of the performance data, threshold of the performance data, value or proportion of abnormal quantity threshold, suggestion threshold, alarm threshold, error threshold, prompt of solution, prompt document of the solution, and prompt document title of the solution.
In some embodiments, processing module 840 is to:
Screening the performance data corresponding to the selected frame, and determining the performance data meeting screening conditions;
Determining the second analysis result of the performance data based on the performance data meeting the screening conditions, and a calling hierarchical relationship and a calling type;
The screening condition comprises at least one of the following steps that time consumption information in the performance data is larger than a threshold value, the type of the performance data is a preset type, the performance data is related to a service, the calling hierarchy relation is used for indicating calling conditions between functions or executable codes corresponding to the performance data, and the calling type is indicated through suffixes in time consumption information formats of the functions or the executable codes.
In some embodiments, processing module 840 is to:
Based on the calling level relation and the calling type, executing sorting of time-consuming information in the performance data meeting the screening conditions to determine a first layer of sub-nodes, and based on the calling level relation, determining a next layer of sub-nodes of the first layer of sub-nodes until the calling level relation is traversed;
and merging the time-consuming information of the same type of the same-layer child nodes in the at least one-layer child node to obtain the merged time-consuming information of the child nodes.
In some embodiments, processing module 840 is to:
Determining a time period to be displayed;
based on the time period, time-consuming information in the performance data is acquired;
And drawing time-consuming nodes based on the time-consuming information and the calling hierarchy relation corresponding to the time-consuming information.
In some embodiments, the processing module 840 is further to:
Defining a time-consuming information format of a function or executable code of the target application program when the target application program runs;
the time-consuming information format comprises a prefix, a calling function mark or a calling executable code mark and a suffix, wherein the prefix is used for representing at least one of calling the service, loading and circulating the engine inside the engine, the suffix is used for indicating a calling type, and the calling type is used for indicating at least one of the internal type of the engine, the service use type and other types.
It should be noted that, the specific limitation in the embodiment of the display device 800 for one or more performance reports provided above may be referred to the limitation of the display method for the performance report above, which is not described herein. The modules of the above device may be implemented in whole or in part by software, hardware, or a combination thereof, and each module may be embedded in hardware form or independent of a processor of the computer device, or may be stored in a memory of the computer device in software form, so that the processor may call and execute operations corresponding to each module.
The embodiment of the application also provides computer equipment, which comprises a processor and a memory, wherein the memory stores a computer program, and the processor is used for executing the computer program in the memory to realize the display method of the performance report provided by the method embodiments.
Fig. 15 is a block diagram of a computer device according to an exemplary embodiment of the present application.
The computer device 1000 may be a terminal such as a smart phone, tablet computer, MP3 player (Moving Picture Experts Group Audio Layer III, dynamic video expert compression standard audio plane 3), MP4 (Moving Picture Experts Group Audio Layer IV, dynamic video expert compression standard audio plane 4) player, unmanned reservation terminal, smart home appliance, smart voice interaction device, unmanned vending terminal. The computer device 1000 may also be referred to by other names of user devices, portable terminals, portable mobile terminals, etc.
In general, computer device 1000 includes a processor 1001 and a memory 1002.
The processor 1001 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and so on. The processor 1001 may be implemented in at least one hardware form of DSP (DIGITAL SIGNAL Processing), FPGA (Field Programmable GATE ARRAY ), PLA (Programmable Logic Array, programmable logic array). The processor 1001 may also include a main processor for processing data in the awake state, which is also called a CPU (Central Processing Unit ), and a coprocessor for processing data in the standby state, which is a low-power-consumption processor. In some embodiments, the processor 1001 may integrate a GPU (Graphics Processing Unit, image processor) for rendering and drawing of content required to be displayed by the display screen. In some embodiments, the processor 1001 may also include an AI (ARTIFICIAL INTELLIGENCE ) processor for processing computing operations related to machine learning.
Memory 1002 may include one or more computer-readable storage media, which may be tangible and non-transitory. Memory 1002 may also include high-speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash memory storage devices. In some embodiments, a non-transitory computer readable storage medium in memory 1002 is used to store at least one instruction for execution by processor 1001 to implement the method of displaying a performance report provided in an embodiment of the application.
In some embodiments, computer device 1000 may also optionally include a peripheral interface 1003 and at least one peripheral. Specifically, the peripheral devices include at least one of radio frequency circuitry 1004, a touch display 1005, a camera assembly 1006, audio circuitry 1007, and a power supply 1008.
Peripheral interface 1003 may be used to connect I/O (Input/Output) related at least one peripheral to processor 1001 and memory 1002. In some embodiments, processor 1001, memory 1002, and peripheral interface 1003 are integrated on the same chip or circuit board, and in some other embodiments, either or both of processor 1001, memory 1002, and peripheral interface 1003 may be implemented on separate chips or circuit boards, as this embodiment is not limiting.
Radio Frequency circuit 1004 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. Radio frequency circuitry 1004 communicates with a communication network and other communication devices via electromagnetic signals. The radio frequency circuit 1004 converts an electrical signal into an electromagnetic signal for transmission, or converts a received electromagnetic signal into an electrical signal. Optionally, the radio frequency circuitry 1004 includes an antenna system, an RF transceiver, one or more amplifiers, tuners, oscillators, digital signal processors, codec chipsets, subscriber identity module cards, and so forth. Radio frequency circuitry 1004 may communicate with other terminals via at least one wireless communication protocol. The wireless communication protocols include, but are not limited to, the world wide web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and/or WiFi (WIRELESS FIDELITY ) networks. In some embodiments, the radio frequency circuit 1004 may further include NFC (NEAR FIELD Communication) related circuits, which is not limited by the present application.
The touch display 1005 is used to display a UI (User Interface). The UI may include graphics, text, icons, video, and any combination thereof. The touch display 1005 also has the ability to capture touch signals at or above the surface of the touch display 1005. The touch signal may be input to the processor 1001 as a control signal for processing. Touch display 1005 is used to provide virtual buttons and/or virtual keyboards, also known as soft buttons and/or soft keyboards. In some embodiments, the touch display 1005 may be one, with the front panel of the computer device 1000 disposed, in other embodiments, at least two touch display 1005 may be disposed on different surfaces of the computer device 1000 or in a folded design, respectively, and in some embodiments, the touch display 1005 may be a flexible display disposed on a curved surface or a folded surface of the computer device 1000. Even more, the touch display 1005 may be arranged in an irregular pattern other than rectangular, i.e., a shaped screen. The touch display 1005 may be made of LCD (Liquid CRYSTAL DISPLAY), OLED (Organic Light-Emitting Diode) or other materials.
The camera assembly 1006 is used to capture images or video. Optionally, camera assembly 1006 includes a front camera and a rear camera. In general, a front camera is used for realizing video call or self-photographing, and a rear camera is used for realizing photographing of pictures or videos. In some embodiments, the number of the rear cameras is at least two, and the rear cameras are any one of a main camera, a depth camera and a wide-angle camera, so as to realize fusion of the main camera and the depth camera to realize a background blurring function, and fusion of the main camera and the wide-angle camera to realize a panoramic shooting function and a Virtual Reality (VR) shooting function. In some embodiments, camera assembly 1006 may also include a flash. The flash lamp can be a single-color temperature flash lamp or a double-color temperature flash lamp. The dual-color temperature flash lamp refers to a combination of a warm light flash lamp and a cold light flash lamp, and can be used for light compensation under different color temperatures.
Audio circuitry 1007 is used to provide an audio interface between the user and computer device 1000. The audio circuit 1007 may include a microphone and a speaker. The microphone is used for collecting sound waves of users and environments, converting the sound waves into electric signals, and inputting the electric signals to the processor 1001 for processing, or inputting the electric signals to the radio frequency circuit 1004 for voice communication. For purposes of stereo acquisition or noise reduction, the microphone may be multiple, each disposed at a different location of the computer device 1000. The microphone may also be an array microphone or an omni-directional pickup 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 conventional thin film speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, not only the electric signal can be converted into a sound wave audible to humans, but also the electric signal can be converted into a sound wave inaudible to humans for ranging and other purposes. In some embodiments, audio circuit 1007 may also include a headphone jack.
The power supply 1008 is used to power the various components in the computer device 1000. The power supply 1008 may be an alternating current, a direct current, a disposable battery, or a rechargeable battery. When the power supply 1008 includes a rechargeable battery, the rechargeable battery may be a wired rechargeable battery or a wireless rechargeable battery. The wired rechargeable battery is a battery charged through a wired line, and the wireless rechargeable battery is a battery charged through a wireless coil. The rechargeable battery may also be used to support fast charge technology.
In some embodiments, the computer device 1000 also includes one or more sensors 1009. The one or more sensors 1009 include, but are not limited to, an acceleration sensor 1010, a gyroscope sensor 1011, a pressure sensor 1012, an optical sensor 1013, and a proximity sensor 1014.
The acceleration sensor 1010 can detect the magnitudes of accelerations on three coordinate axes of a coordinate system established with the computer device 1000. For example, the acceleration sensor 1010 may be used to detect components of gravitational acceleration in three coordinate axes. The processor 1001 may control the touch display 1005 to display a user interface in a landscape view or a portrait view according to the gravitational acceleration signal acquired by the acceleration sensor 1010. The acceleration sensor 1010 may also be used for the acquisition of motion data of a game or a user.
The gyro sensor 1011 may detect a body direction and a rotation angle of the computer apparatus 1000, and the gyro sensor 1011 may collect a 3D motion of the user on the computer apparatus 1000 in cooperation with the acceleration sensor 1010. The processor 1001 can realize functions such as motion sensing (e.g., changing a UI according to a tilting operation of a user), image stabilization at photographing, game control, and inertial navigation, based on data acquired by the gyro sensor 1011.
Pressure sensor 1012 may be disposed on a side frame of computer device 1000 and/or on an underlying layer of touch display 1005. When the pressure sensor 1012 is provided at a side frame of the computer device 1000, a grip signal of the computer device 1000 by a user may be detected, and left-right hand recognition or quick operation may be performed according to the grip signal. When the pressure sensor 1012 is disposed at the lower layer of the touch display screen 1005, control of the operability control on the UI interface can be achieved according to the pressure operation of the user on the touch display screen 1005. The operability controls include at least one of a button control, a scroll bar control, an icon control, and a menu control.
The optical sensor 1013 is used to collect the intensity of the ambient light. In one embodiment, the processor 1001 may control the display brightness of the touch display 1005 based on the ambient light intensity collected by the optical sensor 1013. Specifically, the display luminance of the touch display 1005 is turned up when the ambient light intensity is high, and the display luminance of the touch display 1005 is turned down when the ambient light intensity is low. In another embodiment, the processor 1001 may also dynamically adjust the shooting parameters of the camera module 1006 according to the ambient light intensity collected by the optical sensor 1013.
A proximity sensor 1014, also known as a distance sensor, is typically provided 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 one embodiment, the processor 1001 controls the touch display 1005 to switch from the on-screen state to the off-screen state when the proximity sensor 1014 detects a gradual decrease in the distance between the user and the front of the computer device 1000, and controls the touch display 1005 to switch from the off-screen state to the on-screen state when the proximity sensor 1014 detects a gradual increase in the distance between the user and the front of the computer device 1000.
Those skilled in the art will appreciate that the architecture shown in fig. 15 is not limiting of the computer device and may include more or fewer components than shown, or may combine certain components, or employ a different arrangement of components.
In an exemplary embodiment, the present application further provides a chip, where the chip includes a programmable logic circuit and/or computer instructions, and when the chip is run on a computer device, the chip is configured to implement the method for displaying a performance report provided by the method embodiment.
The embodiment of the application also provides a computer readable storage medium, which stores a computer program, and the computer program is loaded and executed by a processor to realize the method for displaying the performance report provided by the embodiment of the method.
Embodiments of the present application also provide a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the 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 loads and executes the computer device to implement the method for displaying the performance report provided by the method embodiment.
The foregoing embodiment numbers of the present application are merely for the purpose of description, and do not represent the advantages or disadvantages of the embodiments.
Those of ordinary skill in the art will appreciate that all or a portion of the steps implementing the above embodiments may be implemented by hardware, or may be implemented by a program for instructing relevant hardware, where the program may be stored in a computer readable storage medium, and the above mentioned computer readable storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
Those skilled in the art will appreciate that in one or more of the examples described above, the functions described in the embodiments of the present application may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, these functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer.
The foregoing description of the preferred embodiments of the present application is not intended to limit the application, but rather, the application is to be construed as limited to the appended claims.