Method and apparatus for monitoring application performance, and device and storage medium

By acquiring and analyzing the operational data of the application, the problem of being unable to determine the cause of application failure in existing technologies has been solved, enabling accurate location and optimization of application performance, and improving application stability and user experience.

WO2026020435A1PCT designated stage Publication Date: 2026-01-29BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/107667
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-25
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

Existing technologies cannot accurately determine why an application cannot execute user commands, making application performance optimization difficult.

Method used

By acquiring runtime data during the execution of operations by the target application, analyzing action status feedback information, and determining the application's performance information, including the execution status of actions and reasons for failure, we can determine the application's performance information.

Benefits of technology

It enables accurate positioning and optimization of application performance, improving application stability and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024107667_29012026_PF_FP_ABST
    Figure CN2024107667_29012026_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the embodiments of the present disclosure are a method and apparatus for monitoring application performance, and a device and a storage medium. The method comprises: acquiring operating data generated by a target application executing a target operation, wherein the target operation comprises a plurality of actions, and the operating data at least indicates the last action among the plurality of actions that is executed by the target application during the process of executing the target operation on at least one client; on the basis of the operating data, determining state feedback information for the plurality of actions, wherein the state feedback information indicates an execution state of each of the plurality of actions; and on the basis of the state feedback information, determining performance information of the target application. Therefore, the process of executing the target operation by the application can be monitored on the basis of the state feedback information, thereby accurately locating a faulty node of the application and providing reliable data support for the optimization of application performance.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, apparatus, devices, and storage media for application performance testing Technical Field

[0001] The exemplary embodiments disclosed herein generally relate to the field of computers, and particularly to methods, apparatus, devices and computer-readable storage media for application performance testing. Background Technology

[0002] More and more applications are now designed to provide users with various services. Users can perform various operations on these applications. For example, users can use content-sharing applications to play various media content, such as images, videos, and audio. However, applications may malfunction during operation, affecting the user's normal use of the application.

[0003] Summary of the Invention

[0004] In a first aspect of this disclosure, a method for application performance testing is provided. The method includes: acquiring runtime data generated by a target application performing a target operation, the target operation including multiple actions, the runtime data indicating at least the last action performed by the target application among the multiple actions during the execution of the target operation at at least one client; determining state feedback information for the multiple actions based on the runtime data, the state feedback information indicating the execution state of each action among the multiple actions; and determining performance information of the target application based on the state feedback information.

[0005] In a second aspect of this disclosure, an apparatus for application performance detection is provided. The apparatus includes: an acquisition module configured to acquire runtime data generated by a target application performing a target operation, the target operation including multiple actions, the runtime data indicating at least the last action performed by the target application among the multiple actions during the execution of the target operation at at least one client; a first determination module configured to determine state feedback information for the multiple actions based on the runtime data, the state feedback information indicating the execution state of each of the multiple actions; and a second determination module configured to determine performance information of the target application based on the state feedback information.

[0006] In a third aspect of this disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the device to perform the method of the first aspect.

[0007] In a fourth aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program that can be executed by a processor to implement the method of the first aspect.

[0008] It should be understood that the content described in this content section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0009] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:

[0010] Figure 1 shows a schematic diagram of an example environment in which embodiments of the present disclosure can be implemented;

[0011] Figure 2 shows a schematic diagram of an example of an application performance testing system according to some embodiments of the present disclosure;

[0012] Figure 3 illustrates a schematic diagram of an example of the action of a target operation according to some embodiments of the present disclosure;

[0013] Figure 4 shows a schematic diagram of operational status data according to some embodiments of the present disclosure;

[0014] Figure 5 shows a schematic diagram of an example of status feedback information according to some embodiments of the present disclosure;

[0015] Figure 6 shows a schematic diagram of another example of status feedback information according to some embodiments of the present disclosure;

[0016] Figure 7 illustrates a schematic diagram of an example of application performance analysis according to some embodiments of the present disclosure;

[0017] Figure 8 shows a flowchart of an application performance testing process according to some embodiments of the present disclosure;

