Stuttering location method, device, equipment and storage medium based on performance data

By acquiring and separating the performance data of the terminal device and positioning a subset of the performance data of the lagging frame, the problem of difficulty in quickly positioning the lagging condition of the terminal device in the prior art is solved, and the efficiency of performance optimization is improved.

CN119759732APending Publication Date: 2025-04-04TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311293524.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-28
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

The prior art is difficult to quickly locate the lag of terminal equipment, resulting in low performance optimization efficiency.

Method used

By acquiring the performance data set of the terminal device, a subset of the performance data of the lag frame is separated, and the lag status of the terminal device is located based on the subset.

Benefits of technology

It realizes the direct positioning of lags based on performance data of terminal devices, improves the efficiency of performance optimization, and helps developers optimize terminal devices and applications in a timely manner.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119759732A_ABST
    Figure CN119759732A_ABST
Patent Text Reader

Abstract

The present application discloses a method, device, equipment and storage medium for locating jams based on performance data, which belongs to the field of data analysis technology. The method includes: obtaining a performance data set of the terminal device, the performance data set is used to indicate the operating status of the terminal device when running an application; separating the performance data set to obtain a performance data subset of a jammed frame; based on the performance data subset of the jammed frame, locating the jamming condition of the terminal device when running the application. The method can locate the jamming condition based on the performance data of the terminal device, which is helpful to help improve the efficiency of developers in optimizing the performance of the terminal device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data analysis technology, and in particular to a method, device, equipment and storage medium for locating jams based on performance data. Background Art

[0002] With the advancement of technology, the use of terminal devices has gradually become popular in production and life. For example, users can use mobile phones to carry out instant messaging, obtain information, participate in online games, etc. However, due to the different performance of different terminal devices, users may experience problems such as long time to enter the information web page, poor instant messaging signal, and video freezes when using terminal devices.

[0003] In the related art, performance data of terminal devices are sampled and the sampled performance data are analyzed, thereby achieving targeted optimization of terminal devices with poor performance.

[0004] However, the above method has certain limitations when analyzing the sampled performance data, and thus cannot quickly locate the jamming condition based on the performance data of the terminal device. Summary of the invention

[0005] The present application provides a method, device, equipment and storage medium for locating jamming based on performance data. The technical solution is as follows:

[0006] According to one aspect of the present application, a method for locating a jam based on performance data is provided, the method comprising:

[0007] Acquire a performance data set of the terminal device, where the performance data set is used to indicate a running status of the terminal device when running an application;

[0008] Separating the performance data set to obtain a performance data subset of a freeze frame;

[0009] Based on the performance data subset of the stuck frame, the stuck condition of the terminal device when running the application is located.

[0010] According to another aspect of the present application, a jamming location device based on performance data is provided, the device comprising:

[0011] An acquisition module, used to acquire a performance data set of the terminal device, wherein the performance data set is used to indicate the running status of the terminal device when running an application program;

[0012] A separation module, used to separate the performance data set to obtain a performance data subset of a freeze frame;

[0013] A positioning module is used to locate the jamming condition of the terminal device when running the application based on the performance data subset of the jamming frame.

[0014] According to another aspect of the present application, a computer device is provided, comprising: a processor and a memory, wherein at least one program is stored in the memory, and the at least one program is loaded and executed by the processor to implement the method for locating a jam based on performance data as described above.

[0015] According to another aspect of the present application, a computer-readable storage medium is provided, in which at least one program is stored. The at least one program is loaded and executed by a processor to implement the jamming location method based on performance data as described above.

[0016] According to another aspect of the present application, a computer program product is provided, which includes at least one program segment, and the at least one program segment is stored in a computer-readable storage medium; a processor of a computer device reads the at least one program segment from the computer-readable storage medium, and the processor executes the at least one program segment, so that the computer device executes the jamming location method based on performance data as described above.

[0017] The beneficial effects of the technical solution provided by this application include at least:

[0018] By acquiring a performance data set indicating the operating status of a terminal device when running an application, a performance data subset of a stuck frame is separated from the performance data set; based on the performance data subset of the stuck frame, the stuck condition of the terminal device when running the application is located, so that the stuck condition can be directly located based on the performance data of the terminal device, which is not only helpful for helping the developers of the terminal device to optimize the terminal device in a timely manner according to the stuck condition, but also helpful for helping the developers of the application to optimize the performance adaptation problems of the application and the terminal device in a timely manner, thereby achieving the goal of effectively improving the efficiency of performance optimization by directly locating the stuck frame. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0020] Figure 1 is a structural block diagram of a computer system provided by an exemplary embodiment of the present application;

[0021] Figure 2 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0022] Figure 3 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0023] Figure 4 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0024] Figure 5 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0025] Figure 6 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0026] Figure 7 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0027] Figure 8 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0028] Fig. 9 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0029] Fig.10 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0030] Fig.11 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0031] Fig.12 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0032] Fig.13 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0033] Fig.14 is a flow chart of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0034] Fig.15 is a schematic diagram of a jamming location method based on performance data provided by an exemplary embodiment of the present application;

[0035] Fig.16 is a block diagram of a device for locating a jam in performance data provided by an exemplary embodiment of the present application;

[0036] Fig.17 is a block diagram of a computer device provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0037] In order to make the purpose, technical scheme and advantages of the present application clearer, the implementation mode of the present application will be further described in detail below in conjunction with the accompanying drawings. The exemplary embodiments will be described in detail here, and examples thereof are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementation modes described in the following exemplary embodiments do not represent all implementation modes consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the attached claims.

[0038] The terms used in this application are for the purpose of describing specific embodiments only and are not intended to limit this application. The singular forms of "a", "said" and "the" used in this application and the appended claims are also intended to include plural forms unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.

[0039] It should be understood that although the terms first, second, third, etc. may be used in the present application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.

[0040] Figure 1 FIG. 1 is a block diagram of a computer system 100 provided by an exemplary embodiment of the present application. The computer system 100 includes: a terminal 120 and a server 140 .

[0041] The terminal 120 has installed and runs an application that supports the virtual world. The application can be any one of a three-dimensional map program, a virtual reality (VR) application, an augmented reality (AR) program, a role-playing game (RPG), a turn-based game program, and a turn-based RPG program. The virtual world is displayed (or provided) when the application is running on the terminal. The virtual world can be a simulation environment of the real world, a semi-simulated and semi-fictional environment, or a purely fictional environment. The virtual world can be any one of a two-dimensional virtual world, a 2.5-dimensional virtual world, and a three-dimensional virtual world, and this application does not limit this. The following embodiment takes the virtual world as an example of a three-dimensional virtual world.

[0042] It is worth noting that other applications are also installed and run in the terminal 120, and each application implements the same or different application functions on the terminal 120. In the embodiment of the present application, an example is given in which a game program supporting a virtual world is installed and run on the terminal 120.

[0043] The terminal 120 is connected to the server 140 via a wireless network or a wired network.

[0044] The server 140 includes at least one of a single server, multiple servers, a cloud computing platform, and a virtualization center. Exemplarily, the server 140 includes a processor 144 and a memory 142, and the memory 142 further includes an acquisition module 1422 and an analysis module 1424, wherein the acquisition module 1422 is used to acquire performance data indicating the operating status of the terminal 120 when running different applications; and the analysis module 1424 is used to analyze the acquired performance data indicating the operating status of the terminal 120 when running different applications. The server 140 is also used to provide background services for applications that support the virtual world. Optionally, the server 140 undertakes the main computing work and the terminal 120 undertakes the secondary computing work; or, the server 140 undertakes the secondary computing work and the terminal 120 undertakes the main computing work; or, the terminal 120 and the server 140 adopt a distributed computing architecture for collaborative computing.

[0045] Optionally, the terminal 120 may generally refer to one of a plurality of terminals, and this embodiment is only illustrated by the terminal 120. The device type of the terminal 120 includes at least one of a smart phone, a smart watch, a smart TV, a tablet computer, an e-book reader, an MP3 player, an MP4 player, a laptop computer, and a desktop computer. The following embodiments are illustrated by taking the terminal 120 as an example including a smart phone.

[0046] Those skilled in the art will appreciate that the number of the above terminals may be more or less. For example, the above terminal may be only one, or the above terminals may be dozens or hundreds, or more. The embodiment of the present application does not limit the number of terminals and device types.

[0047] Figure 2 is a flowchart of a method for locating a jam based on performance data provided by an exemplary embodiment of the present application. Optionally, the method comprises Figure 1 The terminal 120 shown is executed. The method includes:

[0048] Step 220: Acquire a performance data set of the terminal device;

[0049] In some embodiments, the performance data set is used to indicate the operating status of the terminal device when running the application. Optionally, the operating status includes at least one of a data storage status, a data jam status, and a data compatibility status.

[0050] Optionally, the performance data set is used to indicate the data access status of the terminal device when running the application program. For example, the performance data set indicates at least one of the storage rate, storage data volume, and storage path of the terminal device when running the game program.

[0051] Optionally, the performance data set is used to indicate a data jamming condition of the terminal device when running an application program. For example, the performance data set indicates that the terminal device will experience jamming in a first time period when running a game program, and the first time period may be a time period for loading a game or a time period during a game match.

[0052] Optionally, the performance data set is used to indicate the data compatibility status of the terminal device when running an application program. For example, the performance data set indicates that the terminal device is not compatible when running a game program.

[0053] In some embodiments, the performance data set includes performance data corresponding to all applications in the terminal device. In some embodiments, the performance data set includes performance data corresponding to some applications in the terminal device. In the embodiment of the present application, the performance data set includes performance data corresponding to a game program in the terminal device as an example for illustration.

[0054] In some embodiments, a performance analysis program is installed and run in the terminal device, and the performance analysis program is used to analyze the performance data set of the terminal device. In some embodiments, the performance analysis program includes at least one of an import function, an export function, and a sampling function. For example, Figure 3As shown, the performance analysis program provides an import function through an import control 11 , provides an export function through an export control 12 , and provides a sampling function through a sampling control 13 .

