Starting time consumption processing method and device, program product and electronic equipment

By monitoring and comparing the function information of the App during the startup stage, the problem of inaccurate time-consuming and inaccurate detection of App startup is solved, and the detection accuracy and release efficiency are improved.

CN120066919APending Publication Date: 2025-05-30HANGZHOU NETEASE CLOUD MUSIC TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510239502.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

In the prior art, the time-consuming detection of application (App) startup is inaccurate, which affects the performance of the App and the new version test results, resulting in delays in the release time of the new version of the App.

Method used

By determining the function information executed by different versions of the application at the startup stage, inserting monitoring codes to obtain execution time-consuming information, and comparing the time-consuming information of different versions, we can determine whether there is a deterioration in startup time-consuming.

Benefits of technology

Improves the accuracy of time-consuming detection of App startup, helps developers quickly locate and solve deterioration problems, and avoids delays in release time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120066919A_ABST
    Figure CN120066919A_ABST
Patent Text Reader

Abstract

The invention provides a startup time consumption processing method and device, a program product and electronic equipment, and relates to the technical field of computers. The method comprises the steps of determining a first function set corresponding to a first version of an application program and a second function set corresponding to a second version of the application program, wherein the first function set and the second function set comprise function information executed by the application program in a starting stage; inserting monitoring code information into the function information of the first function set and the function information of the second function set, and obtaining first execution time consumption information corresponding to the first function set and second execution time consumption information corresponding to the second function set through the monitoring code information; and comparing the first execution time consumption information with the second execution time consumption information, and determining whether the application program of the second version has a startup time consumption degradation condition or not. According to the method and the device, the functions executed by different versions of the same application program in the starting stage are accurately obtained by monitoring the code information, so that the accuracy of determining the time-consuming degradation of starting is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computer technologies, and more particularly, to a method for processing startup time consumption, a device for processing startup time consumption, a computer program product, and an electronic device. Background Art

[0002] This section aims to provide background or context for the embodiments of the present disclosure described in the claims. The description herein is not admitted to be prior art merely because it is included in this section.

[0003] Currently, during the process of version iteration of an application (App), with the expansion of business, performance problems such as increased startup time may occur.

[0004] Before the release of a new version of the App, a series of measures can be taken to perform anti-degradation detection on the App to avoid the aforementioned performance degradation, thereby effectively controlling the stability of the App startup time and improving the user experience. Summary of the Invention

[0005] However, in the related art, there is an inaccurate detection of the startup time consumption of the App, which affects the performance of the App and the test results of the new version, resulting in a delay in the release time of the new version of the App.

[0006] In view of this, the present disclosure provides a method for processing startup time consumption, a device for processing startup time consumption, a computer program product, and an electronic device, so as to improve the accuracy of detecting the startup time consumption of the App to a certain extent and avoid the situation of delaying the release time of the new version of the App.

[0007] In a first aspect, the present disclosure provides a method for processing startup time consumption, the method including:

[0008] Determine a first function set corresponding to a first version of an application program and a second function set corresponding to a second version, where the first function set and the second function set include function information executed by the application program during the startup phase;

[0009] Insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain first execution time consumption information corresponding to the first function set and second execution time consumption information corresponding to the second function set through the monitoring code information;

[0010] Compare the first execution time consumption information and the second execution time consumption information to determine whether there is a situation of startup time consumption degradation in the application program of the second version.

[0011] In a possible implementation, determining a first function set corresponding to a first version of an application and a second function set corresponding to a second version includes:

[0012] Determining a first function information set and a second function information set of a development object for developing a new version of the application; wherein, the first function information set is obtained after the first version of the application corresponding to the development object is executed in a development environment; the second function information set is obtained after the second version of the application corresponding to the development object is executed in a development environment;

[0013] Determining a first function set corresponding to the first version of the application according to the first function information set;

[0014] Determining a second function set corresponding to the second version of the application according to the second function information set.

[0015] In a possible implementation, determining the first function information set of a development object includes:

[0016] Determining each application account corresponding to each development object;

[0017] Respectively determining the first function information of each application account, and determining the first function information set of each development object based on the obtained first function information.

[0018] In a possible implementation, determining the first function set corresponding to the first version of the application according to the first function information set includes:

[0019] Determining the union of the first function information set and an initial function set corresponding to the first version of the application;

[0020] Taking the union as the first function set corresponding to the first version of the application.

[0021] In a possible implementation, respectively inserting monitoring code information into the function information of the first function set and the second function set, and obtaining first execution time-consuming information corresponding to the first function set through the monitoring code information includes:

[0022] Performing bytecode instrumentation processing on each function in the first function set to obtain a first instrumented function set, and executing each business function in the first instrumented function set to determine the execution time-consuming of each business function;

[0023] Obtaining first execution time-consuming information according to the execution time-consuming of each business function and the unique identifier of each business function.

[0024] In a possible implementation, before bytecode instrumentation is performed on each function in the first function set, the method further includes:

[0025] Determine the package names of the functions in the first function set;

[0026] Filter the functions in the first function set that include functions in the whitelist to obtain a first set of business functions; wherein, the whitelist is a set of package names of non-system functions.

[0027] In a possible implementation, the unique identifier is determined based on the concatenated string of the package name, class name, and function name of the function.

[0028] In a possible implementation, the first version of the application is the baseline version, and the functions that must be executed during the startup phase of the baseline version application constitute the baseline data whitelist; comparing the first execution time-consuming information and the second execution time-consuming information to determine whether there is a startup time-consuming deterioration in the second version of the application, including:

[0029] If there is a first function in the second execution time-consuming information that does not match any function in the first execution time-consuming information, it is determined that there is a startup time-consuming deterioration in the second version of the application.

[0030] In a possible implementation, the method further includes:

[0031] Determine the target development object corresponding to the first function;

[0032] Send a first prompt message to the target development object, where the first prompt message is used to prompt whether the first function is a function that must be executed.

[0033] In a possible implementation, the method further includes:

[0034] If a first feedback message for indicating that the first function is a function that must be executed is received from the target development object, send a second prompt message to the target development object, where the second prompt message is used to prompt whether the first function is a function that must be executed during the startup phase.

[0035] In a possible implementation, the method further includes:

[0036] If a second feedback message for indicating that the first function is a function that must be executed during the startup phase is received from the target development object, determine the execution time-consuming of the first function;

[0037] When it is determined that the execution time of the first function is greater than a preset threshold, a modification instruction message is sent to the target development object, and the modification instruction message is used to indicate that the first function needs to be modified.

[0038] In a possible implementation manner, the method further includes:

[0039] When it is determined that the execution time of the first function is not greater than the preset threshold, the first function is added to the baseline data whitelist.

[0040] In a second aspect, the present disclosure provides a startup time-consuming processing device, and the device includes:

[0041] A determination unit, configured to determine a first function set corresponding to a first version of an application program and a second function set corresponding to a second version, where the first function set and the second function set include function information executed by the application program during the startup phase;