[0018] Figure 9 shows a block diagram of an apparatus for application performance testing according to some embodiments of the present disclosure; and

[0019] Figure 10 shows a block diagram of an apparatus capable of implementing several embodiments of the present disclosure. Detailed Implementation

[0020] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.

[0021] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.

[0022] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0023] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.

[0024] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.

[0025] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0026] It should be noted that the headings of any section / subsection provided herein are not limiting. Various embodiments are described throughout this document, and embodiments of any type may be included under any section / subsection. Furthermore, embodiments described in any section / subsection may be combined in any way with any other embodiments described in the same section / subsection and / or different sections / subsections.

[0027] In this document, unless explicitly stated otherwise, performing a step in response to A does not mean that the step is performed immediately after A, but may include one or more intermediate steps.

[0028] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below. The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0029] Figure 1 illustrates a schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. In this example environment 100, an application 120 is installed on a terminal device 110. A user 140 can interact with the application 120 via the terminal device 110 and / or an attached device to the terminal device 110. Exemplarily, the application 120 may be a content creation application, a content sharing application, or a social application, capable of providing the user 140 with services related to media content, including browsing, commenting, forwarding, creating (e.g., shooting and / or editing), publishing, etc., of content. "Media content" may include one or more types of content, such as video, images, GIFs, image sets, audio, text, etc. The application 120 may support the user 140 in creating multimedia content. Such multimedia content may include image data and audio data.

[0030] In environment 100 of Figure 1, terminal device 110 can display the user interface 150 of application 120. User interface 150 may include various interfaces provided by application 120, such as content presentation interfaces, content creation interfaces, content publishing interfaces, messaging interfaces, personal homepages, etc. Application 120 can provide content browsing functionality to view various types of content published within application 120. Application 120 can also provide content creation functionality, including capturing, uploading, editing, and / or publishing media content.

[0031] In some embodiments, terminal device 110 communicates with server 130 to provide services to application 120. Terminal device 110 can be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, terminal device 110 can also support any type of user-facing interface (such as "wearable" circuitry). Server 130 can be various types of computing systems / servers capable of providing computing power, including but not limited to mainframes, edge computing nodes, computing devices in cloud environments, etc.

[0032] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure. For example, embodiments of this disclosure can be applied to any suitable one or more applications, and are not limited to office suites.

[0033] As briefly mentioned earlier, applications are designed to provide various services to users. During user interaction with an application, malfunctions within the application itself and / or inefficiencies in the environment in which it runs may prevent the application from executing user commands correctly. For example, a user might play various media content through a content-sharing application. If the application malfunctions, the media content may fail to play, preventing the application from providing services to the user. To better serve users, application developers need to accurately understand the application's performance in order to optimize it promptly.

[0034] Currently, developers primarily determine application performance based on the ratio of the number of users whose commands were successfully executed by the application within a certain period to the total number of users who launched the application. For example, in content-sharing applications, performance is typically measured by the ratio of "the number of users who successfully played media content" to "the number of users who launched the application" within a day. The application performance calculation formula is as follows: α 0vv =1-user vv / user all (1)

[0035] Where α 0vv This is the ratio of users who failed to successfully play media content to the number of users who launched the application within a detection period (usually one day), used to represent application performance. vvThis represents the number of users who failed to successfully play media content during the detection period. all This represents the number of users who launched the application during the detection period.

[0036] However, this approach only allows developers to determine application performance, not the reasons why the application fails to execute user commands, and it does not provide data support for developers to analyze application performance and maintain the application.

[0037] Therefore, embodiments of this disclosure provide a scheme for application performance detection. According to embodiments of this disclosure, runtime data generated by a target application performing a target operation is obtained. The target operation includes multiple actions, and the runtime data at least indicates the last action performed by the target application among the multiple actions during the execution of the target operation at at least one client. Based on the runtime data, status feedback information for the multiple actions is determined, indicating the execution status of each action among the multiple actions. Based on the status feedback information, performance information of the target application is determined.