[0055] Optionally, when the performance analysis program includes a sampling function, the performance data set of the terminal device is obtained through the performance analysis program.

[0056] In some embodiments, the performance data set is used to draw a performance data curve graph. Based on the performance data set, a performance data curve graph is obtained. The performance data curve graph is used to indicate the jamming reference data corresponding to the performance data set, and the jamming reference data includes at least one of a frame rate and a single frame duration, and the frame rate and the single frame duration are used to indicate the jamming situation of the data corresponding to the performance data set. For example, Figure 3 As shown, based on the performance data set, the frame rate curve is obtained Fig.14 And single frame time curve Fig.15 .

[0057] In some embodiments, the frame rate and single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0058] Step 240: Separate the performance data set to obtain a performance data subset of the freeze frame;

[0059] In some embodiments, the performance data subset of the stuck frame corresponds to the performance data of the stuck condition of the terminal device when running the application. It should be understood that the performance data subset of the stuck frame is a performance data set with frame granularity. For example, Figure 4 As shown, the performance data set is separated based on the frame granularity to obtain n data frames, where the value of n is a positive integer greater than 0. Among them, the n data frames include k jamming frames. The performance data subset of the jamming frame includes the performance data subset corresponding to jamming frame 1, the performance data subset corresponding to jamming frame 2, and the performance data subset corresponding to jamming frame k, where the value of k is a positive integer greater than 0.

[0060] In some embodiments, the performance data set is separated by a performance analysis program in the terminal device. The performance data set of the terminal device is imported into the performance analysis program through an import function in the performance analysis program, and the imported performance data set is separated by the performance analysis program to obtain a performance data subset of the stuck frame.

[0061] Step 260: Based on the performance data subset of the stuck frame, locate the stuck condition of the terminal device when running the application.

[0062] In some embodiments, based on the performance data subset of the jammed frame, the position of the performance data subset of the jammed frame in the performance data set is determined. Figure 4 As shown, based on the performance data subsets of k jamming frames, the position of the performance data subset corresponding to each of the k jamming frames in the performance data set is determined respectively. For example, the position of the performance data subset corresponding to jamming frame 1 in the performance data set is determined to be position 1, the position of the performance data subset corresponding to jamming frame 2 in the performance data set is determined to be position 2, and until the position of the performance data subset corresponding to jamming frame k in the performance data set is determined to be position k.

[0063] In some embodiments, based on the position of the performance data subset of the stuck frame in the performance data set, the stuck position of the terminal device when running the application is located. The stuck position includes at least one of the stuck time position of the terminal device when running the application and the stuck program position of the terminal device when running the application.

[0064] Optionally, the jamming position includes the jamming time position of the terminal device when running the application. It should be understood that the jamming time position is the position within the time period when the terminal device runs the application, and the jamming time position within the time period when the terminal device runs the application is located based on the position of the performance data subset of the jamming frame in the performance data set. For example, the time period for the terminal device to run the game program is 20 minutes, and the data length of the corresponding performance data set is 10 data frames. When it is determined that the position of the performance data subset of the jamming frame in the performance data set is the position of the 6th data frame, the jamming time position when the terminal device runs the application is located as the 12th minute.

[0065] Optionally, the stuck position includes a stuck program position when the terminal device is running an application. It should be understood that the stuck program position is a stuck position in the application running on the terminal device, and the stuck position in the application running on the terminal device is located based on the position of the performance data subset of the stuck frame in the performance data set.

[0066] To summarize, the method provided in this embodiment obtains a performance data set indicating the operating status of the terminal device when running an application, and separates a performance data subset of the freeze frame from the performance data set; based on the performance data subset of the freeze frame, the freeze condition of the terminal device when running the application is located, so that the freeze condition can be directly located based on the performance data of the terminal device, which is not only conducive to helping the developers of the terminal device to optimize the terminal device in time according to the freeze condition, but also conducive to helping the developers of the application to optimize the performance adaptation problems of the application and the terminal device in time, thereby achieving the direct location of the freeze frame to help effectively improve the efficiency of performance optimization.

[0067] In some embodiments, Figure 5 As shown, the above step 240 can be replaced by the following sub-steps:

[0068] Step 242: Separate the performance data set based on the frame granularity to obtain n-frame performance data subsets;

[0069] In some embodiments, the performance data in the performance data set correspond to the same data format. Figure 6 As shown, assuming that the performance data set includes j performance data, the data format of each performance data includes: time, thread ID, call chain, function 1 to function i, number of event collection times, event type, and at least one of stack expansion results, the value of j is a positive integer greater than 0, and the value of i is a positive integer greater than 0.

[0070] It is worth noting that the minimum unit corresponding to the performance data in the performance data set is an individual or a group, that is, the above performance data set includes j groups of performance data. In the embodiment of the present application, the minimum unit is an individual for example.

[0071] Optionally, the data lengths corresponding to each performance data are the same. Optionally, the data lengths corresponding to each performance data are different. In the embodiment of the present application, an example is given in which the data lengths corresponding to each performance data are the same.

[0072] In some embodiments, a performance function corresponding to a performance data set is determined. That is, a performance function corresponding to all performance data in the performance data set is determined. The performance function is the same function corresponding to all performance data. Exemplarily, the performance function is function 1 corresponding to performance data 1 until function 1 corresponding to performance data j.

[0073] In some embodiments, the performance data set is separated based on the frame granularity, and the performance data after the nth call of the performance function and before the n+1th call of the performance function is determined as the nth frame performance data subset. Figure 7As shown, the performance data 1 to the performance data r after the first call of the performance function and before the second call of the performance function are determined as the first frame performance data subset, and the value of r is a positive integer greater than 0. Until the performance data s to the performance data j after the nth call of the performance function and before the n+1th call of the performance function are determined as the nth frame performance data subset, and the value of s is a positive integer greater than 0.

[0074] It is worth noting that the data length of each frame performance data subset may be the same or different. For example, the first frame performance data subset includes performance data 1 to performance data 5, that is, the data length of the first frame performance data subset is the data length corresponding to 5 performance data; the second frame performance data subset includes performance data 6 to performance data 12, that is, the data length corresponding to the second frame performance data subset is the data length corresponding to 7 performance data. In the embodiment of the present application, the data length corresponding to each frame performance data subset is the same as an example for illustration.

[0075] In some embodiments, n frame performance data subsets are obtained based on the 1st frame performance data subset to the nth frame performance data subset.

[0076] Step 244: Based on the freeze reference data corresponding to each frame performance data subset in the n frame performance data subsets, separate the performance data subset of the freeze frame.

[0077] In some embodiments, each frame performance data subset in the n frame performance data subsets corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0078] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0079] In some embodiments, based on the frame rate corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0080] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0081] In some embodiments, based on the single frame duration corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0082] In some embodiments, based on the frame rate and single-frame duration corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0083] In some embodiments, Figure 8 As shown, the above step 244 can also be replaced by the following sub-steps:

[0084] Step 2442: Selecting a continuous m-frame performance data subset from the n-frame performance data subset;

[0085] In some embodiments, the m-frame performance data subset is any part of the n-frame performance data subset, and the value of m is a positive integer greater than 0 and less than or equal to n.

[0086] In some embodiments, a set of target performance data subsets is selected from the n-frame performance data subsets, and the target performance data subsets include consecutive m-frame performance data subsets.

[0087] In some embodiments, any group of target performance data subsets is selected from n-frame performance data subsets, and each group of target performance data subsets includes continuous m-frame performance data subsets. It is worth noting that the data lengths in each group of target performance data subsets may be the same or different. For example, the data length in the first group of target performance data subsets corresponds to 3-frame performance data subsets, the data length in the second group of target performance data subsets corresponds to 3-frame performance data subsets, and the data length in the third group of target performance data subsets corresponds to 5-frame performance data subsets.

[0088] Step 2444: Based on the freeze reference data corresponding to each frame performance data subset in the m-frame performance data subset, separate the performance data subset of the freeze frame in the m-frame performance data subset.

[0089] In some embodiments, each frame performance data subset in the m frame performance data subset corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0090] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0091] In some embodiments, based on the frame rate corresponding to each frame performance data subset in the m frame performance data subset, a performance data subset of a stuck frame is separated. The frame rate corresponding to each frame performance data subset in the m frame performance data subset is compared with a frame rate threshold, and an x ​​frame performance data subset whose frame rate is less than the frame rate threshold is determined as a performance data subset of a stuck frame, where the value of x is a positive integer greater than 0 and less than or equal to m.

[0092] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0093] In some embodiments, based on the single frame duration corresponding to each frame performance data subset in the m frame performance data subset, the performance data subset of the stuck frame is separated. The single frame duration corresponding to each frame performance data subset in the m frame performance data subset is compared with the single frame duration threshold, and the y frame performance data subsets whose single frame duration is greater than the single frame duration threshold are determined as the performance data subset of the stuck frame, where the value of y is a positive integer greater than 0 and less than or equal to m.

[0094] In some embodiments, based on the frame rate and single frame duration corresponding to each frame performance data subset in the m-frame performance data subset, a performance data subset of a stuck frame is separated. The frame rate corresponding to each frame performance data subset in the m-frame performance data subset is compared with a frame rate threshold, and the single frame duration corresponding to each frame performance data subset in the m-frame performance data subset is compared with a single frame duration threshold, and a t-frame performance data subset whose frame rate is less than the frame rate threshold and whose single frame duration is greater than the single frame duration threshold is determined as a performance data subset of a stuck frame.

[0095] To summarize, the method provided in this embodiment, by separating the performance data subset of the stuck frame from the performance data set, makes it possible to directly locate the stuck condition based on the performance data of the terminal device. This is not only helpful in helping the developers of the terminal device to optimize the terminal device in a timely manner according to the stuck condition, but also helpful in helping the developers of the application program to timely optimize the performance adaptation issues of the application program and the terminal device, thereby achieving the goal of effectively improving the efficiency of performance optimization by directly locating the stuck frame.