[0042] An acquisition unit, configured to insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain first execution time-consuming information corresponding to the first function set and second execution time-consuming information corresponding to the second function set through the monitoring code information;

[0043] A processing unit, configured to compare the first execution time-consuming information and the second execution time-consuming information to determine whether there is a situation of deteriorated startup time-consuming for the second version of the application program.

[0044] In a possible implementation manner, the determination unit is specifically configured to:

[0045] Determine a first function information set and a second function information set of a development object for developing a new version of the application program; where the first function information set is obtained after the first version of the application program corresponding to the development object is executed in a development environment; the second function information set is obtained after the second version of the application program corresponding to the development object is executed in the development environment;

[0046] Determine a first function set corresponding to the first version of the application program according to the first function information set;

[0047] Determine a second function set corresponding to the second version of the application program according to the second function information set.

[0048] In a possible implementation manner, the determination unit is specifically configured to:

[0049] Determine each application program account corresponding to each development object;

[0050] Determine the first function information of each of the application accounts respectively, and determine the first function information set of each of the development objects based on the obtained first function information.

[0051] In a possible implementation manner, the determining unit is specifically configured to:

[0052] Determine the union of the first function information set and the initial function set corresponding to the first version of the application;

[0053] Use the union as the first function set corresponding to the first version of the application.

[0054] In a possible implementation manner, the obtaining unit is specifically configured to:

[0055] Perform bytecode instrumentation on each function in the first function set to obtain a first instrumented function set, and execute each business function in the first instrumented function set to determine the execution time consumption of each business function;

[0056] Obtain first execution time consumption information according to the execution time consumption of each business function and the unique identifier of each business function.

[0057] In a possible implementation manner, the device further includes an obtaining unit, specifically configured to:

[0058] Determine the package name of each function in the first function set;

[0059] Filter the functions in the first function set that include functions in the whitelist to obtain a first business function set; wherein, the whitelist is a set of package names of non-system functions.

[0060] In a possible implementation manner, the unique identifier is determined based on the concatenated string of the function's package name, class name, and function name.

[0061] In a possible implementation manner, the first version of the application is a baseline version, and the functions that must be executed during the startup phase of the application of the baseline version constitute a baseline data whitelist; the processing unit is specifically configured to:

[0062] If there is a first function in the second execution time consumption information that does not match any function in the first execution time consumption information, determine that there is a startup time consumption degradation situation in the second version of the application.

[0063] In a possible implementation manner, the processing unit is specifically configured to:

[0064] Determine the target development object corresponding to the first function;

[0065] Send a first prompt message to the target development object, where the first prompt message is used to prompt whether the first function is a function that must be executed.

[0066] In a possible implementation manner, the processing unit is specifically configured to:

[0067] If a first feedback message for indicating that the first function is a function that must be executed is received from the target development object, then send a second prompt message to the target development object, where the second prompt message is used to prompt whether the first function is a function that must be executed in the startup phase.

[0068] In a possible implementation manner, the processing unit is specifically configured to:

[0069] If a second feedback message for indicating that the first function is a function that must be executed in the startup phase is received from the target development object, then determine the execution time of the first function;

[0070] When it is determined that the execution time of the first function is greater than a preset threshold, then send a modification instruction message to the target development object, where the modification instruction message is used to indicate modifying the first function.

[0071] In a possible implementation manner, the processing unit is specifically configured to:

[0072] When it is determined that the execution time of the first function is not greater than the preset threshold, then add the first function to the baseline data whitelist.

[0073] According to a third aspect of the present disclosure, there is provided a computer program product, including a computer program, where when the computer program is executed by a processor, the method according to the first aspect and its possible implementation manners are implemented.

[0074] According to a fourth aspect of the present disclosure, there is provided an electronic device, including: a processor; and a memory for storing executable instructions of the processor; wherein, the processor is configured to execute the above-mentioned method according to the first aspect and its possible implementation manners by executing the executable instructions.

[0075] The technical solution of the present disclosure has the following beneficial effects:

[0076] In an embodiment of the present disclosure, a first function set corresponding to a first version of an application and a second function set corresponding to a second version can be determined, where the first function set and the second function set include function information executed by the application during the startup phase; then, monitoring code information is inserted into the function information of the first function set and the second function set respectively, and through the monitoring code information, first execution time-consuming information corresponding to the first function set and second execution time-consuming information corresponding to the second function set are obtained; thus, the first execution time-consuming information and the second execution time-consuming information can be compared to determine whether there is a deterioration in the startup time-consuming of the second version of the application.

[0077] It can be seen that in the embodiment of the present disclosure, first, the function information executed by different versions of the application during the startup phase is obtained. In other words, only the functions executed during the startup phase are inspected, avoiding the situation of missing functions executed during the startup phase or misidentifying functions executed during other phases. Also, since it is detected whether there are new functions during the App startup phase through the monitoring code information, it is possible to accurately detect whether there are new functions during the App startup phase, thereby determining the occurrence of startup time-consuming deterioration. Also, when it is determined that the deterioration occurs, since the present disclosure can determine the execution time-consuming information corresponding to the new functions, that is, the specific new function information and function time-consuming can be directly located, thus assisting developers to quickly locate and solve the deterioration problem, avoiding the situation where the performance of the App and the test results of the new version are affected due to inaccurate detection of the App startup time-consuming, and further delaying the release time of the new version of the App.

[0078] Other features and advantages of the present disclosure will be described in the following specification, and, in part, will be obvious from the specification, or will be understood by implementing the present disclosure. The objectives and other advantages of the present disclosure can be achieved and obtained through the structures specifically pointed out in the written specification, claims, and drawings. Brief Description of the Drawings

[0079] To more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required to be used in the embodiments of the present disclosure will be briefly introduced below. Obviously, the following introduced drawings are only some embodiments of the present disclosure. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0080] Figure 1 Shows a schematic diagram of an application scenario in this exemplary embodiment;

[0081] Figure 2 Shows a schematic flowchart of a startup time-consuming processing method in this exemplary embodiment;

[0082] Figure 3 Schematic diagram showing a process of obtaining a first function information set in this exemplary embodiment;

[0083] Figure 4 Schematic diagram showing a process of obtaining a first function set in this exemplary embodiment;

[0084] Figure 5 Schematic diagram showing a process of obtaining a service function set in this exemplary embodiment;

[0085] Figure 6 Schematic diagram showing a deterioration prevention process in this exemplary embodiment;

[0086] Figure 7 Schematic flowchart showing another method for startup time-consuming processing in this exemplary embodiment;

[0087] Figure 8 Schematic diagram showing a structure of a startup time-consuming processing device in this exemplary embodiment;

[0088] Figure 9 Schematic diagram showing a structure of an electronic device in this exemplary embodiment. Detailed implementation manners