[0038] In the embodiments of this disclosure, by acquiring the generated runtime data, the state feedback information of the actions performed by the target application during the execution of the target operation can be determined. The performance of the target application is determined based on the state feedback information of each action. Therefore, the process of the application executing the target operation can be monitored based on the state feedback information, thereby accurately locating the application's fault nodes and providing technical support for developers to optimize application performance.

[0039] Figure 2 shows a schematic diagram of an example of an application performance testing system 200 according to some embodiments of the present disclosure. As shown in Figure 2, the application performance testing system includes an information acquisition module 240, an information storage and reporting module 250, and an information summarization module 260.

[0040] In some embodiments, the information acquisition module 240 may be implemented or included in the terminal device 110. The terminal device 110 includes a client 210 for the target application. The user 140 sends operation commands to the client 210 of the target application via a human-computer interaction device (e.g., a touchscreen, keyboard, mouse, etc.) to control the target application. The operation commands correspond to the type of the target application. For example, if the target application is a content-sharing application, the operation commands may be to control the target application to play or upload media content. Media content may include, but is not limited to, images, videos, and audio. If the target application is a game application, the operation commands may be to control virtual objects within the target application.

[0041] In some embodiments, if user 140 sends an operation command to the target application, client 210 executes the received operation command. Information acquisition module 240 is used to collect runtime data 270 generated during the execution of the operation command by client 210. Information acquisition module 240 can acquire the runtime data 270 of client 210 and provide all acquired runtime data 270 to subsequent modules. Alternatively or additionally, information acquisition module 240 can analyze the acquired runtime data 270 and provide the analyzed status feedback information or the execution status of each action to subsequent modules. Runtime data includes, but is not limited to, user interaction data indicating user interaction behavior, terminal device performance data (e.g., target application response time, loading time, memory usage, processor utilization, etc.), network data indicating network requests and responses between the target application and the server (e.g., data requests, request response times, etc.), and log files indicating system events during the target application's operation (e.g., startup data, shutdown data, update data, etc.).

[0042] The runtime data 270 includes the execution status of each action during the target application's execution of the target operation. That is, the runtime data 270 indicates whether any action was successfully executed during the target operation. In some embodiments, the information acquisition module 240 determines, based on the acquired runtime data, the number of times each action was successfully executed and the number of times it failed during the target application's execution of the target operation in one or more clients. Alternatively or additionally, subsequent modules may determine the status feedback information for each action based on the runtime data 270 provided by the information acquisition module 240. The following description of the system 200 will primarily focus on the example where the information acquisition module 240 is only responsible for collecting and providing runtime data 270 to subsequent modules; however, this is merely an example.

[0043] In some embodiments, the success or failure of an action can be indicated by a "action identifier-execution status" data pair. For example, a first action is considered successful, and a second action is considered unsuccessful. The runtime data 270 provided by the information acquisition module 240 to subsequent modules may include the execution status of all actions. For example, the runtime data 270 may include multiple "action identifier-execution status" data pairs. The execution status of the runtime data 270 can be determined through each data pair. Alternatively or additionally, the runtime data 270 may include only the execution status of some actions (successfully executed actions or unsuccessfully executed actions). For example, the runtime data 270 may only include the identifier information of successfully executed actions, and actions not appearing in the runtime data 270 are unsuccessfully executed actions. In some embodiments, the runtime data 270 may only include the last action performed by the target application during the execution of the target operation. If the last action is unsuccessfully executed, it indicates that the target application has failed to execute the target operation.

[0044] In some embodiments, a target operation includes one or more actions. During the execution of the target operation, the target application needs to perform different actions in a specific order. The core path for executing the target operation can be determined based on the order in which the target application executes each action. The core path includes nodes corresponding to each action. For example, if the target operation is playing media content, the target application needs to perform at least data requests, data loading, and UI rendering. If the target application successfully executes all actions, it indicates that the target application has successfully executed the target operation. If the target application fails to execute the target operation, it indicates that an error occurred during the execution of the corresponding target operation, causing some actions to fail.