[0096] Fig. 9 is a flowchart of a method for locating a jam based on performance data provided by an exemplary embodiment of the present application. Optionally, the method comprises Figure 1 The terminal 120 shown is executed. The method also includes:

[0097] Step 320: Based on at least two performance data sets, compare the running conditions of the terminal device when running the application in different time periods.

[0098] It is worth noting that the above step 320 is performed after step 220. That is, step 320 is performed when at least two sets of performance data of the terminal device are obtained.

[0099] In some embodiments, each of the at least two performance data sets is used to indicate the operating status of the terminal device when running the application in different time periods. Exemplarily, it is assumed that two performance data sets of the terminal device are obtained, including performance data set 1 and performance data set 2; performance data set 1 is used to indicate the operating status of the terminal device running the application in time period 1; performance data set 2 is used to indicate the operating status of the terminal device running the application in time period 2.

[0100] In some embodiments, Fig.10 As shown, the above step 320 can be replaced by the following sub-steps:

[0101] Step 322: performing statistics on each of the at least two performance data sets to obtain a data statistical result corresponding to each performance data set;

[0102] In some embodiments, based on the data format corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistical results corresponding one-to-one to each performance data set.

[0103] In some embodiments, the data statistics are used to indicate all performance data in each performance data set.

[0104] In some embodiments, the form of the data statistical result includes at least one of a tree structure and a table structure. The form of the data statistical result corresponding to each performance data set is the same or different. For example, the form of the data statistical result 1 corresponding to the first performance data set is a tree structure, the form of the data statistical result 2 corresponding to the second performance data set is a tree structure, and the form of the data statistical result 3 corresponding to the third performance data set is a table structure.

[0105] Optionally, based on the function corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistics results in a tree structure corresponding to each performance data set. For example, Fig.11 As shown, based on all functions corresponding to all performance data in the performance data set 1, data statistics results based on a tree structure composed of functions are obtained.

[0106] Optionally, based on the threads corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistics results in a table structure corresponding to each performance data set. For example, Fig.12 As shown, based on all threads corresponding to all performance data in performance data set 2, data statistics results in a table structure based on threads are obtained.

[0107] Step 324: Based on the data statistics results, the running status of the terminal device when running the application in different time periods is compared.

[0108] In some embodiments, each data statistical result corresponds to each performance data set, and each performance data set is used to indicate the operating status of the terminal device when running the application in different time periods. That is, each data statistical result is used to indicate the operating status of the terminal device when running the application in different time periods.

[0109] In some embodiments, at least two data statistical results are selected from all data statistical results, and based on the selected at least two data statistical results, the running conditions of the terminal device when running the application in the time period corresponding to the at least two data statistical results are compared. Exemplarily, data statistical result 1 corresponding to performance data set 1 and data statistical result 2 corresponding to performance data set 2 are selected from all data statistical results, performance data set 1 is used to indicate the running condition of the terminal device running the application in time period 1, and performance data set 2 is used to indicate the running condition of the terminal device running the application in time period 2, and the running condition of the terminal device running the application in time period 1 and the running condition of the terminal device running the application in time period 2 are compared.

[0110] In some embodiments, the data structure of the data statistics results used to compare the running conditions of the terminal device when running the application in different time periods is the same. For example, the data statistics result 1 of the tree structure corresponding to the performance data set 1 and the data statistics result 2 of the tree structure corresponding to the performance data set 2 are selected from all the data statistics results, the performance data set 1 is used to indicate the running conditions of the terminal device running the application in time period 1, and the performance data set 2 is used to indicate the running conditions of the terminal device running the application in time period 2, and the running conditions of the terminal device running the application in time period 1 and the running conditions of the terminal device running the application in time period 2 are compared.

[0111] In some embodiments, based on the data statistics, the running conditions of the terminal device when running the application in different time periods are compared to obtain at least one comparison result. The comparison result is used to intuitively show the difference in the running conditions of the terminal device when running the application in different time periods. Optionally, the comparison result includes at least one of a comparison flame graph, a table comparison file, and a ladder comparison file.

[0112] For example, Fig.13 As shown, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a comparative flame graph; or, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a tabular comparison file; or, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a trapezoidal comparison file.

[0113] In summary, the method provided in this embodiment compares the operating conditions of the terminal device when running the application in different time periods based on at least two performance data sets. Through the comparison results of the operating conditions in different time periods, the problems of the terminal device in different time periods can be quickly located, which is conducive to the developer of the terminal device to timely discover the problems of the terminal device in different time periods and achieve more detailed optimization.

[0114] Fig.14 is a flowchart of a method for locating a jam based on performance data provided by an exemplary embodiment of the present application. Optionally, the method comprises Figure 1 The terminal 120 shown is executed. The method also includes:

[0115] Step 420: Determine the terminal type of the terminal device;

[0116] In some embodiments, the terminal type of the terminal device includes a first type and a second type, the first type of terminal device is a terminal device that supports sampling to obtain a performance data set, and the second type of terminal device is a terminal device that does not support sampling to obtain a performance data set.

[0117] In some embodiments, the process of sampling the first type of terminal device to obtain a performance data set is as follows: Fig.15 After the sampling process is started, it includes:

[0118] Step 21: Extract the permission to run the sampling program;

[0119] Step 22: Run the sampling authority determination instruction;

[0120] Step 23: Initialize and parse parameters;

[0121] Until all steps are completed.

[0122] In some embodiments, sampling to obtain a performance data set is not supported, including at least one of the following:

[0123] Does not support extracting permissions to run sampling programs;

[0124] ·Does not support running sampling permission determination instructions.

[0125] Optionally, the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, and the sampling program is used to sample and obtain a performance data set of the terminal device. That is, the second type of terminal device will have an error when executing step 21. It should be understood that the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, including: the second type of terminal device has an error when copying the execution file of the sampling program, resulting in the sampling program being unable to run on the second type of terminal device.

[0126] Optionally, the second type of terminal device is a terminal device that does not support the execution of the sampling authority determination instruction, and the sampling authority determination instruction is used to indicate that the terminal device has sampling authority. That is, the second type of terminal device will have an error when executing step 22.

[0127] Optionally, the second type of terminal device is a terminal device that does not support saving performance data sets and does not support running sampling authority determination instructions.

[0128] Step 440: When the terminal device is a terminal device of the second type, execute sampling logic for the terminal device of the second type.

[0129] In some embodiments, the sampling logic for the second type of terminal device is used to support the second type of terminal device to sample and obtain a performance data set.

[0130] In some embodiments, the sampling logic for the second type of terminal device includes at least one of the following:

[0131] A first sampling logic that supports a second type of terminal device to extract permission to run a sampling program;

[0132] A second sampling logic supporting a second type of terminal device to execute a target sampling authority determination instruction.

[0133] In some embodiments, when the terminal device is a second type of terminal device, the first sampling logic that supports the second type of terminal device to extract the permission to run the sampling program is executed. That is, when the terminal device is a second type of terminal device, the above step 21 cannot be executed or an error is reported when executing the above step 21, and the first sampling logic is executed at this time. The file path that can be used to copy the execution file of the sampling program is found from the second type of terminal device, so that the second type of terminal device can correctly copy the execution file of the sampling program, thereby extracting the permission to run the sampling program.

[0134] In some embodiments, when the terminal device is a terminal device of the second type, a second sampling logic supporting the second type of terminal device to execute the target sampling authority determination instruction is executed. That is, when the terminal device is a terminal device of the second type, the above step 22 cannot be executed or an error is reported when executing the above step 22, and the second sampling logic is executed at this time. The target sampling authority determination instruction is executed in the terminal device of the second type, so that it can be determined that the terminal device of the second type has the sampling authority.

[0135] In some embodiments, when the terminal device is a second type of terminal device, a first sampling logic that supports the second type of terminal device to extract permission to run a sampling program and a second sampling logic that supports the second type of terminal device to run a target sampling permission determination instruction are executed.

[0136] In some embodiments, the target sampling authority determination instruction is used to indicate that the second type of terminal device has sampling authority. It should be understood that the target sampling authority determination instruction is only used for the second type of terminal device, and the target sampling authority determination instruction is different from the sampling authority determination instruction used by the first type of terminal device.

[0137] To sum up, the method provided in this embodiment, by executing the sampling logic for the second type of terminal device when the terminal device is not a terminal device that does not support sampling to obtain a performance data set, enables sampling to obtain the performance data of the second type of terminal device even when the terminal device is of the second type.

[0138] Optionally, the above method is replaced by Figure 1 The server 140 shown is executed. The method includes:

[0139] Step 520: Acquire a performance data set of the terminal device;

[0140] In some embodiments, the performance data set is used to indicate the operating status of the terminal device when running the application. Optionally, the operating status includes at least one of a data storage status, a data jam status, and a data compatibility status.

[0141] Optionally, the performance data set is used to indicate the data access status of the terminal device when running the application program. For example, the performance data set indicates at least one of the storage rate, storage data volume, and storage path of the terminal device when running the game program.

[0142] Optionally, the performance data set is used to indicate a data jamming condition of the terminal device when running an application program. For example, the performance data set indicates that the terminal device will experience jamming in a first time period when running a game program, and the first time period may be a time period for loading a game or a time period during a game match.

[0143] Optionally, the performance data set is used to indicate the data compatibility status of the terminal device when running an application program. For example, the performance data set indicates that the terminal device is not compatible when running a game program.

[0144] In some embodiments, the performance data set includes performance data corresponding to all applications in the terminal device. In some embodiments, the performance data set includes performance data corresponding to some applications in the terminal device. In the embodiment of the present application, the performance data set includes performance data corresponding to a game program in the terminal device as an example for illustration.

[0145] In some embodiments, a performance analysis program is installed and run in the terminal device, and the performance analysis program is used to analyze the performance data set of the terminal device. In some embodiments, the performance analysis program includes at least one of an import function, an export function, and a sampling function. For example, Figure 3 As shown, the performance analysis program provides an import function through an import control 11 , provides an export function through an export control 12 , and provides a sampling function through a sampling control 13 .