[0089] To make the objectives, technical solutions and advantages of the present disclosure clearer and more understandable, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present disclosure. Apparently, the described embodiments are only some of the embodiments of the present disclosure, rather than all of them. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present disclosure without creative efforts shall fall within the protection scope of the present disclosure. Without conflict, the embodiments and features in the embodiments of the present disclosure can be arbitrarily combined with each other. And although the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in a different order than here.

[0090] The terms "including" and any variations thereof in the specification and claims of the present disclosure are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally further includes steps or units not listed, or optionally further includes other steps or units inherent to these processes, methods, products or devices.

[0091] One or more of the embodiments of the present disclosure, "multiple" means two or more. "And / or" describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after. "At least one (item)" or its similar expression refers to any combination of these items, including any combination of single item (item) or plural items (items). For example, at least one (item) of a, b, or c can represent: a, b, c, a - b, a - c, b - c, or a - b - c, where a, b, c can be single or multiple.

[0092] It should be noted that the terms "first", "second", etc. in the specification, claims, and the above-mentioned drawings of the present disclosure are used to distinguish similar objects, and do not necessarily need to describe a specific order, sequence, size, and priority. For example, the first interface definition information and the second interface definition information in the embodiments of the present disclosure are only used to distinguish different interface definition information. It should be understood that such data can be interchanged under appropriate circumstances so that the embodiments of the present disclosure described here can be implemented in an order other than those illustrated or described here. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. On the contrary, they are only examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.

[0093] The following describes exemplary embodiments of the present disclosure with reference to the accompanying drawings. The accompanying drawings are schematic diagrams of the present disclosure and are not necessarily drawn to scale. Some of the block diagrams shown in the drawings may be functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or in hardware modules or integrated circuits, or in networks, processors, or microcontrollers. The embodiments can be implemented in multiple forms and should not be understood as limited to the examples described here. The features, structures, or characteristics described in the present disclosure can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to give a full description of the embodiments of the present disclosure. However, those skilled in the art should be aware that one or more specific details can be omitted when implementing the technical solutions of the present disclosure, or other methods, components, devices, steps, etc. can be used to replace one or more specific details. It should be noted that in the embodiments of the present disclosure, the collection, dissemination, use, display, etc. of data all comply with relevant national laws and regulations. Summary of the Invention

[0095] Currently, during the update and iteration process of application services, the startup time may deteriorate and increase. Moreover, since startup performance directly affects the user experience, it is crucial to ensure the efficiency of the startup process. Preventing the deterioration of startup time is also an urgent problem to be solved. The following will introduce two startup anti-deterioration technical solutions provided in the related technologies.

[0096] The first startup anti-deterioration technical solution.

[0097] In this solution, the App installation package after this business iteration can be installed on a specified test machine for startup performance testing. After performing the startup performance testing multiple times, the average value of the multiple test results is determined. Then, the difference ratio between the average value of the multiple test results and the test result corresponding to the startup performance testing of the App installation package before this business iteration is determined. If it is determined that the difference is greater than a certain threshold (threadshold), it is considered that this business iteration has caused the deterioration of the startup time.

[0098] However, when determining whether there is deterioration in startup time based on the first startup anti-deterioration technical solution, since it is difficult to make the current temperature, performance and other parameters of the test device exactly the same, the performance of the server on which the application depends may also be different at different time periods, and the network environment may also fluctuate. The aforementioned inconsistencies will introduce errors, making the obtained startup time data inaccurate. Moreover, even if it is confirmed that there is deterioration in startup time, since the specific code cannot be located, developers cannot accurately understand the reason for the problem. In this case, due to the lack of targeted data, it will be more difficult to troubleshoot the problem, and even cause delays in the release time of the App.

[0099] The second startup anti-deterioration technical solution.

[0100] In this solution, the class files where the code entry related to App startup is located can be collected and used as a file set. Then, a Continuous Integration (CI) / Continuous Delivery / Continuous Deployment (CD) process is set up to trigger an alarm when the class files in the file set determined by the aforementioned collection are modified. Specifically, when the alarm is triggered, it is considered that the code of the APP startup process has been modified by the developer, so it is considered that the APP may have the risk of startup deterioration. Then, a Code Review is performed on these code modifications to eliminate potential deterioration risks. Among them, Code Review refers to the process of systematically checking the source code during the software development process.

[0101] However, since the manual collection method is adopted in this solution, there is a possibility of missing newly added startup entry classes, resulting in incomplete monitoring. Moreover, the newly added startup entry classes cannot be automatically added to the set, which is likely to cause loopholes. Also, since the hierarchy of the startup function call tree is unknown, the monitoring based on changes to the startup entry classes is incomplete. It is possible that the classes where the function child nodes are located have probably fallen outside the scope of the monitored classes, and it is impossible to enumerate and monitor all classes related to startup. Additionally, if only some functions in a class are in the startup phase, it may also lead to misjudgment.

[0102] In addition, although an alarm can be triggered, after the alarm is triggered, reviewing the code requires a large amount of human cost, and it is difficult for developers to determine whether there is a deterioration in startup time consumption.

[0103] In view of this, the embodiments of the present disclosure provide a method for processing startup time consumption. Through this method, the first function set corresponding to the first version of the application program and the second function set corresponding to the second version can be determined, where the first function set and the second function set include function information executed by the application program during the startup phase. Then, monitoring code information is inserted into the function information of the first function set and the second function set respectively, and through the monitoring code information, the first execution time consumption information corresponding to the first function set and the second execution time consumption information corresponding to the second function set are obtained. Thus, the first execution time consumption information and the second execution time consumption information can be compared to determine whether there is a deterioration in the startup time consumption of the second version of the application program.

[0104] It can be seen that in the embodiments of the present disclosure, first, the function information executed by different versions of the application program during the startup phase is obtained. In other words, only the functions executed during the startup phase are examined, avoiding the situation of missing functions executed during the startup phase or misidentifying functions executed during other phases. Also, since it is detected whether there are newly added functions during the App startup phase through the monitoring code information, it is possible to accurately detect whether there are newly added functions during the App startup phase, thereby determining the occurrence of startup time consumption deterioration. And when it is determined that the deterioration has occurred, since the present disclosure can determine the execution time consumption information corresponding to the newly added functions, that is, it is possible to directly locate the specific newly added function information, namely the function time consumption, thereby assisting developers to quickly locate and solve the deterioration problem, avoiding the situation where the performance of the App and the test results of the new version are affected due to inaccurate detection of the App startup time consumption, and further delaying the release time of the new version of the App.

[0105] After introducing the basic principle of the present disclosure, the various non-limiting implementation manners of the present disclosure will be specifically introduced below.

[0106] Overview of Application Scenarios

[0107] To better understand the technical solutions provided by the embodiments of the present disclosure, the following briefly introduces the application scenarios applicable to the technical solutions provided by the embodiments of the present disclosure. It should be noted that the application scenarios introduced below are only used to illustrate the embodiments of the present disclosure rather than to limit them. In specific implementations, the technical solutions provided by the embodiments of the present disclosure can be flexibly applied according to actual needs.