[0045] Figure 3 illustrates a schematic diagram of an example of actions 300 included in a target operation according to some embodiments of the present disclosure. As shown in Figure 3, the target application is a content sharing application, and the target operation is a media content playback operation. The path in which the target application executes the target operation includes multiple nodes, each node corresponding to a different action during the execution of the media content playback operation. For example, the actions include: session start action 310-1, application startup success action 310-2, information interface loading action 310-3, information data request action 310-4, information data loading action 310-5, content data loading action 310-6, content interface rendering action 310-7, and media content playback action 310-8. These actions can be referred to individually or collectively as action 310. The execution status of each action 310 and the status feedback information of each action 310 are determined based on the running data 270 during each execution of the target operation.

[0046] During the startup of a target application, the timing of when user 140 sends an operation command to client 210 cannot be determined. User 140 may send an operation command to the application just before it closes, in which case a sudden stop of the application may result in data loss. In some embodiments, to more accurately detect application performance, the performance of the target application can be determined based on the runtime data 270 generated by the target application within each session. Each session represents the application runtime cycle from when user 140 starts the target application to when user 140 closes the target application. The runtime data 270 collected by the information collection module 240 corresponds to the data generated by the target application performing the target operation during multiple sessions.

[0047] In some embodiments, to facilitate developers in analyzing the reasons for the failure of action 310, the information acquisition module 240 can also provide developers with runtime status information 410 of the target application during the execution of the target operation. Figure 4 shows a schematic diagram of runtime status data 400 according to some embodiments of the present disclosure. As shown in Figure 4, each action 310 has corresponding runtime status information 410. For example, when the target application is a content sharing application and the target operation is a media content playback operation, the runtime status data 410-1 corresponding to the application startup success action 310-2 includes startup type, startup long chain type, and startup short chain type. The runtime status data 410-5 corresponding to the content data loading action 310-6 includes basic content information, content interface status, and player status code, etc. The status data corresponding to each action 310 can be referred to individually or collectively as runtime status data 410.

[0048] In some embodiments, the information acquisition module 240 can assign an code to each action 310 in the operation execution path. The execution data may include the codes of executed actions or the code of the last executed action. The information acquisition module 240 provides execution data 270 containing only successfully executed actions 310 to subsequent modules, so that subsequent modules can determine the status feedback information of each action 310. For example, the code corresponding to the session start action 310-1 is determined to be code101, the code corresponding to the application startup success action 310-2 is code201, the code corresponding to the information interface loading action 310-3 is code301, the code corresponding to the information data request action 310-4 is code401, the code corresponding to the information data loading action 310-5 is code501, ..., and the code corresponding to the media content playback action 310-8 is code901. If the target operation fails during the execution of the information data request action 310-4, the information acquisition module only provides the codes of the preceding actions 310 (including code101, code201, and code301). Developers can determine that the target operation failed because the information data request action 310-4 was not executed successfully.

[0049] Continuing with Figure 2. After acquiring the runtime data 270, the information acquisition module 240 can directly provide the runtime data 270 to the server 130, so that the server 130 can analyze the performance information of the target application. The information acquisition module 240 is usually connected to the server 130 via a network. In the event of network failure, data loss may occur. Therefore, the information acquisition module 240 can provide the acquired runtime data 270 to the information storage and reporting module 250.

[0050] The information storage and reporting module 250 stores the runtime data 270 and provides the runtime data 270 to the server 130 when a connection is established with the server 130. In some embodiments, the information storage and reporting module 250 can be a separately configured storage device 220 or a storage device 220 located at the client 210. The information storage and reporting module 250 integrates the provided runtime data 270 into composite key-value pair data (e.g., action 310 identifier - execution status) and stores the key-value pair data in the storage device 220.

[0051] In some embodiments, the information storage and reporting module 250 can store data in the form of a data queue. If there are multiple sets of running data 270 corresponding to different sessions, the data entries corresponding to the multiple sets of running data 270 are stored in the storage device 220 in the form of a queue. If the information storage and reporting module 250 establishes a connection with the server 130, the corresponding data entries are uploaded to the server 130.