[0146] Optionally, when the performance analysis program includes a sampling function, the performance data set of the terminal device is obtained through the performance analysis program.

[0147] In some embodiments, the performance data set is used to draw a performance data curve graph. Based on the performance data set, a performance data curve graph is obtained. The performance data curve graph is used to indicate the jamming reference data corresponding to the performance data set, and the jamming reference data includes at least one of a frame rate and a single frame duration, and the frame rate and the single frame duration are used to indicate the jamming situation of the data corresponding to the performance data set. For example, Figure 3 As shown, based on the performance data set, the frame rate curve is obtained Fig.14 And single frame time curve Fig.15 .

[0148] In some embodiments, the frame rate and single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0149] Step 540: Separate the performance data set to obtain a performance data subset of the freeze frame;

[0150] In some embodiments, the performance data subset of the stuck frame corresponds to the performance data of the stuck condition of the terminal device when running the application. It should be understood that the performance data subset of the stuck frame is a performance data set with frame granularity. For example, Figure 4As shown, the performance data set is separated based on the frame granularity to obtain n data frames, where the value of n is a positive integer greater than 0. Among them, the n data frames include k jamming frames. The performance data subset of the jamming frame includes the performance data subset corresponding to jamming frame 1, the performance data subset corresponding to jamming frame 2, and the performance data subset corresponding to jamming frame k, where the value of k is a positive integer greater than 0.

[0151] In some embodiments, the performance data set is separated by a performance analysis program in the terminal device. The performance data set of the terminal device is imported into the performance analysis program through an import function in the performance analysis program, and the imported performance data set is separated by the performance analysis program to obtain a performance data subset of the stuck frame.

[0152] Step 560: Based on the performance data subset of the stuck frame, locate the stuck condition of the terminal device when running the application.

[0153] In some embodiments, based on the performance data subset of the jammed frame, the position of the performance data subset of the jammed frame in the performance data set is determined. Figure 4 As shown, based on the performance data subsets of k jamming frames, the position of the performance data subset corresponding to each of the k jamming frames in the performance data set is determined respectively. For example, the position of the performance data subset corresponding to jamming frame 1 in the performance data set is determined to be position 1, the position of the performance data subset corresponding to jamming frame 2 in the performance data set is determined to be position 2, and until the position of the performance data subset corresponding to jamming frame k in the performance data set is determined to be position k.

[0154] In some embodiments, based on the position of the performance data subset of the freeze frame in the performance data set, the freeze position of the terminal device when running the application is located.

[0155] Optionally, the jamming position includes the jamming time position of the terminal device when running the application. It should be understood that the jamming time position is the position within the time period when the terminal device runs the application, and the jamming time position within the time period when the terminal device runs the application is located based on the position of the performance data subset of the jamming frame in the performance data set. For example, the time period for the terminal device to run the game program is 20 minutes, and the data length of the corresponding performance data set is 10 data frames. When it is determined that the position of the performance data subset of the jamming frame in the performance data set is the position of the 6th data frame, the jamming time position when the terminal device runs the application is located as the 12th minute.

[0156] Optionally, the stuck position includes a stuck program position when the terminal device is running an application. It should be understood that the stuck program position is a stuck position in the application running on the terminal device, and the stuck position in the application running on the terminal device is located based on the position of the performance data subset of the stuck frame in the performance data set.

[0157] To summarize, the method provided in this embodiment obtains a performance data set indicating the operating status of the terminal device when running an application, and separates a performance data subset of the freeze frame from the performance data set; based on the performance data subset of the freeze frame, the freeze condition of the terminal device when running the application is located, so that the freeze condition can be directly located based on the performance data of the terminal device, which is not only conducive to helping the developers of the terminal device to optimize the terminal device in time according to the freeze condition, but also conducive to helping the developers of the application to optimize the performance adaptation problems of the application and the terminal device in time, thereby achieving the direct location of the freeze frame to help effectively improve the efficiency of performance optimization.

[0158] In some embodiments, the above step 540 can be replaced by the following sub-steps:

[0159] Step 542: Separate the performance data set based on the frame granularity to obtain n-frame performance data subsets;

[0160] In some embodiments, the performance data in the performance data set correspond to the same data format. Figure 6 As shown, assuming that the performance data set includes j performance data, the data format of each performance data includes: time, thread ID, call chain, function 1 to function i, number of event collection times, event type, and at least one of stack expansion results, the value of j is a positive integer greater than 0, and the value of i is a positive integer greater than 0.

[0161] It is worth noting that the minimum unit corresponding to the performance data in the performance data set is an individual or a group, that is, the above performance data set includes j groups of performance data. In the embodiment of the present application, the minimum unit is an individual for example.

[0162] Optionally, the data lengths corresponding to each performance data are the same. Optionally, the data lengths corresponding to each performance data are different. In the embodiment of the present application, an example is given in which the data lengths corresponding to each performance data are the same.

[0163] In some embodiments, a performance function corresponding to a performance data set is determined. That is, a performance function corresponding to all performance data in the performance data set is determined. The performance function is the same function corresponding to all performance data. Exemplarily, the performance function is function 1 corresponding to performance data 1 until function 1 corresponding to performance data j.

[0164] In some embodiments, the performance data set is separated based on the frame granularity, and the performance data after the nth call of the performance function and before the n+1th call of the performance function is determined as the nth frame performance data subset. Figure 7 As shown, the performance data 1 to the performance data r after the first call of the performance function and before the second call of the performance function are determined as the first frame performance data subset, and the value of r is a positive integer greater than 0. Until the performance data s to the performance data j after the nth call of the performance function and before the n+1th call of the performance function are determined as the nth frame performance data subset, and the value of s is a positive integer greater than 0.

[0165] It is worth noting that the data length of each frame performance data subset may be the same or different. For example, the first frame performance data subset includes performance data 1 to performance data 5, that is, the data length of the first frame performance data subset is the data length corresponding to 5 performance data; the second frame performance data subset includes performance data 6 to performance data 12, that is, the data length corresponding to the second frame performance data subset is the data length corresponding to 7 performance data. In the embodiment of the present application, the data length corresponding to each frame performance data subset is the same as an example for illustration.

[0166] In some embodiments, n frame performance data subsets are obtained based on the 1st frame performance data subset to the nth frame performance data subset.

[0167] Step 544: Based on the freeze reference data corresponding to each frame performance data subset in the n frame performance data subsets, separate the performance data subset of the freeze frame.

[0168] In some embodiments, each frame performance data subset in the n frame performance data subsets corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0169] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0170] In some embodiments, based on the frame rate corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0171] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0172] In some embodiments, based on the single frame duration corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0173] In some embodiments, based on the frame rate and single-frame duration corresponding to each frame performance data subset in the n frame performance data subsets, a performance data subset of the stuck frame is separated.

[0174] In some embodiments, the above step 544 may also be replaced by the following sub-steps:

[0175] Step 5442: Selecting a continuous m-frame performance data subset from the n-frame performance data subset;

[0176] In some embodiments, the m-frame performance data subset is any part of the n-frame performance data subset, and the value of m is a positive integer greater than 0 and less than or equal to n.

[0177] In some embodiments, a set of target performance data subsets is selected from the n-frame performance data subsets, and the target performance data subsets include consecutive m-frame performance data subsets.

[0178] In some embodiments, any group of target performance data subsets is selected from n-frame performance data subsets, and each group of target performance data subsets includes continuous m-frame performance data subsets. It is worth noting that the data lengths in each group of target performance data subsets may be the same or different. For example, the data length in the first group of target performance data subsets corresponds to 3-frame performance data subsets, the data length in the second group of target performance data subsets corresponds to 3-frame performance data subsets, and the data length in the third group of target performance data subsets corresponds to 5-frame performance data subsets.

[0179] Step 5444: Based on the freeze reference data corresponding to each frame performance data subset in the m-frame performance data subset, separate the performance data subset of the freeze frame in the m-frame performance data subset.

[0180] In some embodiments, each frame performance data subset in the m frame performance data subset corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0181] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0182] In some embodiments, based on the frame rate corresponding to each frame performance data subset in the m frame performance data subset, a performance data subset of a stuck frame is separated. The frame rate corresponding to each frame performance data subset in the m frame performance data subset is compared with a frame rate threshold, and an x ​​frame performance data subset whose frame rate is less than the frame rate threshold is determined as a performance data subset of a stuck frame, where the value of x is a positive integer greater than 0 and less than or equal to m.

[0183] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0184] In some embodiments, based on the single frame duration corresponding to each frame performance data subset in the m frame performance data subset, the performance data subset of the stuck frame is separated. The single frame duration corresponding to each frame performance data subset in the m frame performance data subset is compared with the single frame duration threshold, and the y frame performance data subsets whose single frame duration is greater than the single frame duration threshold are determined as the performance data subset of the stuck frame, where the value of y is a positive integer greater than 0 and less than or equal to m.

[0185] In some embodiments, based on the frame rate and single frame duration corresponding to each frame performance data subset in the m-frame performance data subset, a performance data subset of a stuck frame is separated. The frame rate corresponding to each frame performance data subset in the m-frame performance data subset is compared with a frame rate threshold, and the single frame duration corresponding to each frame performance data subset in the m-frame performance data subset is compared with a single frame duration threshold, and a t-frame performance data subset whose frame rate is less than the frame rate threshold and whose single frame duration is greater than the single frame duration threshold is determined as a performance data subset of a stuck frame.

[0186] To summarize, the method provided in this embodiment, by separating the performance data subset of the stuck frame from the performance data set, makes it possible to directly locate the stuck condition based on the performance data of the terminal device. This is not only helpful in helping the developers of the terminal device to optimize the terminal device in a timely manner according to the stuck condition, but also helpful in helping the developers of the application program to timely optimize the performance adaptation issues of the application program and the terminal device, thereby achieving the goal of effectively improving the efficiency of performance optimization by directly locating the stuck frame.

[0187] Optionally, the above method is replaced by Figure 1 The server 140 shown is executed. The method also includes:

[0188] Step 620: Based on at least two performance data sets, compare the running conditions of the terminal device when running the application in different time periods.