[0108] To introduce the content of the embodiments of the present disclosure more clearly, the following introduces some key terms:

[0109] App: Refers to an application program installed on intelligent devices such as mobile phones, which generally needs to cooperate with the server to run. Common applications are mainly divided into two categories. One category is pre-installed system applications, such as text messages, photos, memos, browsers (such as Safari), etc.; the other category is third-party applications, such as news apps, shopping apps, social apps, and so on.

[0110] Startup time consumption: Refers to the time required for an application program to become fully available from the moment the user clicks to start it. Generally, an application program is considered fully available when the content of the App's home page is rendered. Startup time consumption includes the time for program loading, initialization, and readiness during the startup of the application program.

[0111] Prevention of startup time consumption degradation: During the version iteration of an App, with the expansion of the business, performance problems such as increased startup time consumption may occur during the startup process. Prevention of startup time consumption degradation refers to a series of measures taken to avoid such performance degradation, which can effectively control the stability of the App startup time and improve the user experience.

[0112] Function baseline in the startup stage: Refers to the set of all function information executed by the main thread during the startup of an App. This baseline records the set of all functions that the main thread will execute during the startup stage, as well as the execution time consumption information of each function, to establish a function dimension benchmark for the startup process. By analyzing the differences between the baseline data and the experimental data, the startup performance or change trend of the App during this experimental process can be evaluated, helping to timely discover and solve potential performance problems.

[0113] Bytecode instrumentation: Refers to a technique in programming languages that inserts additional code into the compiled bytecode to achieve monitoring, analysis, or modification of program behavior. This technique is usually used in aspects such as application performance analysis, debugging, and security checks. Bytecode instrumentation can perform dynamic analysis and modification of the program without changing the source code, enabling developers to control and monitor program behavior at runtime.

[0114] In the embodiments of the present disclosure, the startup time-consuming processing technology can be applied to business scenarios for testing new versions of various types of application programs. For example, business scenarios for testing new versions when a music software or music App is updated, or business scenarios for testing new versions when a shopping platform is updated, or business scenarios for testing an instant messaging software to be released. The embodiments of the present disclosure do not limit this.

[0115] Please refer to Figure 1 as shown in Figure 1 which is an application scenario to which the technical solution of the embodiments of the present disclosure can be applied. In this scenario schematic diagram, it includes a terminal device 110 and an electronic device 120. Among them, the terminal device 110 can be one or more, Figure 1 and one is taken as an example for illustration. The terminal device 110 and the electronic device 120 are connected through a network 130.

[0116] In the embodiments of the present disclosure, a developer can send a startup time-consuming degradation processing request through the terminal device 110, and then the electronic device 120 can determine a first function set corresponding to the first version of the application program and a second function set corresponding to the second version according to the startup time-consuming degradation processing request. Among them, the first function set and the second function set include function information executed by the application program during the startup phase; then monitoring code information is inserted into the function information of the first function set and the second function set respectively, and through the monitoring code information, first execution time-consuming information corresponding to the first function set and second execution time-consuming information corresponding to the second function set are obtained; thus, the first execution time-consuming information and the second execution time-consuming information can be compared to determine whether there is a startup time-consuming degradation situation in the application program of the second version.

[0117] Among them, Figure 1 the electronic device 120 in can also be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server or a cloud server cluster that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery network (Content Delivery Network, CDN), and big data and artificial intelligence platforms, but is not limited thereto.

[0118] Figure 1 The terminal device 110 in can be a mobile phone, a tablet computer (PAD), a personal computer, a smart TV, a smart watch, a smart speaker, a smart vehicle device, and a wearable device, etc., but is not limited thereto.

[0119] Of course, the method provided by the embodiments of the present disclosure is not limited to Figure 1In the application scenarios shown, it can also be used in other possible application scenarios, and the embodiments of the present disclosure do not limit this.

[0120] Exemplary Method

[0121] To further illustrate the technical solutions provided by the embodiments of the present disclosure, the following will be described in detail with reference to the accompanying drawings and specific implementation manners. Although the embodiments of the present disclosure provide method operation steps as shown in the following embodiments or drawings, more or fewer operation steps may be included in the method based on routine or non-creative labor. In steps where there is no necessary causal relationship logically, the execution order of these steps is not limited to the execution order provided by the embodiments of the present disclosure. When the method is actually processed or executed by the device, it can be executed in the method order shown in the embodiments or drawings or executed in parallel.

[0122] Please refer to Figure 2 , Figure 2 which is a schematic flowchart of a startup time-consuming processing method in the embodiments of the present disclosure. The process of the method can be executed by an electronic device, such as Figure 1 the electronic device 120 in

[0123] Step 201: Determine a first function set corresponding to the first version of the application program and a second function set corresponding to the second version, where the first function set and the second function set include function information executed by the application program during the startup phase.

[0124] In the embodiments of the present disclosure, the electronic device can determine a first function information set and a second function information set of the development object for developing a new version of the application program. Then, according to the first function information set, the first function set corresponding to the first version of the application program can be determined; and, according to the second function information set, the second function set corresponding to the second version of the application program can be determined.

[0125] In the embodiments of the present disclosure, the second version of the application program can be understood as the version to be released of the application program, or the latest version from the current moment; and, the first version of the application program can be understood as the version when the application program was first released, or any version before the second version.

[0126] For example, if the first released version of App1 is version 1, and subsequent versions 2, 3, 4, and the to-be-released version 5 are updated, then version 5 can be used as the second version of App1, and any one of versions 1, 2, 3, and 4 can be used as the first version, or, it can also be the version specified by the developer as the first version, and the embodiments of the present disclosure do not limit this.

[0127] Optionally, the first function information set is obtained after the first version of the application corresponding to the development object is executed in the development environment; the second function information set is obtained after the second version of the application corresponding to the development object is executed in the development environment. That is to say, the first function information set and the second function information set are obtained by executing different versions of the application in the same environment, avoiding errors caused by inconsistent operating environments, and further preventing inaccurate startup time-consuming information from being obtained subsequently.

[0128] In the embodiments of the present disclosure, the following steps may be used, but are not limited to, to determine the first function information set of the development object:

[0129] Step A: Determine each application account corresponding to each development object;

[0130] Step B: Determine the first function information of each application account respectively, and based on the obtained first function information, determine the first function information set of each development object.

[0131] In the embodiments of the present disclosure, considering that in the actual implementation process, when different users use the same version of the application, due to personalized settings, partial updates, etc., even for the same version of the application, the function sets corresponding to different users during the startup phase are completely different. That is to say, the startup business logic in the App is extremely complex. Specifically, the startup business logics in the Apps of different accounts are different, the startup business logics in the Apps with different AB strategies are different, the startup business logics in the Apps of different startup tasks are different, and the startup business logics in the new and old home page Apps are different. All the above reasons for the different startup business logics in the App will further cause differences in the function sets generated by the startup process. Among them, the AB strategy can be understood as presenting different pages and providing different functions for different users.