[0052] In some embodiments, the information storage and reporting module 250 may proactively upload the operational data 270 corresponding to each client 210 to the server 130. Alternatively, upon receiving a data request from the server 130, it may upload the operational data 270 of the client 210 corresponding to the data request to the server 130. Optionally or additionally, the information storage and reporting module 250 may be implemented or included in the server 130.

[0053] As shown in Figure 2, the information summarization module 260 can be implemented or included in the server 130. The information summarization module 260 is responsible for processing the runtime data 270 received by the server. After obtaining the provided runtime data 270, the information summarization module 260 performs data verification to remove some invalid data. For example, the information summarization module 260 can perform data integrity verification and delete incomplete data.

[0054] The information summarization module 260 is used to determine the performance of the target application based on the provided runtime data 270. In some embodiments, the information summarization module 260 can determine status feedback information for multiple actions included in the target operation based on the acquired runtime data. The status feedback information indicates the execution status of each of these actions. For example, if an action is not successfully executed, a failure record corresponding to that action can be added to the status feedback information to facilitate analysis of the reason for the target operation's failure. The failure record may include identification information of the failed action, etc. Furthermore, based on the status feedback information, the information summarization module 260 can determine the performance information of the target application. That is, performance analysis of the target application can be performed.

[0055] In some embodiments, performance analysis may include determining the execution failure rate of the target performance, such as the 0vv rate. Specifically, the information summarization module 260 may determine, based on the provided runtime data 270, a first number of sessions corresponding to the runtime data 270. Based on status feedback information, it may determine a second number of sessions that failed to successfully execute the target operation during the session, corresponding to the runtime data 270. Based on the ratio of the first number to the second number, it may determine the execution failure rate of the target operation. Execution failure rate β 0vv The formula for calculating β is as follows: 0vv =session 0vv / session all (2)

[0056] session 0vv This indicates the number of sessions that failed to successfully execute the target operation during the session. all Indicates the total number of sessions.

[0057] In some embodiments, performance analysis of the target application may include generating relevant data reports for actions 310 corresponding to the target operation. Figure 5 shows a schematic diagram of an example of state feedback information 500 according to some embodiments of the present disclosure. Figure 6 shows a schematic diagram of another example of state feedback information 600 according to some embodiments of the present disclosure. Figure 5 shows the ratio of the execution frequencies of different actions 310 in multiple sessions. Figure 6 shows the proportion of target operation execution failures caused by the failure of different actions 310. Based on the contents shown in Figures 5 and 6, the performance information of the target application, i.e., the execution status of each action 310, can be determined to determine the reasons for the failure of the target application in executing the target operation. In some embodiments, the information summarization module 260 can also be used to determine the running status information 410 when the second action 310 is not successfully executed based on the state feedback information. Based on the running status information 410, the failure reasons related to the second action 310 are analyzed for the target application. Based on the performance information, state feedback information, and running status information 410 obtained above, the information summarization module 260 can construct a funnel for the target operation to analyze the reasons for the failure of each specific operation. In addition, the information summarization module 260 can also perform error attribution and optimization insights into the reasons for the failure of the target operation, so as to provide data support for developers to optimize application performance.

[0058] Figure 7 shows a structural diagram of an example of application performance analysis 700 according to some embodiments of the present disclosure. As shown in Figure 7, the information summarization module 260 can monitor the overall performance changes of the application over a long period of time. In the event of a fault in the target application, the problem in the target application can be efficiently located, improving the user experience of the user 140. As shown by curve 710 in Figure 7, the failure rate of the target application in performing the target operation gradually decreases over time.

[0059] Figure 8 shows a flowchart of a process 800 for application performance testing according to some embodiments of the present disclosure. Process 800 may be implemented or included at server 130.

[0060] In box 810, the server obtains runtime data generated by the target application performing the target operation. The target operation includes multiple actions, and the runtime data indicates at least the last action performed by the target application among the multiple actions during the execution of the target operation at at least one client.

[0061] In some embodiments, the runtime data corresponds to multiple sessions for performing the target operation, and the runtime data includes data generated during each of the multiple sessions when performing the target operation.