[0189] It is worth noting that the above step 620 is performed after step 520. That is, step 620 is performed when at least two sets of performance data of the terminal device are obtained.

[0190] In some embodiments, each of the at least two performance data sets is used to indicate the operating status of the terminal device when running the application in different time periods. Exemplarily, it is assumed that two performance data sets of the terminal device are obtained, including performance data set 1 and performance data set 2; performance data set 1 is used to indicate the operating status of the terminal device running the application in time period 1; performance data set 2 is used to indicate the operating status of the terminal device running the application in time period 2.

[0191] In some embodiments, the above step 620 can be replaced by the following sub-steps:

[0192] Step 622: performing statistics on each of the at least two performance data sets to obtain a data statistics result corresponding to each performance data set;

[0193] In some embodiments, based on the data format corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistical results corresponding one-to-one to each performance data set.

[0194] In some embodiments, the data statistics are used to indicate all performance data in each performance data set.

[0195] In some embodiments, the form of the data statistical result includes at least one of a tree structure and a table structure. The form of the data statistical result corresponding to each performance data set is the same or different. For example, the form of the data statistical result 1 corresponding to the first performance data set is a tree structure, the form of the data statistical result 2 corresponding to the second performance data set is a tree structure, and the form of the data statistical result 3 corresponding to the third performance data set is a table structure.

[0196] Optionally, based on the function corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistics results in a tree structure corresponding to each performance data set. For example, Fig.11 As shown, based on all functions corresponding to all performance data in the performance data set 1, data statistics results based on a tree structure composed of functions are obtained.

[0197] Optionally, based on the threads corresponding to each of the at least two performance data sets, statistics are performed on each of the at least two performance data sets to obtain data statistics results in a table structure corresponding to each performance data set. For example, Fig.12 As shown, based on all threads corresponding to all performance data in performance data set 2, data statistics results in a table structure based on threads are obtained.

[0198] Step 624: Based on the data statistics results, the running status of the terminal device when running the application in different time periods is compared.

[0199] In some embodiments, each data statistical result corresponds to each performance data set, and each performance data set is used to indicate the operating status of the terminal device when running the application in different time periods. That is, each data statistical result is used to indicate the operating status of the terminal device when running the application in different time periods.

[0200] In some embodiments, at least two data statistical results are selected from all data statistical results, and based on the selected at least two data statistical results, the running conditions of the terminal device when running the application in the time period corresponding to the at least two data statistical results are compared. Exemplarily, data statistical result 1 corresponding to performance data set 1 and data statistical result 2 corresponding to performance data set 2 are selected from all data statistical results, performance data set 1 is used to indicate the running condition of the terminal device running the application in time period 1, and performance data set 2 is used to indicate the running condition of the terminal device running the application in time period 2, and the running condition of the terminal device running the application in time period 1 and the running condition of the terminal device running the application in time period 2 are compared.

[0201] In some embodiments, the data structure of the data statistics results used to compare the running conditions of the terminal device when running the application in different time periods is the same. For example, the data statistics result 1 of the tree structure corresponding to the performance data set 1 and the data statistics result 2 of the tree structure corresponding to the performance data set 2 are selected from all the data statistics results, the performance data set 1 is used to indicate the running conditions of the terminal device running the application in time period 1, and the performance data set 2 is used to indicate the running conditions of the terminal device running the application in time period 2, and the running conditions of the terminal device running the application in time period 1 and the running conditions of the terminal device running the application in time period 2 are compared.

[0202] In some embodiments, based on the data statistics, the running conditions of the terminal device when running the application in different time periods are compared to obtain at least one comparison result. The comparison result is used to intuitively show the difference in the running conditions of the terminal device when running the application in different time periods. Optionally, the comparison result includes at least one of a comparison flame graph, a table comparison file, and a ladder comparison file.

[0203] For example, Fig.13 As shown, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a comparative flame graph; or, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a tabular comparison file; or, based on the data statistical results, the operating conditions of the terminal devices when running the application in different time periods are compared to obtain a trapezoidal comparison file.

[0204] In summary, the method provided in this embodiment compares the operating conditions of the terminal device when running the application in different time periods based on at least two performance data sets. Through the comparison results of the operating conditions in different time periods, the problems of the terminal device in different time periods can be quickly located, which is conducive to the developer of the terminal device to timely discover the problems of the terminal device in different time periods and achieve more detailed optimization.

[0205] Optionally, the above method is replaced by Figure 1 The server 140 shown is executed. The method also includes:

[0206] Step 720: Determine the terminal type of the terminal device;

[0207] In some embodiments, the terminal type of the terminal device includes a first type and a second type, the first type of terminal device is a terminal device that supports sampling to obtain a performance data set, and the second type of terminal device is a terminal device that does not support sampling to obtain a performance data set.

[0208] In some embodiments, the process of sampling the first type of terminal device to obtain a performance data set is as follows: Fig.15 After the sampling process is started, it includes:

[0209] Step 21: Extract the permission to run the sampling program;

[0210] Step 22: Run the sampling authority determination instruction;

[0211] Step 23: Initialize and parse parameters;

[0212] Until all steps are completed.

[0213] In some embodiments, sampling to obtain a performance data set is not supported, including at least one of the following:

[0214] Does not support extracting permissions to run sampling programs;

[0215] ·Does not support running sampling permission determination instructions.

[0216] Optionally, the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, and the sampling program is used to sample and obtain a performance data set of the terminal device. That is, the second type of terminal device will have an error when executing step 21. It should be understood that the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, including: the second type of terminal device has an error when copying the execution file of the sampling program, resulting in the sampling program being unable to run on the second type of terminal device.

[0217] Optionally, the second type of terminal device is a terminal device that does not support the execution of the sampling authority determination instruction, and the sampling authority determination instruction is used to indicate that the terminal device has sampling authority. That is, the second type of terminal device will have an error when executing step 22.

[0218] Optionally, the second type of terminal device is a terminal device that does not support saving performance data sets and does not support running sampling authority determination instructions.

[0219] Step 740: When the terminal device is a terminal device of the second type, execute sampling logic for the terminal device of the second type.

[0220] In some embodiments, the sampling logic for the second type of terminal device is used to support the second type of terminal device to sample and obtain a performance data set.

[0221] In some embodiments, the sampling logic for the second type of terminal device includes at least one of the following:

[0222] A first sampling logic that supports a second type of terminal device to extract permission to run a sampling program;

[0223] A second sampling logic supporting a second type of terminal device to execute a target sampling authority determination instruction.

[0224] In some embodiments, when the terminal device is a second type of terminal device, the first sampling logic that supports the second type of terminal device to extract the permission to run the sampling program is executed. That is, when the terminal device is a second type of terminal device, the above step 21 cannot be executed or an error is reported when executing the above step 21, and the first sampling logic is executed at this time. The file path that can be used to copy the execution file of the sampling program is found from the second type of terminal device, so that the second type of terminal device can correctly copy the execution file of the sampling program, thereby extracting the permission to run the sampling program.

[0225] In some embodiments, when the terminal device is a terminal device of the second type, a second sampling logic supporting the second type of terminal device to execute the target sampling authority determination instruction is executed. That is, when the terminal device is a terminal device of the second type, the above step 22 cannot be executed or an error is reported when executing the above step 22, and the second sampling logic is executed at this time. The target sampling authority determination instruction is executed in the terminal device of the second type, so that it can be determined that the terminal device of the second type has the sampling authority.

[0226] In some embodiments, when the terminal device is a second type of terminal device, a first sampling logic that supports the second type of terminal device to extract permission to run a sampling program and a second sampling logic that supports the second type of terminal device to run a target sampling permission determination instruction are executed.

[0227] In some embodiments, the target sampling authority determination instruction is used to indicate that the second type of terminal device has sampling authority. It should be understood that the target sampling authority determination instruction is only used for the second type of terminal device, and the target sampling authority determination instruction is different from the sampling authority determination instruction used by the first type of terminal device.

[0228] To sum up, the method provided in this embodiment, by executing the sampling logic for the second type of terminal device when the terminal device is not a terminal device that does not support sampling to obtain a performance data set, enables sampling to obtain the performance data of the second type of terminal device even when the terminal device is of the second type.

[0229] An embodiment of the present application provides a method for locating jamming based on performance data, which can separate performance data, locate jamming frames, support comparing the differences between two sets of performance data, and support sampling of any terminal device.

[0230] In some embodiments, Simpleperf is used to sample the performance data of the terminal device. The sampling process of Simpleperf includes startup, privilege escalation, permission determination, calling kernel functions for sampling, shared memory, data extraction, data export, and end. Among them, on the second type of terminal device, the sampling process of Simpleperf will report an error during privilege escalation and permission determination, resulting in Simpleperf being unable to continue to perform subsequent operations. A method for locating a jam based on performance data is provided in an embodiment of the present application. In view of the above situation, the sampling logic for privilege escalation and permission determination for the second type of terminal is rewritten, so that performance data can be sampled on the second type of terminal device.

[0231] In some embodiments, a freeze location method based on performance data is provided in an embodiment of the present application, which can split a performance data set and extract a required performance data subset of a certain range from the performance data set, thereby realizing the extraction of performance data subsets of any range.

[0232] In some embodiments, the performance data set is obtained by sampling according to the timeline, and each performance data is taken as the minimum unit. The performance data set is obtained by superimposing multiple performance data. Each performance data has the same data format, including: time, thread ID, call stack, sampling type and hit count, etc.

[0233] In an embodiment of the present application, a method for locating a jamming frame based on performance data is provided, which can separate a performance data subset from a sampled performance data set, and locate the performance data subset of the jamming frame therefrom.

[0234] In some embodiments, the principle of rendering a frame is to start from a graphics interface refresh and end before the next graphics interface refresh to obtain a frame. In an embodiment of the present application, a method for locating jams based on performance data is provided, which filters out the call status of eglSwapBuffers in each frame, and takes the range from the first call to eglSwapBuffers to the next call to eglSwapBuffers as the intra-frame performance data, so as to obtain the call stack of the current frame.