[0132] For example, please refer to Figure 3 , Figure 3 which is a schematic diagram of the process of obtaining the first function information set provided by the embodiments of the present disclosure. Among them, APPs with different accounts, APPs with different startup tasks, APPs of new and old home pages, APPs with AB strategies on the terminal device (such as Figure 3 the on-terminal AB strategy in Figure 3 ), and APPs with server-side AB strategies can all trigger the startup process, so as to obtain their respective corresponding first function information sets, such as

[0133] In the embodiments of the present disclosure, different application program accounts can be set for each development object, that is, the aforementioned developer. That is, a developer can have multiple application program accounts for testing, and the startup business logics corresponding to each application program account are different (the startup business logics are, for example, the aforementioned startup tasks, new home pages, old home pages, etc.). That is, one application program account corresponds to one piece of first function information, and the first function information is obtained when its corresponding application program account is executed in the same environment. In this way, the first function information of each application program account can be determined respectively, and based on the obtained first function information, the first function information set of each development object can be determined.

[0134] For example, it is assumed that the development object 1 is set with application program account 1, application program account 2, application program account 3, and application program account 4, and application program account 1 corresponds to first function information 1, application program account 2 corresponds to first function information 2, application program account 3 corresponds to first function information 3, and application program account 4 corresponds to first function information 4. Then, it can be determined that the first function information set of the development object 1 includes: first function information 1, first function information 2, first function information 3, and first function information 4.

[0135] In the embodiments of the present disclosure, after obtaining the first function information set, the union of the first function information set and the initial function set corresponding to the first version of the application program can be determined, and then the union is used as the first function set corresponding to the first version of the application program.

[0136] For example, refer to Figure 4 as shown Figure 4 which is a schematic diagram of obtaining the first function set in the embodiments of the present disclosure. In Figure 4 , first, the baseline data of the initial version, that is, the initial function set corresponding to the first version, is determined, and the baseline data of the initial version is placed in the development environment of the App. The startup phase function information of all developers in the development environment is collected, and the process of generating the baseline data is simulated multiple times to obtain the first function information set. The first function information set is compared with the initial function set for differentiation. If it is determined that there are differences, for example, Figure 5 "if there is a diff" in

[0137] Step 202: Insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain the first execution time-consuming information corresponding to the first function set and the second execution time-consuming information corresponding to the second function set through the monitoring code information.

[0138] In the embodiments of the present disclosure, before performing bytecode instrumentation processing on each function in the first function set, the electronic device may determine the package names of the functions in the first function set; filter out the functions in the first function set that are included in the whitelist to obtain the first set of business functions; where the whitelist is a set of package names of non-system functions. Among them, the unique identifier is determined based on the concatenated string of the function's package name, class name, and function name.

[0139] That is to say, in the embodiments of the present disclosure, system functions can be filtered out, and only business functions are processed. At the same time, add the instrumentation exemption logic for non-main threads, that is, only record the function execution situation of the main thread. Finally, add the instrumentation exemption logic for non-start-up stages, that is, according to the marker of the start end point, do not perform time-consuming monitoring and processing on the business functions in the non-start-up stages. In this way, while ensuring comprehensive monitoring of the business functions in the start-up stage, resource waste is reduced. For example, as shown in Figure 5, Figure 5 is a schematic diagram of obtaining a set of business functions in the embodiments of the present disclosure. Among them, Figure 5 the set of functions in the current start-up stage is the aforementioned first set of business functions.

[0140] In the embodiments of the present disclosure, the electronic device may perform bytecode instrumentation processing on each function in the first function set to obtain the first set of instrumented functions, and execute each business function in the first set of instrumented functions to determine the execution time-consuming of each business function; obtain the first execution time-consuming information according to the execution time-consuming of each business function and the unique identifier of each business function.

[0141] Optionally, the electronic device may perform bytecode instrumentation processing on each function in the first set of business functions to obtain the first set of instrumented functions, and execute each business function in the first set of instrumented functions to determine the execution time-consuming of each business function; obtain the first execution time-consuming information according to the execution time-consuming of each business function and the unique identifier of each business function.

[0142] In the embodiments of the present disclosure, at the time when the business function starts to execute, record the current timestamp information start, and at the time when the current function finishes executing, also record the current timestamp information end, and then calculate the difference between end and start as the execution time-consuming of the current function. At the same time, use the complete path of the function, that is, the concatenated string of the package name, class name, and function name, as the unique identifier of the executed function after de-duplication.

[0143] Optionally, the data structure of the first function set can be set as a dictionary, where the key of the sub-dictionary is the unique identifier of the function, and the value of the dictionary is the execution time of the function. Among them, if a certain function is executed multiple times, the value corresponding to its key is updated with the larger execution time.

[0144] It can be seen that based on bytecode instrumentation processing, through package name filtering, this disclosure performs hook function processing on all business functions, so as to obtain the execution function set of the main thread in the startup phase, that is, the first function set, and the execution time of all functions in this set.

[0145] In the embodiment of this disclosure, the electronic device can perform bytecode instrumentation processing on each function in the second function set to obtain a second set of instrumented functions, and execute each business function in the second set of instrumented functions to determine the execution time of each business function; according to the execution time of each business function and the unique identifier of each business function, obtain the second execution time information.

[0146] Optionally, before the electronic device performs bytecode instrumentation processing on each function in the second function set, it can also determine the package names of each function in the second function set; filter out the functions in the second function set that are included in the whitelist to obtain the first set of business functions; where the whitelist is a set of package names of functions that are not system classes. Among them, the unique identifier is determined based on the concatenated string of the package name, class name, and function name of the function.

[0147] It should be noted that the method for the electronic device to determine the second execution time information is the same as the method for determining the first execution time information, which will not be elaborated here. Also, the data structure of the second function set can be set as a dictionary, where the key of the sub-dictionary is the unique identifier of the function, and the value of the dictionary is the execution time of the function.

[0148] Step 203: Compare the first execution time information and the second execution time information to determine whether there is a startup time degradation in the second version of the application.

[0149] In the embodiment of this disclosure, if the first version of the application is the baseline version, the functions that must be executed by the baseline version of the application in the startup phase constitute the baseline data whitelist, and it is determined that there is a mismatch between a first function in the second execution time information and any function in the first execution time information, then it is determined that there is a startup time degradation in the second version of the application.

[0150] For example, see Figure 6 as shown Figure 6Schematic diagram of a deterioration prevention process in an embodiment of the present disclosure. The baseline data that has been fully converged, i.e., the first function set, can be placed in the development environment of the App. When developers perform business development, if a new business function is added during the startup phase, it will be collected into the function set generated during the startup of this App (for example Figure 6 a certain function set generated during development in

[0151] ), that is, the aforementioned second function set. Specifically, when the first function set and the second function set are compared differentially, the newly added function can be detected. Thus, an exception handling can be executed to let developers be aware of the existence of startup time-consuming deterioration code and make subsequent processing.