[0062] In some embodiments, obtaining runtime data generated by the target application performing a target operation includes: in response to the server establishing a connection with a given client among at least one client, receiving at least a portion of the runtime data from the client, wherein the at least a portion of the data indicates the last action performed among multiple actions of the target operation at the given client.

[0063] In some embodiments, at least a portion of the data includes multiple data entries corresponding to multiple executions of the target operation at a given client, and the multiple data entries are stored in a queue at the given client before the connection is established.

[0064] In some embodiments, the target operation includes playing media content in the target application.

[0065] In box 820, the server determines status feedback information for multiple actions based on runtime data. The status feedback information indicates the execution status of each of the multiple actions.

[0066] In some embodiments, determining the status feedback includes: in response to the running data indicating that the last action performed is the first action among a plurality of actions, adding a failure record corresponding to the first action to the status feedback information.

[0067] In box 830, the server determines the performance information of the target application based on the status feedback information.

[0068] In some embodiments, determining the performance information of the target application includes: determining a first number of sessions corresponding to the running data; determining a second number of sessions during which the running data failed to execute the target operation successfully, based on status feedback information; and determining the execution failure rate of the target operation based on the ratio of the first number and the second number.

[0069] In some embodiments, process 800 further includes, for a second action among a plurality of actions, determining, based on status feedback information, operational status data in the case where the second action is not successfully executed; and, based on the operational status data, analyzing, for the target application, the cause of the failure related to the second action.

[0070] Figure 9 shows a schematic structural block diagram of an application performance testing device 900 according to certain embodiments of the present disclosure. The device 900 may be implemented as or included in the server 130. The various modules / components in the device 900 may be implemented by hardware, software, firmware, or any combination thereof.

[0071] As shown in the figure, device 900 includes an acquisition module 910 configured to acquire runtime data generated by a target application performing a target operation. The target operation includes multiple actions, and the runtime data indicates at least the last action performed by the target application among the multiple actions during the execution of the target operation at at least one client. Device 900 also includes a first determination module 920 configured to determine state feedback information for the multiple actions based on the runtime data. The state feedback information indicates the execution state of each of the multiple actions. Device 900 also includes a second determination module 930 configured to determine performance information of the target application based on the state feedback information.

[0072] In some embodiments, the first determining module 920 is further configured to add a failure record corresponding to the first action in the status feedback information in response to the last action performed by the running data indication being the first action among a plurality of actions.

[0073] In some embodiments, the second determining module 930 is further configured to determine a first number of sessions corresponding to the running data; determine a second number of sessions that failed to execute the target operation during the session based on status feedback information; and determine the execution failure rate of the target operation based on the ratio of the first number and the second number.

[0074] In some embodiments, the acquisition module 910 is further configured to receive at least a portion of the running data from the client in response to the server establishing a connection with a given client among at least one client, wherein the at least a portion of the data indicates the last action of a plurality of actions performed at the given client for the target operation.

[0075] In some embodiments, the apparatus 900 further includes a fault analysis module configured to, for a second action among a plurality of actions, determine, based on status feedback information, operational status data in the case where the second action is not successfully executed; and, based on the operational status data, analyze the fault causes related to the second action for a target application.

[0076] Figure 10 illustrates a block diagram of an electronic device 1000 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device 1000 shown in Figure 10 is merely exemplary and should not be construed as limiting the functionality and scope of the embodiments described herein. The electronic device 1000 shown in Figure 10 can be used to implement the electronic device 110 of Figure 1.

[0077] As shown in Figure 10, the electronic device 1000 is in the form of a general-purpose electronic device. Components of the electronic device 1000 may include, but are not limited to, one or more processors or processing units 1010, memory 1020, storage device 1030, one or more communication units 1040, one or more input devices 1050, and one or more output devices 1060. The processing unit 1010 may be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 1020. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of the electronic device 1000.

[0078] Electronic device 1000 typically includes multiple computer storage media. Such media can be any accessible media that is accessible to electronic device 1000, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 1020 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage device 1030 can be removable or non-removable media and may include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data and can be accessed within electronic device 1000.