[0235] In some embodiments, using a freeze locating method based on performance data provided in an embodiment of the present application can improve efficiency when locating freeze frames and other performance issues.

[0236] Fig.16 A block diagram of a jamming location device based on performance data provided by an exemplary embodiment of the present application is shown. The device includes:

[0237] The acquisition module 1610 is used to acquire a performance data set of a terminal device.

[0238] In some embodiments, the performance data set is used to indicate the operating status of the terminal device when running the application. Optionally, the operating status includes at least one of a data storage status, a data jam status, and a data compatibility status.

[0239] Optionally, the performance data set is used to indicate the data access status of the terminal device when running the application program. For example, the performance data set indicates at least one of the storage rate, storage data volume, and storage path of the terminal device when running the game program.

[0240] Optionally, the performance data set is used to indicate a data jamming condition of the terminal device when running an application program. For example, the performance data set indicates that the terminal device will experience jamming in a first time period when running a game program, and the first time period may be a time period for loading a game or a time period during a game match.

[0241] Optionally, the performance data set is used to indicate the data compatibility status of the terminal device when running an application program. For example, the performance data set indicates that the terminal device is not compatible when running a game program.

[0242] In some embodiments, the performance data set includes performance data corresponding to all applications in the terminal device. In some embodiments, the performance data set includes performance data corresponding to some applications in the terminal device. In the embodiment of the present application, the performance data set includes performance data corresponding to a game program in the terminal device as an example for illustration.

[0243] In some embodiments, a performance analysis program is installed and run in the terminal device, and the performance analysis program is used to analyze the performance data set of the terminal device. In some embodiments, the performance analysis program includes at least one of an import function, an export function, and a sampling function.

[0244] Optionally, when the performance analysis program includes a sampling function, the performance data set of the terminal device is obtained through the performance analysis program.

[0245] In some embodiments, the performance data set is used to draw a performance data curve graph. Based on the performance data set, a performance data curve graph is obtained. The performance data curve graph is used to indicate the jamming reference data corresponding to the performance data set, and the jamming reference data includes at least one of a frame rate and a single frame duration, and the frame rate and the single frame duration are used to indicate the jamming situation of the data corresponding to the performance data set. For example, Figure 3 As shown, based on the performance data set, the frame rate curve is obtained Fig.14 And single frame time curve Fig.15 .

[0246] In some embodiments, the frame rate and single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0247] The separation module 1620 is used to separate the performance data set to obtain a performance data subset of the stuck frame.

[0248] In some embodiments, the performance data subset of the stuck frame corresponds to the performance data of the stuck condition of the terminal device when running the application. It should be understood that the performance data subset of the stuck frame is a performance data set with frame granularity. For example, Figure 4 As shown, the performance data set is separated based on the frame granularity to obtain n data frames, where the value of n is a positive integer greater than 0. Among them, the n data frames include k jamming frames. The performance data subset of the jamming frame includes the performance data subset corresponding to jamming frame 1, the performance data subset corresponding to jamming frame 2, and the performance data subset corresponding to jamming frame k, where the value of k is a positive integer greater than 0.

[0249] In some embodiments, the performance data set is separated by a performance analysis program in the terminal device. The performance data set of the terminal device is imported into the performance analysis program through an import function in the performance analysis program, and the imported performance data set is separated by the performance analysis program to obtain a performance data subset of the stuck frame.

[0250] The positioning module 1630 is used to locate the jamming condition of the terminal device when running the application based on the performance data subset of the jamming frame.

[0251] In some embodiments, the positioning module 1630 is further configured to determine the position of the performance data subset of the freeze frame in the performance data set based on the performance data subset of the freeze frame. Figure 4 As shown, based on the performance data subsets of k jamming frames, the position of the performance data subset corresponding to each of the k jamming frames in the performance data set is determined respectively. For example, the position of the performance data subset corresponding to jamming frame 1 in the performance data set is determined to be position 1, the position of the performance data subset corresponding to jamming frame 2 in the performance data set is determined to be position 2, and until the position of the performance data subset corresponding to jamming frame k in the performance data set is determined to be position k.

[0252] In some embodiments, the positioning module 1630 is further used to locate the jamming position of the terminal device when running the application based on the position of the performance data subset of the jamming frame in the performance data set. The jamming position includes at least one of the jamming time position of the terminal device when running the application and the jamming program position of the terminal device when running the application.

[0253] Optionally, the jamming position includes the jamming time position of the terminal device when running the application. It should be understood that the jamming time position is the position within the time period when the terminal device runs the application, and the jamming time position within the time period when the terminal device runs the application is located based on the position of the performance data subset of the jamming frame in the performance data set. For example, the time period for the terminal device to run the game program is 20 minutes, and the data length of the corresponding performance data set is 10 data frames. When it is determined that the position of the performance data subset of the jamming frame in the performance data set is the position of the 6th data frame, the jamming time position when the terminal device runs the application is located as the 12th minute.

[0254] Optionally, the stuck position includes a stuck program position when the terminal device is running an application. It should be understood that the stuck program position is a stuck position in the application running on the terminal device, and the stuck position in the application running on the terminal device is located based on the position of the performance data subset of the stuck frame in the performance data set.

[0255] In some embodiments, the separation module 1620 is further used to separate the performance data set based on the frame granularity to obtain n-frame performance data subsets.

[0256] In some embodiments, the performance data in the performance data set correspond to the same data format. Figure 6 As shown, assuming that the performance data set includes j performance data, the data format of each performance data includes: time, thread ID, call chain, function 1 to function i, number of event collection times, event type, and at least one of stack expansion results, the value of j is a positive integer greater than 0, and the value of i is a positive integer greater than 0.

[0257] It is worth noting that the minimum unit corresponding to the performance data in the performance data set is an individual or a group, that is, the above performance data set includes j groups of performance data. In the embodiment of the present application, the minimum unit is an individual for example.

[0258] Optionally, the data lengths corresponding to each performance data are the same. Optionally, the data lengths corresponding to each performance data are different. In the embodiment of the present application, an example is given in which the data lengths corresponding to each performance data are the same.

[0259] In some embodiments, the separation module 1620 is further used to determine the performance function corresponding to the performance data set. That is, to determine the performance function corresponding to all the performance data in the performance data set. The performance function is the same function corresponding to all the performance data. Exemplarily, the performance function is function 1 corresponding to performance data 1 until function 1 corresponding to performance data j.

[0260] In some embodiments, the separation module 1620 is further configured to separate the performance data set based on the frame granularity, and determine the performance data from the nth call of the performance function to the n+1th call of the performance function as the nth frame performance data subset. Figure 7 As shown, the performance data 1 to the performance data r after the first call of the performance function and before the second call of the performance function are determined as the first frame performance data subset, and the value of r is a positive integer greater than 0. Until the performance data s to the performance data j after the nth call of the performance function and before the n+1th call of the performance function are determined as the nth frame performance data subset, and the value of s is a positive integer greater than 0.

[0261] It is worth noting that the data length of each frame performance data subset may be the same or different. For example, the first frame performance data subset includes performance data 1 to performance data 5, that is, the data length of the first frame performance data subset is the data length corresponding to 5 performance data; the second frame performance data subset includes performance data 6 to performance data 12, that is, the data length corresponding to the second frame performance data subset is the data length corresponding to 7 performance data. In the embodiment of the present application, the data length corresponding to each frame performance data subset is the same as an example for illustration.

[0262] In some embodiments, the separation module 1620 is further configured to obtain n frame performance data subsets based on the 1st frame performance data subset to the nth frame performance data subset.

[0263] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the stuck frame based on the stuck reference data corresponding to each frame performance data subset in the n frame performance data subsets.

[0264] In some embodiments, each frame performance data subset in the n frame performance data subsets corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0265] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0266] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the stuck frame based on the frame rate corresponding to each frame performance data subset in the n frame performance data subsets.

[0267] Optionally, each frame performance data subset in the n frame performance data subsets corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0268] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the stuck frame based on the single frame duration corresponding to each frame performance data subset in the n frame performance data subsets.

[0269] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the stuck frame based on the frame rate and single frame duration corresponding to each frame performance data subset in the n frame performance data subsets.

[0270] In some embodiments, the separation module 1620 is further configured to select continuous m-frame performance data subsets from the n-frame performance data subsets.

[0271] In some embodiments, the m-frame performance data subset is any part of the n-frame performance data subset, and the value of m is a positive integer greater than 0 and less than or equal to n.

[0272] In some embodiments, the separation module 1620 is further used to select a set of target performance data subsets from the n-frame performance data subsets, where the target performance data subsets include consecutive m-frame performance data subsets.

[0273] In some embodiments, the separation module 1620 is further used to select any group of target performance data subsets from the n-frame performance data subsets, each group of target performance data subsets including continuous m-frame performance data subsets. It is worth noting that the data lengths in each group of target performance data subsets may be the same or different, for example, the data length in the first group of target performance data subsets corresponds to 3-frame performance data subsets, the data length in the second group of target performance data subsets corresponds to 3-frame performance data subsets, and the data length in the third group of target performance data subsets corresponds to 5-frame performance data subsets.

[0274] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the jamming frame in the m-frame performance data subset based on the jamming reference data corresponding to each frame performance data subset in the m-frame performance data subset.

[0275] In some embodiments, each frame performance data subset in the m frame performance data subset corresponds to a jamming reference data. The jamming reference data includes at least one of a frame rate and a single frame duration. The frame rate and the single frame duration are used to indicate the data jamming situation corresponding to each frame performance data subset. The frame rate is inversely proportional to the data jamming situation, and the single frame duration is directly proportional to the data jamming situation. That is, the smaller the frame rate, the more serious the data jamming situation; the larger the single frame duration, the more serious the data jamming situation.