[0152] In an embodiment of the present disclosure, when the electronic device detects startup time-consuming deterioration code, it will actively throw an exception and write the unique identifier of the newly added function, i.e., the package name, class name, method name, and function time-consuming information, into a file. Thus, developers can read the content of this file and process it based on the information therein.

[0153] That is to say, when a new function, i.e., the first function, appears, a first prompt message can be triggered to the target developer corresponding to the first function. Thus, subsequent steps can be confirmed based on the reply of the target developer.

[0154] In a possible implementation manner, the electronic device can determine the target development object corresponding to the first function and then send a first prompt message to the target development object, where the first prompt message is used to prompt whether the first function is a function that must be executed.

[0155] Optionally, when receiving a third feedback message from the target developer indicating that the first function is not a function that must be executed, the electronic device can instruct to directly delete the code of the first function.

[0156] Optionally, if a first feedback message for indicating that the first function is a function that must be executed is received from the target development object, a second prompt message is sent to the target development object, where the second prompt message is used to prompt whether the first function is a function that must be executed during the startup phase.

[0157] Optionally, when receiving a fourth feedback message from the target development object indicating that the first function is a function that must be executed but not during the startup phase, the electronic device can control to delay the execution of the first function until after the startup phase ends.

[0158] Optionally, if a second feedback message for indicating that the first function is a function that must be executed during the startup phase is received from the target development object, the execution time of the first function is determined.

[0159] Further, when it is determined that the execution time of the first function is greater than a preset threshold, a modification instruction message is sent to the target development object, and the modification instruction message is used to indicate to modify the first function. The preset threshold can be determined according to the actual implementation, and the embodiments of the present disclosure do not limit this. That is to say, if the execution time of the first function is greater than the preset threshold, it is necessary to force the modification of the newly added function code, so as to prevent the startup time from deteriorating.

[0160] Optionally, if the electronic device determines that the execution time of the first function is not greater than the preset threshold, the first function is added to the baseline data whitelist. That is to say, if the execution time of the first function is not greater than the preset threshold, it can be considered that the degree of deterioration is small, and the first function is added to the baseline data whitelist, so that the first function can be started during the startup phase.

[0161] To introduce this solution more clearly, the following uses a specific example to introduce the startup time processing method provided by the present disclosure. For example, please refer to Figure 7 , Figure 7 which is a schematic flowchart of another startup time processing method provided by the embodiments of the present disclosure.

[0162] Step 701: Write bytecode instrumentation code, and insert the function information acquisition logic corresponding to the bytecode instrumentation code into the business function in the startup phase to obtain a new business function in the startup phase.

[0163] In the embodiments of the present disclosure, the bytecode instrumentation code can be understood as the code included in the monitoring code information.

[0164] Step 702: Execute the new business function in the startup phase to collect the business function information executed by the APP main thread in the startup phase. The business function information includes the function unique identifier and the execution time.

[0165] Step 703: Generate initial startup function baseline data according to the collected business function information of each function.

[0166] Step 704: Collect the business function information of the startup phase in the development environment of the developer, and make a differential comparison between the business function information and the startup function baseline data to find out the new function types.

[0167] Step 705: Upload the new function types to the server to deduplicate and improve the startup function baseline data.

[0168] Step 706: Determine whether the startup function baseline data tends to converge. When it is determined to converge, execute Step 707. When it is determined not to converge, continue to execute Step 704.

[0169] Step 707: Obtain the improved startup function baseline data.

[0170] In the embodiments of the present disclosure, the complete startup function baseline data can be understood as the service functions included in the first function set and the first execution time-consuming information corresponding to the first function set.

[0171] Step 708: Place the baseline data in the development project for backup.

[0172] Step 709: After modifying the development code, run it again to collect the function information during this startup process.

[0173] In the embodiments of the present disclosure, the function information during this startup process can be understood as the function information included in the second function set.

[0174] Step 710: Make a differential comparison between the function information during this startup process and the function information in the complete startup function baseline data to determine whether there are new service functions in the startup stage. When it is determined that there are no new service functions in the startup stage, execute Step 711. When it is determined that there are new service functions in the startup stage, execute Step 712.

[0175] Step 711: No deterioration in startup time is detected.

[0176] Step 712: Deterioration in startup time is detected, and write the function information corresponding to the new service function into a file for recording.

[0177] Among them, the function information includes a unique identifier and the function execution time, that is, the execution time-consuming information.

[0178] Step 713: The developer determines whether the new service function is necessary for the business. If the developer determines that the new service function is not necessary for the business, then execute Step 714. If the developer determines that the new service function is necessary for the business, then execute Step 715.

[0179] Step 714: Delete the code of the new service function to prevent deterioration in startup time.

[0180] Step 715: The developer determines whether the new service function must be executed in the startup stage. If the developer determines that the new service function does not have to be executed in the startup stage, then execute Step 716. If the developer determines that the new service function must be executed in the startup stage, then execute Step 717.

[0181] Step 716: Delay the execution of the new service function to prevent deterioration in startup time.

[0182] Step 717: The developer determines whether the execution time of the newly added business function or the total execution time of the functions during this startup process is greater than a certain threshold. If so, the newly added business function is added to the baseline data whitelist, that is, added to the improved startup function baseline data. If not, step 718 is executed.

[0183] Step 718: Modify the code of the newly added business function to prevent the startup time from deteriorating.

[0184] It can be seen that in the embodiments of the present disclosure, from the function dimension, it is detected whether there are newly added functions in the App startup stage, so as to determine the occurrence of App startup time deterioration, with high accuracy. Moreover, when deterioration occurs, the function information of the specific newly added business function can be directly located at the code level. The function information includes the execution time information corresponding to the newly added function, that is, the function time, so as to assist the developer to quickly locate and solve the deterioration problem.

[0185] Exemplary Apparatus

[0186] An exemplary embodiment of the present disclosure also provides a startup time processing device. Refer to Figure 8 As shown, the startup time processing device 800 includes the following program units:

[0187] A determination unit 801, configured to determine a first function set corresponding to a first version of the application program and a second function set corresponding to a second version, where the first function set and the second function set include function information executed by the application program during the startup stage;

[0188] An acquisition unit 802, configured to insert monitoring code information into the function information of the first function set and the second function set respectively, and through the monitoring code information, acquire first execution time information corresponding to the first function set and second execution time information corresponding to the second function set;

[0189] A processing unit 803, configured to compare the first execution time information and the second execution time information to determine whether there is a startup time deterioration situation in the second version of the application program.

[0190] In a possible implementation manner, the determination unit 801 is specifically configured to:

[0191] Determine a first function information set and a second function information set of a development object for developing a new version of the application program; where the first function information set is obtained after the first version of the application program corresponding to the development object is executed in a development environment; the second function information set is obtained after the second version of the application program corresponding to the development object is executed in a development environment;

[0192] Determine a first function set corresponding to a first version of the application according to the first function information set;

[0193] Determine a second function set corresponding to a second version of the application according to the second function information set.