[0079] Electronic device 1000 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG. 10, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. Memory 1020 may include computer program product 1025 having one or more program modules configured to perform various methods or actions of various embodiments of this disclosure.

[0080] The communication unit 1040 enables communication with other electronic devices via a communication medium. Additionally, the functionality of the components of the electronic device 1000 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the electronic device 1000 can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network node.

[0081] Input device 1050 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 1060 can be one or more output devices, such as a monitor, speaker, printer, etc. Electronic device 1000 can also communicate with one or more external devices (not shown) via communication unit 1040 as needed. These external devices include storage devices, display devices, etc., and can communicate with one or more devices that enable user interaction with electronic device 1000, or with any device that enables electronic device 1000 to communicate with one or more other electronic devices (e.g., network card, modem, etc.). Such communication can be performed via input / output (I / O) interface (not shown).

[0082] According to an exemplary implementation of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. According to an exemplary implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.

[0083] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0084] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0085] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0086] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0087] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. A method for detecting performance of an application, comprising obtaining running data generated by a target application in performing a target operation, the target operation comprising a plurality of actions, the running data indicating at least a last action performed among the plurality of actions in a process of performing the target operation by the target application at at least one client; determining, based on the running data, state feedback information for the plurality of actions, the state feedback information indicating a performance state of each action among the plurality of actions; and determining, based on the state feedback information, performance information of the target application.

2. The method of claim 1, wherein determining the state feedback comprises: in response to the running data indicating that the last action performed is a first action among the plurality of actions, adding a failure record corresponding to the first action in the state feedback information.

3. The method of claim 1, wherein the running data corresponds to a plurality of sessions for performing the target operation, and the running data comprises data generated by performing the target operation during each session among the plurality of sessions.

4. The method of claim 1, wherein determining the performance information of the target application comprises: determining a first number of sessions corresponding to the running data; determining, based on the state feedback information, a second number of the sessions corresponding to the running data in which the target operation is not successfully performed during the sessions; and determining, based on a ratio of the first number and the second number, a failure rate of performing the target operation.

5. The method of claim 1, further comprising: for a second action among the plurality of actions, determining, based on the state feedback information, running state data in a case that the second action is not successfully performed; and based on the running state data, analyzing, for the target application, a failure cause related to the second action.

6. The method of claim 1, wherein the method is performed at a server of the target application, and obtaining running data generated by a target application in performing a target operation comprises: in response to the server establishing a connection with a given client among the at least one client, receiving, from the client, at least a portion of the running data, the at least a portion of the running data indicating a last action performed among the plurality of actions in performing the target operation at the given client.

7. The method of claim 6, wherein the at least a portion of the data comprises a plurality of data entries respectively corresponding to a plurality of performances of the target operation at the given client, and the plurality of data entries are stored in a queue at the given client before the connection is established.

8. The method of claim 1, wherein the target operation comprises playing media content in the target application.

9. A device for detecting performance of an application, comprising ​ ​ an obtaining module configured to obtain running data generated by a target application performing a target operation, the target operation comprising a plurality of actions, the running data at least indicating a last action performed among the plurality of actions in a process of the target application performing the target operation at at least one client; a first determining module configured to determine, based on the running data, state feedback information for the plurality of actions, the state feedback information indicating a performance state of each action among the plurality of actions; and a second determining module configured to determine, based on the state feedback information, performance information of the target application.

10. An electronic device, comprising: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions which, when executed by the at least one processing unit, cause the electronic device to perform the method according to any one of claims 1-8.

11. A computer-readable storage medium having stored thereon a computer program, the computer program being executable by a processor to implement the method according to any one of claims 1-8. ​

Citation Information

Patent Citations

  • Game problem positioning method and device, electronic equipment and storage medium

    CN110908921A

  • Operation state monitoring method and device of multiple processing units, storage medium and equipment

    CN114416483A

  • Problem positioning method and related equipment

    CN116258479A

  • Application performance detection method and device and storage medium

    CN117785715A