[0276] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a frame rate. In some embodiments, the frame rate refers to the number of frames per second. In some embodiments, the frame rate is used to indicate the picture clarity of the terminal device. The larger the frame rate, the more frames per second, and the clearer the video picture; the smaller the frame rate, the smaller the frame per second, and the blurrier the video picture. In some embodiments, the frame rate is used to indicate the jamming of the terminal device. The larger the frame rate, the more frames per second, which reflects that the data transmission of the terminal device is smoother; the smaller the frame rate, the fewer frames per second, which reflects that the data transmission of the terminal device is jammed.

[0277] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the jammed frame based on the frame rate corresponding to each frame performance data subset in the m frame performance data subset. The frame rate corresponding to each frame performance data subset in the m frame performance data subset is compared with the frame rate threshold, and the x frame performance data subset whose frame rate is less than the frame rate threshold is determined as the performance data subset of the jammed frame, where the value of x is a positive integer greater than 0 and less than or equal to m.

[0278] Optionally, each frame performance data subset in the m-frame performance data subset corresponds to a single frame time. In some embodiments, the single frame time is used to indicate a stuck condition of the terminal device. The smaller the single frame time, the smoother the data transmission of the terminal device; the larger the single frame time, the stuck condition of the data transmission of the terminal device.

[0279] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the jammed frame based on the single frame duration corresponding to each frame performance data subset in the m frame performance data subset. The single frame duration corresponding to each frame performance data subset in the m frame performance data subset is compared with the single frame duration threshold, and the y frame performance data subset whose single frame duration is greater than the single frame duration threshold is determined as the performance data subset of the jammed frame, where the value of y is a positive integer greater than 0 and less than or equal to m.

[0280] In some embodiments, the separation module 1620 is further used to separate the performance data subset of the jammed frame based on the frame rate and single frame duration corresponding to each frame performance data subset in the m frame performance data subset. The frame rate corresponding to each frame performance data subset in the m frame performance data subset is compared with the frame rate threshold, and the single frame duration corresponding to each frame performance data subset in the m frame performance data subset is compared with the single frame duration threshold, and the t frame performance data subset whose frame rate is less than the frame rate threshold and the single frame duration is greater than the single frame duration threshold is determined as the performance data subset of the jammed frame.

[0281] In some embodiments, the apparatus further comprises:

[0282] The comparison module 1640 is used to compare the running status of the terminal device when running the application in different time periods based on at least two performance data sets.

[0283] In some embodiments, each of the at least two performance data sets is used to indicate the operating status of the terminal device when running the application in different time periods. Exemplarily, it is assumed that two performance data sets of the terminal device are obtained, including performance data set 1 and performance data set 2; performance data set 1 is used to indicate the operating status of the terminal device running the application in time period 1; performance data set 2 is used to indicate the operating status of the terminal device running the application in time period 2.

[0284] In some embodiments, the comparison module 1640 is further used to perform statistics on each performance data set in the at least two performance data sets, respectively, to obtain data statistics results corresponding to each performance data set one by one;

[0285] In some embodiments, the comparison module 1640 is also used to perform statistics on each of the at least two performance data sets based on the data format corresponding to each of the at least two performance data sets, to obtain data statistical results corresponding one-to-one to each performance data set.

[0286] In some embodiments, the data statistics are used to indicate all performance data in each performance data set.

[0287] In some embodiments, the form of the data statistical result includes at least one of a tree structure and a table structure. The form of the data statistical result corresponding to each performance data set is the same or different. For example, the form of the data statistical result 1 corresponding to the first performance data set is a tree structure, the form of the data statistical result 2 corresponding to the second performance data set is a tree structure, and the form of the data statistical result 3 corresponding to the third performance data set is a table structure.

[0288] In some embodiments, the comparison module 1640 is further configured to perform statistics on each of the at least two performance data sets based on the function corresponding to each of the at least two performance data sets, and obtain data statistics results in a tree structure corresponding to each performance data set. Fig.11 As shown, based on all functions corresponding to all performance data in the performance data set 1, data statistics results based on a tree structure composed of functions are obtained.

[0289] In some embodiments, the comparison module 1640 is also used to perform statistics on each of the at least two performance data sets based on the threads corresponding to each of the at least two performance data sets, and obtain data statistical results in a table structure corresponding one-to-one to each performance data set.

[0290] In some embodiments, the comparison module 1640 is further used to compare the running status of the terminal device when running the application in different time periods based on the data statistics results.

[0291] In some embodiments, each data statistical result corresponds to each performance data set, and each performance data set is used to indicate the operating status of the terminal device when running the application in different time periods. That is, each data statistical result is used to indicate the operating status of the terminal device when running the application in different time periods.

[0292] In some embodiments, the comparison module 1640 is further used to select at least two data statistical results from all data statistical results, and based on the selected at least two data statistical results, compare the running conditions of the terminal device when running the application in the time period corresponding to the at least two data statistical results. Exemplarily, data statistical result 1 corresponding to performance data set 1 and data statistical result 2 corresponding to performance data set 2 are selected from all data statistical results, performance data set 1 is used to indicate the running condition of the terminal device running the application in time period 1, and performance data set 2 is used to indicate the running condition of the terminal device running the application in time period 2, and the running condition of the terminal device running the application in time period 1 and the running condition of the terminal device running the application in time period 2 are compared.

[0293] In some embodiments, the data structure of the data statistics results used to compare the running conditions of the terminal device when running the application in different time periods is the same. For example, the data statistics result 1 of the tree structure corresponding to the performance data set 1 and the data statistics result 2 of the tree structure corresponding to the performance data set 2 are selected from all the data statistics results, the performance data set 1 is used to indicate the running conditions of the terminal device running the application in time period 1, and the performance data set 2 is used to indicate the running conditions of the terminal device running the application in time period 2, and the running conditions of the terminal device running the application in time period 1 and the running conditions of the terminal device running the application in time period 2 are compared.

[0294] In some embodiments, the comparison module 1640 is further used to compare the running conditions of the terminal device when running the application in different time periods based on the data statistics results, and obtain at least one comparison result. The comparison result is used to intuitively show the difference in the running conditions of the terminal device when running the application in different time periods. Optionally, the comparison result includes at least one of a comparison flame graph, a table comparison file, and a ladder comparison file.

[0295] In some embodiments, the comparison module 1640 is also used to compare the operating conditions of the terminal devices when running the application in different time periods based on the data statistics results to obtain a comparison flame chart; or, based on the data statistics results, to compare the operating conditions of the terminal devices when running the application in different time periods to obtain a table comparison file; or, based on the data statistics results, to compare the operating conditions of the terminal devices when running the application in different time periods to obtain a trapezoidal comparison file.

[0296] In some embodiments, the apparatus further comprises:

[0297] A determination module 1650 is used to determine the terminal type of the terminal device;

[0298] In some embodiments, the terminal type of the terminal device includes a first type and a second type, the first type of terminal device is a terminal device that supports sampling to obtain a performance data set, and the second type of terminal device is a terminal device that does not support sampling to obtain a performance data set.

[0299] In some embodiments, the process of sampling the first type of terminal device to obtain a performance data set is as follows: Fig.15 After the sampling process is started, it includes:

[0300] Step 21: Extract the permission to run the sampling program;

[0301] Step 22: Run the sampling authority determination instruction;

[0302] Step 23: Initialize and parse parameters;

[0303] Until all steps are completed.

[0304] In some embodiments, sampling to obtain a performance data set is not supported, including at least one of the following:

[0305] Does not support extracting permissions to run sampling programs;

[0306] ·Does not support running sampling permission determination instructions.

[0307] Optionally, the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, and the sampling program is used to sample and obtain a performance data set of the terminal device. That is, the second type of terminal device will have an error when executing step 21. It should be understood that the second type of terminal device is a terminal device that does not support the extraction of permission to run a sampling program, including: the second type of terminal device has an error when copying the execution file of the sampling program, resulting in the sampling program being unable to run on the second type of terminal device.

[0308] Optionally, the second type of terminal device is a terminal device that does not support the execution of the sampling authority determination instruction, and the sampling authority determination instruction is used to indicate that the terminal device has sampling authority. That is, the second type of terminal device will have an error when executing step 22.

[0309] Optionally, the second type of terminal device is a terminal device that does not support saving performance data sets and does not support running sampling authority determination instructions.

[0310] In some embodiments, the determination module 1650 is further configured to execute sampling logic for the second type of terminal device when the terminal device is a second type of terminal device.

[0311] In some embodiments, the sampling logic for the second type of terminal device is used to support the second type of terminal device to sample and obtain a performance data set.

[0312] In some embodiments, the sampling logic for the second type of terminal device includes at least one of the following:

[0313] A first sampling logic that supports a second type of terminal device to extract permission to run a sampling program;

[0314] A second sampling logic supporting a second type of terminal device to execute a target sampling authority determination instruction.

[0315] In some embodiments, the determination module 1650 is further used to execute the first sampling logic that supports the second type of terminal device to extract the permission to run the sampling program when the terminal device is a second type of terminal device. That is, when the terminal device is a second type of terminal device, the above step 21 cannot be executed or an error is reported when executing the above step 21, and the first sampling logic is executed at this time. The file path that can be used to copy the execution file of the sampling program is found from the second type of terminal device, so that the second type of terminal device can correctly copy the execution file of the sampling program, thereby extracting the permission to run the sampling program.

[0316] In some embodiments, the determination module 1650 is further used to execute a second sampling logic that supports the second type of terminal device to execute the target sampling authority determination instruction when the terminal device is a second type of terminal device. That is, when the terminal device is a second type of terminal device, the above step 22 cannot be executed or an error is reported when executing the above step 22, and the second sampling logic is executed at this time. The target sampling authority determination instruction is executed in the second type of terminal device, so that it can be determined that the second type of terminal device has the sampling authority.

[0317] In some embodiments, the determination module 1650 is also used to execute a first sampling logic that supports the second type of terminal device to extract permissions to run the sampling program and to execute a second sampling logic that supports the second type of terminal device to run the target sampling permission determination instruction when the terminal device is a second type of terminal device.

[0318] In some embodiments, the target sampling authority determination instruction is used to indicate that the second type of terminal device has sampling authority. It should be understood that the target sampling authority determination instruction is only used for the second type of terminal device, and the target sampling authority determination instruction is different from the sampling authority determination instruction used by the first type of terminal device.