[0194] In a possible implementation manner, the determining unit 801 is specifically configured to:

[0195] Determine each application account corresponding to each development object;

[0196] Respectively determine the first function information of each application account, and determine the first function information set of each development object based on the obtained first function information.

[0197] In a possible implementation manner, the determining unit 801 is specifically configured to:

[0198] Determine the union of the first function information set and an initial function set corresponding to the first version of the application;

[0199] Use the union as the first function set corresponding to the first version of the application.

[0200] In a possible implementation manner, the obtaining unit 802 is specifically configured to:

[0201] Perform bytecode instrumentation processing on each function in the first function set to obtain a first instrumented function set, and execute each business function in the first instrumented function set to determine the execution time consumption of each business function;

[0202] Obtain first execution time consumption information according to the execution time consumption of each business function and the unique identifier of each business function.

[0203] In a possible implementation manner, the device further includes an obtaining unit, specifically configured to:

[0204] Determine the package name of each function in the first function set;

[0205] Filter functions in the first function set that include functions in the whitelist to obtain a first business function set; wherein, the whitelist is a set of package names of non-system functions.

[0206] In a possible implementation manner, the unique identifier is determined based on a concatenated string of the package name, class name, and function name of the function.

[0207] In a possible implementation, the first version of the application is the baseline version, and the functions that the application of the baseline version must execute during the startup phase constitute the baseline data whitelist; the processing unit 803 is specifically configured to:

[0208] If there is a mismatch between a first function in the second execution time-consuming information and any function in the first execution time-consuming information, it is determined that there is a startup time-consuming degradation in the second version of the application.

[0209] In a possible implementation, the processing unit 803 is specifically configured to:

[0210] Determine the target development object corresponding to the first function;

[0211] Send a first prompt message to the target development object, where the first prompt message is used to prompt whether the first function is a function that must be executed.

[0212] In a possible implementation, the processing unit 803 is specifically configured to:

[0213] If a first feedback message indicating that the first function is a function that must be executed is received from the target development object, send a second prompt message to the target development object, where the second prompt message is used to prompt whether the first function is a function that must be executed during the startup phase.

[0214] In a possible implementation, the processing unit 803 is specifically configured to:

[0215] If a second feedback message indicating that the first function is a function that must be executed during the startup phase is received from the target development object, determine the execution time-consuming of the first function;

[0216] When it is determined that the execution time-consuming of the first function is greater than a preset threshold, send a modification instruction message to the target development object, where the modification instruction message is used to indicate to modify the first function.

[0217] In a possible implementation, the processing unit 803 is specifically configured to:

[0218] When it is determined that the execution time-consuming of the first function is not greater than the preset threshold, add the first function to the baseline data whitelist.

[0219] The specific details of each part in the above device have been described in detail in the implementation manner of the method part. The details not disclosed can be referred to the implementation manner content of the method part, and thus will not be elaborated here.

[0220] It should be noted that although several modules or units of a device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the exemplary embodiments of the present disclosure, the features and functions of two or more of the above-described modules or units can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0221] Exemplary Program Product

[0222] The exemplary embodiments of the present disclosure also provide a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the above-mentioned startup time-consuming processing method is implemented.

[0223] In one embodiment, the computer program product may be a tangible product containing a computer program, such as a computer-readable storage medium storing the computer program. The readable storage medium may be a storage medium based on signals such as electricity, magnetism, light, electromagnetic, infrared, etc., including but not limited to: random access memory (RAM), read-only memory (ROM), magnetic tape, floppy disk, flash memory (Flash), mechanical hard disk (HDD), solid state drive (SSD), and so on. Exemplarily, the computer program product may be implemented as a non-volatile storage medium storing the computer program, such as read-only memory, Nand Flash, etc.

[0224] In one embodiment, the computer program product may be an intangible product containing a computer program. Exemplarily, the computer program product may be implemented as a virtual digital product, such as an executable file storing the computer program, an installation package, and other digital files.

[0225] The code of the computer program can be written in one or more programming languages. Programming languages such as C language, Java, C++, etc. The program code can be executed entirely on the user's computing device, or partially on the user's computing device, or executed as an independent software package, or partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user's computing device through any type of network, such as a local area network (LAN), a wide area network (WAN), etc., or can be connected to an external computing device (for example, through an Internet connection provided by an operator).

[0226] A computer program can be carried or transmitted by signals such as electricity, magnetism, light, electromagnetic, and infrared. An electronic device can convert the signal carrying the computer program into a digital signal and then run the computer program. When the computer program runs on the electronic device, its code is used to cause the electronic device to execute (more specifically, to cause the processor of the electronic device to execute) the method steps of various exemplary embodiments of the present disclosure. For example, the above-mentioned startup time-consuming processing method can be executed, which includes the following steps:

[0227] Step 201: Determine a first function set corresponding to the first version of the application program and a second function set corresponding to the second version, where the first function set and the second function set include function information executed by the application program during the startup phase; Step 202: Insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain first execution time-consuming information corresponding to the first function set and second execution time-consuming information corresponding to the second function set through the monitoring code information; Step 203: Compare the first execution time-consuming information and the second execution time-consuming information to determine whether there is a situation of deteriorated startup time for the second version of the application program.

[0228] By implementing the above method steps through a computer program, it is possible to first obtain the function information executed by different versions of the application program during the startup phase. In other words, only the functions executed during the startup phase are examined, avoiding the situation of missing functions executed during the startup phase or misidentifying functions executed during other phases. Also, since it is detected whether there are new functions during the App startup phase through the monitoring code information, it is possible to accurately detect whether there are new functions during the App startup phase, thereby determining the occurrence of deteriorated startup time. Also, when it is determined that deterioration has occurred, since the present disclosure can determine the execution time-consuming information corresponding to the new functions, that is, it is possible to directly locate the specific new function information, that is, the function time-consuming, thus assisting developers to quickly locate and solve the deterioration problem, avoiding the situation where the performance of the App and the test results of the new version are affected due to inaccurate detection of the App startup time, and further delaying the release time of the new version of the App.

[0229] Exemplary Electronic Device

[0230] An exemplary embodiment of the present disclosure also provides an electronic device. The electronic device may include a processor and a memory. The memory stores executable instructions of the processor, such as a computer program. The processor executes the method steps of various exemplary embodiments of the present disclosure by executing the executable instructions.

[0231] Next, with reference to Figure 9 , the electronic device will be described exemplarily in the form of a general computing device. It should be understood that Figure 9The displayed electronic device 900 is merely an example and should not impose limitations on the functions and usage scope of the embodiments of the present disclosure.

[0232] As Figure 9 shown, the electronic device 900 may include: a processor 910, a memory 920, a bus 930, an I / O (input / output) interface 940, and a network adapter 950.

[0233] The memory 920 may include volatile memory, such as RAM 921 and a cache unit 922, and may also include non-volatile memory, such as ROM 923. The memory 920 may also include one or more program modules 924. Such program modules 924 include, but are not limited to: an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include the implementation of a network environment. For example, the program module 924 may include each unit in the above-mentioned device.