[0319] Fig.17 The schematic diagram of the structure of a computer device provided by an exemplary embodiment of the present application is shown. Schematically, the computer device 1700 includes a central processing unit (CPU) 1701, a system memory 1704 including a random access memory (RAM) 1702 and a read-only memory (ROM) 1703, and a system bus 1705 connecting the system memory 1704 and the central processing unit 1701. The computer device 1700 also includes a basic input / output system (I / O system) 1706 that helps transmit information between various devices in the computer, and a large-capacity storage device 1707 for storing an operating system 1713, a client 1714 and other program modules 1715.

[0320] The basic input / output system 1706 includes a display 1708 for displaying information and an input device 1709 such as a mouse and a keyboard for user inputting information. The display 1708 and the input device 1709 are connected to the central processing unit 1701 through an input / output controller 1710 connected to the system bus 1705. The basic input / output system 1706 may also include an input / output controller 1710 for receiving and processing inputs from a plurality of other devices such as a keyboard, a mouse, or an electronic stylus. Similarly, the input / output controller 1710 also provides output to a display screen, a printer, or other types of output devices.

[0321] The mass storage device 1707 is connected to the central processing unit 1701 through a mass storage controller (not shown) connected to the system bus 1705. The mass storage device 1707 and its associated computer readable medium provide non-volatile storage for the computer device 1700. That is, the mass storage device 1707 may include a computer readable medium (not shown) such as a hard disk or a compact disc read-only memory (CD-ROM) drive.

[0322] The computer readable medium may include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented by any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Computer storage media include RAM, ROM, Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory or other solid-state storage technology, CD-ROM, Digital Versatile Disc (DVD) or other optical storage, cassettes, tapes, disk storage or other magnetic storage devices. Of course, those skilled in the art will know that the computer storage medium is not limited to the above. The above-mentioned system memory 1704 and mass storage device 1707 can be collectively referred to as memory.

[0323] According to various embodiments of the present application, the computer device 1700 can also be connected to a remote computer on the network through a network such as the Internet. That is, the computer device 1700 can be connected to the network 1712 through the network interface unit 1711 connected to the system bus 1705, or the network interface unit 1711 can be used to connect to other types of networks or remote computer systems (not shown).

[0324] An exemplary embodiment of the present application also provides a computer-readable storage medium, which stores at least one program, and the at least one program is loaded and executed by a processor to implement the performance data-based jamming location method provided by the above-mentioned various method embodiments.

[0325] An exemplary embodiment of the present application also provides a computer program product, which includes at least one program, and the at least one program is stored in a computer-readable storage medium; a processor of a computer device reads a signal from the computer-readable storage medium, and the processor executes the signal, so that the computer device executes to implement the performance data-based jamming location method provided in the above-mentioned various method embodiments.

[0326] It should be understood that the "plurality" mentioned in this article refers to two or more. Those skilled in the art will easily think of other embodiments of the present application after considering the specification and practicing the invention disclosed here. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary technical means in the art that are not disclosed in the present application. The description and examples are only regarded as exemplary, and the true scope and spirit of the present application are indicated by the following claims.

[0327] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0328] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent switching, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A jamming location method based on performance data, characterized in that: The method comprises: Acquire a performance data set of a terminal device, where the performance data set is used to indicate a running status of the terminal device when running an application; Separating the performance data set to obtain a performance data subset of a freeze frame; Based on the performance data subset of the stuck frame, the stuck condition of the terminal device when running the application is located.

2. The method according to claim 1, characterized in that The separation of the performance data set to obtain a performance data subset of the jammed frame includes: Separating the performance data set based on frame granularity to obtain n-frame performance data subsets; Separate the performance data subset of the stuck frame based on the stuck reference data corresponding to each frame performance data subset in the n frame performance data subsets, where the stuck reference data includes at least one of a frame rate and a single frame duration; Among them, the value of n is a positive integer greater than 0, the frame rate and the single frame time are used to indicate the data jamming situation corresponding to each frame performance data subset, the frame rate is inversely proportional to the data jamming situation, and the single frame time is directly proportional to the data jamming situation.

3. The method according to claim 2, characterized in that The separation of the performance data subset of the stuck frame based on the stuck reference data corresponding to each frame performance data subset in the n frame performance data subsets includes: Selecting a continuous m-frame performance data subset from the n-frame performance data subset; Separating a performance data subset of a jammed frame in the m-frame performance data subset based on the jamming reference data corresponding to each frame performance data subset in the m-frame performance data subset; The value of m is a positive integer greater than 0 and less than or equal to n.

4. The method according to claim 3, characterized in that The separation of the performance data subset of the jammed frame in the m-frame performance data subset based on the jamming reference data corresponding to each frame performance data subset in the m-frame performance data subset includes: Compare the frame rate corresponding to each frame performance data subset in the m frame performance data subsets with the frame rate threshold, and determine the x frame performance data subset whose frame rate is less than the frame rate threshold as the performance data subset of the jammed frame; or, Compare the single-frame duration corresponding to each frame performance data subset in the m-frame performance data subsets with the single-frame duration threshold, and determine the y-frame performance data subset whose single-frame duration is greater than the single-frame duration threshold as the performance data subset of the jammed frame; or, Compare the frame rate corresponding to each frame performance data subset in the m frame performance data subsets with the frame rate threshold, and compare the single frame duration corresponding to each frame performance data subset in the m frame performance data subsets with the single frame duration threshold, and determine the t frame performance data subset whose frame rate is less than the frame rate threshold and whose single frame duration is greater than the single frame duration threshold as the performance data subset of the jammed frame; Among them, the value of x is a positive integer greater than 0 and less than or equal to m, the value of y is a positive integer greater than 0 and less than or equal to m, and the value of t is a positive integer greater than 0 and less than or equal to m.

5. The method according to any one of claims 1 to 4, characterized in that: The locating the jamming condition of the terminal device when running the application based on the performance data subset of the jamming frame includes: Based on the performance data subset of the jammed frame, determine a position of the performance data subset of the jammed frame in the performance data set; Based on the position of the performance data subset of the jamming frame in the performance data set, the jamming position of the terminal device when running the application is located.

6. The method according to any one of claims 2 to 4, characterized in that: The performance data set is separated based on the frame granularity to obtain n-frame performance data subsets, including: Determining a performance function corresponding to the performance data set; The performance data set is separated based on the frame granularity, and the performance data after the nth calling of the performance function and before the n+1th calling of the performance function are determined as the nth frame performance data subset; Based on the 1st frame performance data subset to the nth frame performance data subset, the nth frame performance data subset is obtained.

7. The method according to any one of claims 2 to 6, characterized in that: The method further comprises: Based on at least two performance data sets, the operating conditions of the terminal device when running the application in different time periods are compared, and each of the at least two performance data sets is used to indicate the operating conditions of the terminal device when running the application in different time periods.

8. The method according to claim 7, characterized in that The comparing, based on the at least two performance data sets, the operating conditions of the terminal device when running the application in different time periods, includes: Performing statistics on each of the at least two performance data sets respectively to obtain data statistics results corresponding to each performance data set; Based on the data statistical result, the running status of the terminal device when running the application in different time periods is compared.

9. The method according to any one of claims 2 to 8, characterized in that: The method further comprises: Determine a terminal type of the terminal device, the terminal type includes a first type and a second type, the terminal device of the first type is a terminal device that supports sampling to obtain the performance data set, and the terminal device of the second type is a terminal device that does not support sampling to obtain the performance data set; In the case that the terminal device is the second type of terminal device, a sampling logic for the second type of terminal device is executed, and the sampling logic for the second type of terminal device is used to support the second type of terminal device to sample and obtain the performance data set.

10. The method according to claim 9, characterized in that The not supporting sampling to obtain the performance data set includes at least one of the following: does not support extracting the permission to run the sampling program, the sampling program is used to sample and obtain the performance data set; The execution of the sampling authority determination instruction is not supported, and the sampling authority determination instruction is used to indicate that the terminal device has sampling authority.

11. The method according to claim 10, characterized in that The executing sampling logic for the second type of terminal device includes: Execute a first sampling logic that supports the second type of terminal device to extract the permission to run the sampling program; or, executing a second sampling logic supporting the second type of terminal device to execute a target sampling authority determination instruction, wherein the target sampling authority determination instruction is used to indicate that the second type of terminal device has sampling authority; or, The first sampling logic supporting the second type of terminal device to run the sampling program and the second sampling logic supporting the execution of the target sampling authority determination instruction are executed.

12. The method according to any one of claims 2 to 11, characterized in that: The method further comprises: Based on the performance data set, a performance data curve graph is obtained, and the performance data curve graph is used to indicate the stuttering reference data corresponding to the performance data set, and the stuttering reference data includes at least one of the frame rate and the single frame time. The frame rate and the single frame time are used to indicate the data stuttering situation corresponding to the performance data set.

13. A jamming location device based on performance data, characterized in that: The device comprises: An acquisition module, used to acquire a performance data set of a terminal device, wherein the performance data set is used to indicate the running status of the terminal device when running an application program; A separation module, used to separate the performance data set to obtain a performance data subset of a freeze frame; A positioning module is used to locate the jamming condition of the terminal device when running the application based on the performance data subset of the jamming frame.

14. A computer device, characterized in that: The computer device includes: a processor and a memory, wherein at least one program is stored in the memory, and the at least one program is loaded and executed by the processor to implement the jamming location method based on performance data as described in any one of claims 1 to 12.

15. A computer-readable storage medium, characterized in that: The readable storage medium stores at least one program, and the at least one program is loaded and executed by the processor to implement the jamming location method based on performance data as described in any one of claims 1 to 12.

16. A computer program product, characterized in that The computer program product includes at least one program, and the at least one program is stored in a computer-readable storage medium; the processor of the computer device reads the at least one program from the computer-readable storage medium, and the processor executes the at least one program, so that the computer device executes the jamming location method based on performance data as described in any one of claims 1 to 12.