[0234] The processor 910 may include one or more processing units. For example: the processor 910 may include an AP (Application Processor), a modem processor, a GPU (Graphics Processing Unit), an ISP (Image Signal Processor), a controller, an encoder, a decoder, a DSP (Digital Signal Processor), a baseband processor, and / or an NPU (Neural-Network Processing Unit), etc.

[0235] The processor 910 can be used to execute executable instructions stored in the memory 920. For example, it can execute the above-mentioned startup time-consuming processing method, which includes the following steps: Step 201: Determine a first function set corresponding to the first version of the application program and a second function set corresponding to the second version, where the first function set and the second function set include function information executed by the application program during the startup phase; Step 202: Insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain first execution time-consuming information corresponding to the first function set and second execution time-consuming information corresponding to the second function set through the monitoring code information; Step 203: Compare the first execution time-consuming information and the second execution time-consuming information to determine whether there is a situation of deteriorated startup time for the second version of the application program.

[0236] By executing the above method steps through the processor 910, it is possible to first obtain the function information executed by different versions of the application during the startup phase. In other words, only the functions executed during the startup phase are inspected, avoiding the omission of functions executed during the startup phase or the mis-determination of functions executed during other phases. Also, since it is by monitoring code information to detect whether there are new functions during the App startup phase, it is possible to accurately detect whether there are new functions during the App startup phase, thereby determining the occurrence of deteriorated startup time. And when it is determined that the deterioration occurs, since the present disclosure can determine the execution time information corresponding to the new functions, that is, it can directly locate the specific new function information, namely the function time consumption, which can assist developers in quickly locating and solving the deterioration problem, avoiding the situation where the inaccurate detection of the App startup time affects the performance of the App and the test results of the new version, and further causing delays in the release time of the new version of the App.

[0237] The bus 930 is used to implement the connection between different components of the electronic device 900, and may include a data bus, an address bus, and a control bus.

[0238] The electronic device 900 can communicate with one or more external devices 1000 (such as a keyboard, a mouse, an external controller, etc.) through the I / O interface 940.

[0239] The electronic device 900 can communicate with one or more networks through the network adapter 950. For example, the network adapter 950 can provide mobile communication solutions such as 3G / 4G / 5G, or provide wireless communication solutions such as wireless local area network, Bluetooth, near field communication, etc. The network adapter 950 can communicate with other modules of the electronic device 900 through the bus 930.

[0240] Although Figure 9 not shown in the figure, other hardware and / or software modules can also be provided in the electronic device 900, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0241] As can be seen from the above, the technical solution of the present disclosure can be implemented as a method, a device, a system, a computer program product, a storage medium, an electronic device, etc. Those skilled in the art can understand that various aspects of the present disclosure can be specifically implemented in the following forms, that is: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation combining hardware and software aspects, which can be respectively referred to as "circuit", "module", or "system".

[0242] It should be understood that the present disclosure is not limited to the specific method steps or structures described above and shown in the drawings, and various modifications and changes can be made without departing from its scope. Those skilled in the art will readily think of other embodiments based on the specific embodiments provided by the present disclosure. Therefore, the specific embodiments provided by the present disclosure are only exemplary, and the scope and spirit of the present disclosure are pointed out by the claims, and should cover any variations, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include the common general knowledge or conventional technical means in the technical field not disclosed by the present disclosure.

Claims

1. A startup time-consuming processing method, characterized in that: The method comprises: Determine a first function set corresponding to a first version of an application and a second function set corresponding to a second version of the application, wherein the first function set and the second function set include function information executed by the application during a startup phase; Insert monitoring code information into the function information of the first function set and the second function set respectively, and obtain first execution time consumption information corresponding to the first function set and second execution time consumption information corresponding to the second function set through the monitoring code information; The first execution time-consuming information is compared with the second execution time-consuming information to determine whether the second version of the application program has a startup time degradation.

2. The method according to claim 1, characterized in that Determining a first function set corresponding to a first version of an application and a second function set corresponding to a second version of the application includes: Determine a first function information set and a second function information set of a development object for developing a new version of the application; wherein the first function information set is obtained after the first version of the application corresponding to the development object is executed in the development environment; and the second function information set is obtained after the second version of the application corresponding to the development object is executed in the development environment; Determining, according to the first function information set, a first function set corresponding to the first version of the application; A second function set corresponding to the second version of the application is determined according to the second function information set.

3. The method according to claim 2, characterized in that Determine the first function information set of the development object, including: Determine each application account corresponding to each of the development objects; The first function information of each of the application accounts is determined respectively, and based on the obtained first function information, a first function information set of each of the development objects is determined.

4. The method according to claim 3, characterized in that Determining, according to the first function information set, a first function set corresponding to the first version of the application program, including: Determine a union of the first function information set and an initial function set corresponding to the first version of the application; The union is used as a first function set corresponding to the first version of the application.

5. The method according to any one of claims 1 to 4, characterized in that: Inserting monitoring code information into the function information of the first function set and the second function set respectively, and obtaining first execution time consuming information corresponding to the first function set through the monitoring code information, including: Performing bytecode instrumentation processing on each function in the first function set to obtain a first instrumented function set, and executing each business function in the first instrumented function set to determine the execution time of each of the business functions; First execution time consumption information is obtained according to the execution time consumption of each of the business functions and the unique identifier of each of the business functions.

6. The method according to claim 5, characterized in that Before performing bytecode instrumentation processing on each function in the first function set, the method further includes: Determine the package name of each function in the first function set; The first function set is filtered to include functions in a whitelist to obtain a first business function set; wherein the whitelist is a set of package names of non-system functions.

7. The method according to any one of claims 1 to 4, characterized in that: The first version of the application is a baseline version, and the functions that must be executed by the application of the baseline version during the startup phase constitute a baseline data whitelist; Comparing the first execution time-consuming information with the second execution time-consuming information to determine whether the second version of the application has a startup time degradation, including: If the first function in the second execution time information does not match any function in the first execution time information, it is determined that the second version of the application has a startup time degradation.

8. A time-consuming startup processing device, characterized in that: The device comprises: a determining unit, configured to determine a first function set corresponding to a first version of an application and a second function set corresponding to a second version of the application, wherein the first function set and the second function set include function information executed by the application during a startup phase; an acquiring unit, configured to insert monitoring code information into the function information of the first function set and the second function set respectively, and acquire first execution time consuming information corresponding to the first function set and second execution time consuming information corresponding to the second function set through the monitoring code information; The processing unit is used to compare the first execution time-consuming information with the second execution time-consuming information to determine whether there is a startup time degradation in the second version of the application.

9. An electronic device, characterized in that: include: processor; A memory, configured to store executable instructions of the processor; The processor is configured to perform the method of any one of claims 1 to 7 by executing the executable instructions.

10. A computer program product having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.