[go: up one dir, main page]

TWI888940B - Method and apparatus of measuring performance of application - Google Patents

Method and apparatus of measuring performance of application Download PDF

Info

Publication number
TWI888940B
TWI888940B TW112138011A TW112138011A TWI888940B TW I888940 B TWI888940 B TW I888940B TW 112138011 A TW112138011 A TW 112138011A TW 112138011 A TW112138011 A TW 112138011A TW I888940 B TWI888940 B TW I888940B
Authority
TW
Taiwan
Prior art keywords
application
type
measurement
metric
information
Prior art date
Application number
TW112138011A
Other languages
Chinese (zh)
Other versions
TW202424740A (en
Inventor
李鎮安
張載萬
孫天祺
Original Assignee
韓商韓領有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 韓商韓領有限公司 filed Critical 韓商韓領有限公司
Publication of TW202424740A publication Critical patent/TW202424740A/en
Application granted granted Critical
Publication of TWI888940B publication Critical patent/TWI888940B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本發明之一態樣可提供一種應用程式性能測量裝置。本發明之一態樣之裝置可包括:通訊電路,其與至少一個外部裝置通訊;一個以上之處理器;及一個以上之記憶體,其儲存有如下命令,該命令藉由上述一個以上之處理器執行時,使上述一個以上之處理器實行運算;上述一個以上之處理器以如下方式構成:獲得第1類型應用程式之第1度量集,獲得第2類型應用程式之第2度量集,基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊,確定上述第1類型應用程式及上述第2類型應用程式各自之狀態;上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊。One aspect of the present invention can provide an application performance measurement device. The device of one aspect of the present invention may include: a communication circuit that communicates with at least one external device; one or more processors; and one or more memories that store the following commands, which, when executed by the one or more processors, cause the one or more processors to perform operations; the one or more processors are configured as follows: a first metric set of a first type of application is obtained, a second metric set of a second type of application is obtained, and based on information of at least one measurement item included in the first metric set and the second metric set, the respective states of the first type of application and the second type of application are determined; the first metric set and the second metric set each include information of at least one common measurement item.

Description

測量應用程式之性能之裝置及方法Device and method for measuring performance of an application

本發明係關於一種用以提供測量應用程式之性能之方法之技術。The present invention relates to a technology for providing a method for measuring the performance of an application.

提供利用應用程式(Application)之服務之伺服器係操作該服務之主體,自利用服務之各用戶之裝置接收各種資料(例如,度量資料),並基於接收到之資料來判斷服務是否正常實行。即,伺服器自利用該服務之各用戶之裝置接收一個以上之測量項目之資訊,以評估提供給用戶之服務之品質。又,於一個伺服器利用不同之複數個應用程式來操作複數個服務之情形時,該伺服器應針對複數個服務之各者單獨接收一個以上之測量項目之資訊,並單獨評估複數個服務各自之品質。The server that provides services using applications is the main body of the service, receives various data (e.g., measurement data) from the devices of each user using the service, and determines whether the service is being implemented normally based on the received data. That is, the server receives information of one or more measurement items from the devices of each user using the service to evaluate the quality of the service provided to the user. In addition, when a server uses different multiple applications to operate multiple services, the server should receive information of one or more measurement items for each of the multiple services separately, and evaluate the quality of each of the multiple services separately.

然而,先前一個伺服器操作複數個服務時,針對每個服務而單獨實現用以管理服務之品質之代碼,因此需要反覆創建相同功能之代碼,並且需要一種藉由複數個服務之間統一之方法來管理度量資料之方法。又,於提供服務之運算處理負擔增加之尖峰時間段,調節管理度量資料之動作之處理量之技術需求不斷增加。However, previously, when a server operated multiple services, the code used to manage the quality of the service was implemented separately for each service, so the code for the same function had to be created repeatedly, and a method for managing metrics data in a unified way across multiple services was needed. In addition, during peak hours when the computing processing load of providing services increased, the technical requirements for adjusting the processing volume of the actions for managing metrics data continued to increase.

[發明所欲解決之問題][The problem the invention is trying to solve]

根據本發明之各種實施例,技術課題在於:為用戶指定之課題提供解決方案。According to various embodiments of the present invention, the technical subject is to provide a solution for a user-specified subject.

根據本發明之各種實施例,技術課題在於:使用戶能夠自其他用戶獲得解決特定課題之原始碼。According to various embodiments of the present invention, the technical problem is to enable users to obtain source code for solving specific problems from other users.

根據本發明之各種實施例,技術課題在於:使用戶能夠根據各種原始碼語言而獲得解決特定課題之原始碼。According to various embodiments of the present invention, the technical problem is to enable users to obtain source code for solving specific problems based on various source code languages.

根據本發明之各種實施例,技術課題在於:使用戶能夠獲得解決特定課題之原始碼,該特定課題係包括非公開資訊而需要創建原始碼者。 [解決問題之技術手段] According to various embodiments of the present invention, the technical problem is to enable users to obtain source code for solving specific problems, which include non-public information and require the creation of source code. [Technical means for solving the problem]

本發明之一態樣可提供一種應用程式性能測量裝置。本發明之一態樣之裝置可包括:通訊電路,其與至少一個外部裝置通訊;一個以上之處理器;及一個以上之記憶體,其儲存有如下命令,該命令藉由上述一個以上之處理器執行時,使上述一個以上之處理器實行運算;上述一個以上之處理器以如下方式構成:獲得第1類型應用程式之第1度量(metric)集,獲得第2類型應用程式之第2度量集,基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊,確定上述第1類型應用程式及上述第2類型應用程式各自之狀態;上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊。One aspect of the present invention may provide an application performance measurement device. The device of one aspect of the present invention may include: a communication circuit that communicates with at least one external device; one or more processors; and one or more memories that store the following commands, which, when executed by the one or more processors, cause the one or more processors to perform operations; the one or more processors are configured as follows: a first metric set of a first type of application is obtained, a second metric set of a second type of application is obtained, and based on information of at least one measurement item included in the first metric set and the second metric set, the respective states of the first type of application and the second type of application are determined; the first metric set and the second metric set each include information of at least one common measurement item.

於一實施例中,上述第1類型應用程式可為提供度量API(Application Programming Interface,應用程式設計介面)之類型之應用程式,該度量API係回傳測量項目之資訊者,上述第2類型應用程式可為不提供上述度量API之類型之應用程式。In one embodiment, the first type of application may be an application that provides a measurement API (Application Programming Interface) that returns information about measurement items, and the second type of application may be an application that does not provide the measurement API.

於一實施例中,上述一個以上之處理器可藉由自上述第1類型應用程式接收對上述度量API之呼叫之響應,從而獲得上述第1度量集,藉由在預先確定之特定時點自上述第2類型應用程式接收度量資料,從而獲得上述第2度量集。In one embodiment, the one or more processors may obtain the first set of metrics by receiving a response to a call to the metric API from the first type of application, and may obtain the second set of metrics by receiving metric data from the second type of application at a predetermined specific time point.

於一實施例中,上述第1類型應用程式可為基於用戶輸入而進行動作之前台(Foreground)應用程式,上述第2類型應用程式可為與用戶輸入無關地進行動作之後台(Background)應用程式。In one embodiment, the first type of application may be a foreground application that performs actions based on user input, and the second type of application may be a background application that performs actions independent of user input.

於一實施例中,上述共同測量項目可包括網際網路速度、API呼叫延遲時間(Latency)、或為了管理特定軟體而預先確定之測量項目中之至少一者。In one embodiment, the common measurement items may include Internet speed, API call latency, or at least one of the measurement items predetermined for managing specific software.

於一實施例中,上述一個以上之處理器可共同使用預先創建之特定函數,自上述第1類型應用程式及上述第2類型應用程式各者獲得上述至少一個共同測量項目之資訊。In one embodiment, the one or more processors may jointly use a pre-created specific function to obtain information of the at least one common measurement item from each of the first type of application and the second type of application.

於一實施例中,上述第1度量集或上述第2度量集可包括藉由用戶而定義之測量項目之資訊。In one embodiment, the first metric set or the second metric set may include information of measurement items defined by a user.

於一實施例中,上述第1類型應用程式或上述第2類型應用程式可為與電子商務相關之應用程式,藉由上述用戶而定義之測量項目包括應用程式動作錯誤代碼、應用程式錯誤是否導致訂單失敗、用戶是否取消訂單、或每分鐘訂單數量中之至少一者。In one embodiment, the above-mentioned Type 1 application or the above-mentioned Type 2 application may be an application related to e-commerce, and the measurement items defined by the above-mentioned user include at least one of the application action error code, whether the application error causes an order failure, whether the user cancels the order, or the number of orders per minute.

於一實施例中,上述一個以上之處理器可利用隊列(Queue)清單來依序處理上述至少一個測量項目之資訊。In one embodiment, the one or more processors may utilize a queue list to sequentially process the information of the at least one measurement item.

於一實施例中,上述一個以上之處理器可使用預先確定之個數之線程(Thread)來處理上述至少一個測量項目之資訊。In one embodiment, the one or more processors may use a predetermined number of threads to process the information of the at least one measurement item.

本發明之另一態樣可提供一種應用程式性能測量方法。本發明之一態樣之方法係藉由電子裝置而實行之方法,該電子裝置包括與至少一個外部裝置通訊之通訊電路、一個以上之處理器、及儲存有藉由上述一個以上之處理器而執行之至少一個命令之一個以上之記憶體,該方法可包括如下步驟:獲得第1類型應用程式之第1度量(metric)集;獲得第2類型應用程式之第2度量集;及基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊,確定上述第1類型應用程式及上述第2類型應用程式各自之狀態;上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊。Another aspect of the present invention may provide an application performance measurement method. The method of one aspect of the present invention is implemented by an electronic device, the electronic device including a communication circuit for communicating with at least one external device, one or more processors, and one or more memories storing at least one command executed by the one or more processors. The method may include the following steps: obtaining a first metric set of a first type of application; obtaining a second metric set of a second type of application; and determining the respective states of the first type of application and the second type of application based on information of at least one measurement item included in the first metric set and the second metric set; the first metric set and the second metric set respectively include information of at least one common measurement item.

於一實施例中,上述第1類型應用程式可為提供度量API(Application Programming Interface)之類型之應用程式,該度量API係回傳測量項目之資訊者,上述第2類型應用程式可為不提供上述度量API之類型之應用程式。In one embodiment, the first type of application may be an application that provides a measurement API (Application Programming Interface) that returns information of measurement items, and the second type of application may be an application that does not provide the measurement API.

於一實施例中,獲得上述第1度量集之步驟可包括如下步驟:藉由自上述第1類型應用程式接收對上述度量API之呼叫之響應,從而獲得上述第1度量集,獲得上述第2度量集之步驟包括如下步驟:藉由在預先確定之特定時點自上述第2類型應用程式接收度量資料,從而獲得上述第2度量集。In one embodiment, the step of obtaining the above-mentioned first metric set may include the following steps: obtaining the above-mentioned first metric set by receiving a response to the call to the above-mentioned metric API from the above-mentioned first type application, and the step of obtaining the above-mentioned second metric set includes the following steps: obtaining the above-mentioned second metric set by receiving metric data from the above-mentioned second type application at a predetermined specific time point.

於一實施例中,上述第1類型應用程式可為基於用戶輸入而進行動作之前台(Foreground)應用程式,上述第2類型應用程式可為與用戶輸入無關地進行動作之後台(Background)應用程式。In one embodiment, the first type of application may be a foreground application that performs actions based on user input, and the second type of application may be a background application that performs actions independent of user input.

於一實施例中,上述共同測量項目可包括網際網路速度、API呼叫延遲時間(Latency)、或為了管理特定軟體而預先確定之測量項目中之至少一者。In one embodiment, the common measurement items may include Internet speed, API call latency, or at least one of the measurement items predetermined for managing specific software.

於一實施例中,該方法可進而包括如下步驟:共同使用預先創建之特定函數,自上述第1類型應用程式及上述第2類型應用程式各者獲得上述至少一個共同測量項目之資訊。In one embodiment, the method may further include the following step: jointly using a pre-created specific function to obtain information of the at least one common measurement item from each of the first type of application and the second type of application.

於一實施例中,上述第1度量集或上述第2度量集可包括藉由用戶而定義之測量項目之資訊。In one embodiment, the first metric set or the second metric set may include information of measurement items defined by a user.

於一實施例中,上述第1類型應用程式或上述第2類型應用程式可為與電子商務相關之應用程式,藉由上述用戶而定義之測量項目包括應用程式動作錯誤代碼、應用程式錯誤是否導致訂單失敗、用戶是否取消訂單、或每分鐘訂單數量中之至少一者。In one embodiment, the above-mentioned Type 1 application or the above-mentioned Type 2 application may be an application related to e-commerce, and the measurement items defined by the above-mentioned user include at least one of the application action error code, whether the application error causes an order failure, whether the user cancels the order, or the number of orders per minute.

於一實施例中,上述方法可進而包括如下步驟:利用隊列(Queue)清單來依序處理上述至少一個測量項目之資訊。In one embodiment, the method may further include the following step: using a queue list to sequentially process the information of the at least one measurement item.

根據本發明之另一態樣,可揭示一種電腦可讀記錄媒體。一種非暫時性電腦記錄媒體記錄有藉由一個以上之處理器而執行時使上述一個以上之處理器實行動作之命令,其中,上述命令使上述一個以上之處理器以如下方式構成:獲得第1類型應用程式之第1度量(metric)集,獲得第2類型應用程式之第2度量集,基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊來匹配度量名稱及度量類型,從而產生匹配資料,將上述匹配資料傳輸至外部裝置。 [發明之效果] According to another aspect of the present invention, a computer-readable recording medium can be disclosed. A non-transitory computer recording medium records a command that causes the one or more processors to perform an action when executed by one or more processors, wherein the command causes the one or more processors to be configured as follows: obtain a first metric set of a first type of application, obtain a second metric set of a second type of application, match the metric name and metric type based on information of at least one measurement item included in the first metric set and the second metric set, thereby generating matching data, and transmitting the matching data to an external device. [Effect of the invention]

根據本發明之各種實施例,可藉由提高已創建之代碼(即,預先創建之特定函數)之可再用性,從而縮短應用程式產生時間。According to various embodiments of the present invention, the application generation time can be shortened by improving the reusability of the created code (i.e., the pre-created specific functions).

根據本發明之各種實施例,可對複數個應用程式應共同測量之測量項目之資訊進行綜合管理。According to various embodiments of the present invention, information of measurement items that should be measured by multiple applications can be comprehensively managed.

根據本發明之各種實施例,可減輕伺服器之運算負擔。According to various embodiments of the present invention, the computing burden of the server can be reduced.

根據本發明之各種實施例,可容易地實行度量資料之流量管理。According to various embodiments of the present invention, flow management of measurement data can be easily implemented.

本說明書中記載之各種實施例係以明確說明本發明之技術思想為目的而例示者,並不意欲將其限定為特定實施方式。本發明之技術思想包括本發明記載之各實施例之各種變更(modifications)、均等物(equivalents)、替代物(alternatives)及選擇性地組合各實施例之全部或一部分所得之實施例。又,本發明之技術思想之權利範圍並不限定於以下提出之各種實施例或對其之具體說明。The various embodiments described in this specification are exemplified for the purpose of clearly explaining the technical concept of the present invention, and are not intended to limit them to specific implementation methods. The technical concept of the present invention includes various modifications, equivalents, alternatives, and embodiments obtained by selectively combining all or part of the embodiments described in the present invention. In addition, the scope of rights of the technical concept of the present invention is not limited to the various embodiments presented below or their specific descriptions.

關於本發明中使用之用語,包括技術性或科學性用語,除非另外定義,否則應具有本發明所屬技術領域中具有常識者通常理解之含義。Unless otherwise defined, the terms used in the present invention, including technical or scientific terms, shall have the meanings commonly understood by those with common knowledge in the technical field to which the present invention belongs.

關於本說明書中使用之如「包括」、「可包括」、「具備」、「可具備」、「具有」、「可具有」等表述,意味著存在對象特徵(例如:功能、動作或構成要素等),不排除其他追加性特徵之存在。即,如上所述之表述應理解為具有包含其他實施例之可能性之開放型用語(open-ended terms)。The expressions such as "include", "may include", "have", "may have", "have", "may have", etc. used in this specification mean the existence of the target features (such as functions, actions or components, etc.) and do not exclude the existence of other additional features. That is, the expressions as described above should be understood as open-ended terms that have the possibility of including other embodiments.

關於本說明書中使用之單數型表述,除非另有提及,否則可包含複數型之含義,這同樣適用於申請專利範圍中記載之單數型表述。Singular expressions used in this specification may include plural expressions unless otherwise mentioned. The same applies to singular expressions recorded in the patent application.

關於本說明書中使用之「第1」、「第2」或「第一」、「第二」等表述,除非另有提及,否則係用以於指代複數個同類對象之情形時將某對象與其他對象進行區分,並非用以限定該等對象之順序或重要度。Unless otherwise mentioned, the expressions "1st", "2nd" or "first", "second" etc. used in this specification are used to distinguish an object from other objects when referring to multiple similar objects, and are not used to limit the order or importance of such objects.

本發明中使用之「A、B及C」、「A、B或C」、「A、B及/或C」或「A、B及C中至少一者」、「A、B或C中至少一者」、「A、B及/或C中至少一者」、「選自A、B及C中之至少一者」、「選自A、B或C中之至少一者」、「選自A、B及/或C中之至少一者」等表述可指列出之各個項目或列出之項目之所有可能的組合。例如,「選自A及B中之至少一者」可指(1)A,(2)A中之至少一者,(3)B,(4)B中之至少一者,(5)A中之至少一者及B中之至少一者,(6)A中之至少一者及B,(7)B中之至少一者及A,(8)A及B兩者。As used in the present invention, expressions such as "A, B and C", "A, B or C", "A, B and/or C", or "at least one of A, B and C", "at least one of A, B or C", "at least one of A, B and/or C", "at least one selected from A, B and C", "at least one selected from A, B or C", "at least one selected from A, B and/or C" may refer to each of the listed items or all possible combinations of the listed items. For example, "at least one selected from A and B" may refer to (1) A, (2) at least one of A, (3) B, (4) at least one of B, (5) at least one of A and at least one of B, (6) at least one of A and B, (7) at least one of B and A, and (8) both A and B.

本發明中使用之所謂「基於~」之表述,用於描述包含該表述之語句或文章中描述之對確定、判斷之行為或動作產生影響之一個以上的因素,該表述不排除對確定、判斷行為或動作產生影響之其他因素。The expression "based on..." used in the present invention is used to describe one or more factors that affect the behavior or action of determination or judgment described in the sentence or article containing the expression. The expression does not exclude other factors that affect the behavior or action of determination or judgment.

關於本說明書中使用之某個構成要素(例如:第1構成要素)「連接」或「連結」於另一構成要素(例如:第2構成要素)之表述,不僅可指上述某個構成要素直接連接或連結於上述另一構成要素,而且亦可指經由新的其他構成要素(例如:第3構成要素)而連接或連結。When used in this specification, the expression that a certain constituent element (for example, the first constituent element) is “connected” or “linked” to another constituent element (for example, the second constituent element) may refer not only to the direct connection or linking of the aforementioned certain constituent element to the aforementioned other constituent element, but also to the connection or linking via another new constituent element (for example, the third constituent element).

本發明中使用之表述「以~方式構成(configured to)」,根據上下文,可具有「以~方式設定」、「具有~之能力」、「以~方式變更」、「以~方式製成」、「可進行~」等含義。該表述不限定於「硬體上特別設計」之含義,例如,所謂以執行特定動作之方式構成之處理器可指可藉由執行軟體而實行特定動作之通用處理器(generic purpose processor)。The expression "configured to" used in the present invention may have the meanings of "set in a manner of", "having the ability of", "changed in a manner of", "made in a manner of", "capable of performing", etc., depending on the context. The expression is not limited to the meaning of "specially designed in hardware". For example, a processor configured to perform a specific action may refer to a generic purpose processor that can perform a specific action by executing software.

以下,參照附圖,對本發明中記載之各實施例進行說明。於附圖及附圖說明中,對相同或實質上等同(substantially equivalent)之構成要素賦予相同之參照符號。又,於以下實施例之說明中,可省略對相同或對應構成要素之重複描述,但這並不意味著該構成要素不包括於該實施例中。Hereinafter, the various embodiments described in the present invention are described with reference to the attached drawings. In the attached drawings and the attached drawings description, the same reference symbols are given to the same or substantially equivalent components. In the description of the following embodiments, the repeated description of the same or corresponding components may be omitted, but this does not mean that the components are not included in the embodiments.

圖1係概略性地表示根據本發明之一實施例而電子裝置10對自設置於用戶終端之一個以上之應用程式21、22獲得之度量(metric)資料23進行處理之動作的例示圖。於本發明中,度量資料可用作如下之值之統稱用語,即,表示向用戶提供之服務、軟體、程式、或應用程式之性能或狀態之至少一個度量項目(metric item)之值。度量項目例如可為是否連接網際網路、網路速度等。FIG. 1 schematically shows an example of an electronic device 10 processing metric data 23 obtained from one or more applications 21, 22 installed on a user terminal according to an embodiment of the present invention. In the present invention, metric data can be used as a general term for the following values, that is, the value of at least one metric item representing the performance or status of a service, software, program, or application provided to a user. The metric item can be, for example, whether the Internet is connected, the network speed, etc.

電子裝置10可為設置有應用程式之用戶終端。又,電子裝置10亦可為用戶終端外部之伺服器。以下,於本說明書內之若干實施例中,將電子裝置10假設為伺服器來對應用程式性能測量方法進行說明,但其僅為便於說明之假設,並不限制本發明,本說明書之揭示內容之應用程式性能測量方法亦可於設置有應用程式之用戶終端中實行。The electronic device 10 may be a user terminal equipped with an application. In addition, the electronic device 10 may also be a server outside the user terminal. In the following, in some embodiments in this specification, the electronic device 10 is assumed to be a server to explain the application performance measurement method, but this is only an assumption for the convenience of explanation and does not limit the present invention. The application performance measurement method disclosed in this specification can also be implemented in a user terminal equipped with an application.

電子裝置10可自第1類型應用程式21及第2類型應用程式22分別接收度量資料23,並藉由規定之方法對所接收到之度量資料23進行處理,從而確定第1類型應用程式21及第2類型應用程式22各自之狀態。第1類型應用程式21可指提供度量API(Application Programming Interface)之類型之應用程式。第1類型應用程式21可被稱為「長期運行(long-term running)應用程式」。與第1類型應用程式不同,第2類型應用程式22可為不提供響應於來自外部之度量資料傳輸請求之API之應用程式。第2類型應用程式22可被稱為「批次工件(batch job)應用程式」。The electronic device 10 can receive measurement data 23 from the first type application 21 and the second type application 22, respectively, and process the received measurement data 23 by a prescribed method, thereby determining the respective states of the first type application 21 and the second type application 22. The first type application 21 may refer to an application of the type that provides a measurement API (Application Programming Interface). The first type application 21 may be referred to as a "long-term running application." Unlike the first type application, the second type application 22 may be an application that does not provide an API that responds to measurement data transmission requests from the outside. The second type application 22 may be referred to as a "batch job application."

電子裝置10可藉由利用隊列(Queue)清單11、或包括預先確定之個數之線程(Thread)在內之線程池(thread pool)13,而對度量資料23進行處理。以下,對其進行具體說明。The electronic device 10 can process the metric data 23 by using a queue list 11 or a thread pool 13 including a predetermined number of threads. This will be described in detail below.

圖2係表示本發明之一實施例之包括伺服器100、用戶終端200及通訊網300之系統之圖。伺服器100及用戶終端200可根據本說明書中揭示之應用程式性能測量技術,藉由通訊網300而彼此發送或接收資訊。FIG2 is a diagram showing a system including a server 100, a user terminal 200 and a communication network 300 according to an embodiment of the present invention. The server 100 and the user terminal 200 can send or receive information to each other through the communication network 300 according to the application performance measurement technology disclosed in this specification.

伺服器100可為利用應用程式之服務提供者之電子裝置。服務提供者可為利用本說明書中揭示之應用程式之服務之運營主體。伺服器100係向有線或無線連接之用戶終端200傳輸資訊或提供服務之電子裝置,例如可為應用程式伺服器、代理伺服器、雲端伺服器。The server 100 may be an electronic device of a service provider using an application. The service provider may be an operator of a service using the application disclosed in this specification. The server 100 is an electronic device that transmits information or provides services to a user terminal 200 connected by wire or wireless, and may be, for example, an application server, a proxy server, or a cloud server.

用戶終端200可指一個以上之用戶終端或兩個以上之用戶終端集合。本說明書之揭示內容之各種實施例中,於用戶終端200指示兩個以上之用戶終端集合之情形時,各用戶終端可稱為第1用戶終端200-1、第2用戶終端200-2、...、第n用戶終端200-n(n係2以上之自然數)。The user terminal 200 may refer to one or more user terminals or a collection of two or more user terminals. In various embodiments disclosed in this specification, when the user terminal 200 refers to a collection of two or more user terminals, each user terminal may be referred to as the first user terminal 200-1, the second user terminal 200-2, ..., the nth user terminal 200-n (n is a natural number greater than 2).

用戶終端200可為利用伺服器100藉由應用程式來提供之服務的用戶之終端。用戶終端200例如可為智慧型手機、平板電腦(Tablet Computer)、PC(Personal Computer,個人電腦)、行動電話(Mobile Phone)、PDA(Personal Digital Assistant,個人數位助理)、音訊播放機(Audio Player)、可穿戴裝置(Wearable Device)中之至少一者。The user terminal 200 may be a terminal of a user who uses the service provided by the server 100 through an application. The user terminal 200 may be, for example, at least one of a smart phone, a tablet computer, a PC (Personal Computer), a mobile phone, a PDA (Personal Digital Assistant), an audio player, and a wearable device.

於本說明書之揭示內容中,於說明一個裝置之構成或動作時,所謂「裝置」之用語可用作如下用語,該用語係用以指稱作為說明對象之裝置,所謂「外部裝置」之用語可用作如下用語,該用語係自作為說明對象之裝置之觀點來看,用以指稱外部存在之裝置。例如,於將伺服器100作為「裝置」進行說明之情形時,自伺服器100之觀點來看,用戶終端200可被稱為「外部裝置」。又,例如,於將用戶終端200作為「裝置」進行說明之情形時,自用戶終端200之觀點來看,伺服器100可被稱為「外部裝置」。即,伺服器100及用戶終端200各自可根據動作主體之觀點分別被稱為「裝置」及「外部裝置」、或分別被稱為「外部裝置」及「裝置」。In the disclosure of this specification, when describing the configuration or operation of a device, the term "device" may be used as a term to refer to the device as the object of description, and the term "external device" may be used as a term to refer to an external device from the perspective of the device as the object of description. For example, when the server 100 is described as a "device", from the perspective of the server 100, the user terminal 200 may be called an "external device". Also, for example, when the user terminal 200 is described as a "device", from the perspective of the user terminal 200, the server 100 may be called an "external device". That is, the server 100 and the user terminal 200 may be referred to as a "device" and an "external device", or may be referred to as an "external device" and a "device", respectively, according to the perspective of the subject of the action.

通訊網300可包括有線或無線通訊網。通訊網300可使資料於伺服器100及用戶終端200之間進行交換。有線通訊網例如可包括USB(Universal Serial Bus,通用串列匯流排)、HDMI(High Definition Multimedia Interface,高畫質多媒體介面)、RS-232(Recommended Standard-232,推薦標準-232)或POTS(Plain Old Telephone Service,簡易老式電話業務)等方式之通訊網。無線通訊網例如可包括eMBB(enhanced Mobile Broadband,增強型行動寬頻)、URLLC(Ultra Reliable Low-Latency Communications,超可靠低延遲通訊)、MMTC(Massive Machine Type Communications,大規模機器型通訊)、LTE(Long-Term Evolution,長期演進)、LTE-A(LTE Advance,先進長期演進)、NR(New Radio,新無線)、UMTS(Universal Mobile Telecommunications System,通用行動通訊系統)、GSM(Global System for Mobile communications,全球行動通訊系統)、CDMA(Code Division Multiple Access,分碼多重存取)、WCDMA(Wideband CDMA,寬頻分碼多重存取)、WiBro(Wireless Broadband,無線寬頻)、WiFi(Wireless Fidelity,無線保真)、藍牙(Bluetooth)、NFC(Near Field Communication,近場通訊)、GPS(Global Positioning System,全球定位系統)或GNSS(Global Navigation Satellite System,全球導航衛星系統)等方式之無線通訊。本說明書之通訊網300並不限於上述示例,而可不受限制地包括允許於複數個主體或裝置之間交換資料之各種種類之通訊網。The communication network 300 may include a wired or wireless communication network. The communication network 300 may allow data to be exchanged between the server 100 and the user terminal 200. For example, the wired communication network may include a communication network such as USB (Universal Serial Bus), HDMI (High Definition Multimedia Interface), RS-232 (Recommended Standard-232) or POTS (Plain Old Telephone Service). Wireless communication networks may include, for example, eMBB (enhanced Mobile Broadband), URLLC (Ultra Reliable Low-Latency Communications), MMTC (Massive Machine Type Communications), LTE (Long-Term Evolution), LTE-A (LTE Advance), NR (New Radio), UMTS (Universal Mobile Telecommunications System), GSM (Global System for Mobile communications), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), WiBro (Wireless Broadband), WiFi (Wireless Fidelity), Bluetooth, NFC (Near Field Communication), GPS (Global Positioning System), etc. The communication network 300 of the present specification is not limited to the above examples, but may include various types of communication networks that allow data to be exchanged between multiple subjects or devices without limitation.

圖3係本說明書中揭示之內容之一實施例之伺服器100的方塊圖。伺服器100可包括一個以上之處理器110、通訊電路120或記憶體130作為構成要素。於某個實施例中,可省略伺服器100之構成要素中之至少一者、或將其他構成要素追加至伺服器100中。於某個實施例中,可附加地或替代地(in alternative to)整合一部分之構成要素而實現、或實現為單個或複數個個體。伺服器100內部或外部之構成要素中之至少一部分構成要素可藉由匯流排、GPIO(General Purpose Input/Output,通用目的輸入輸出)、SPI(Serial Peripheral Interface,串列周邊介面)或MIPI(Mobile Industry Processor Interface,行動產業處理器介面)等彼此連接,從而收發資料或信號。FIG3 is a block diagram of a server 100 of one embodiment of the content disclosed in this specification. The server 100 may include one or more processors 110, communication circuits 120, or memory 130 as components. In a certain embodiment, at least one of the components of the server 100 may be omitted, or other components may be added to the server 100. In a certain embodiment, a portion of the components may be integrated additionally or alternatively to be implemented, or may be implemented as a single or multiple entities. At least some of the components inside or outside the server 100 can be connected to each other via a bus, GPIO (General Purpose Input/Output), SPI (Serial Peripheral Interface) or MIPI (Mobile Industry Processor Interface) to send and receive data or signals.

一個以上之處理器110可表述為處理器110。若未於文中明確地進行不同之表述,則所謂處理器110之用語可指一個或一個以上之處理器之集合。處理器110可驅動軟體(例如,命令、程式等)而對連接於處理器110上之伺服器100之至少一個構成要素進行控制。又,處理器110可實行各種運算、處理、資料產生或加工等動作。又,處理器110可自記憶體130加載資料等,或將其儲存於記憶體130中。One or more processors 110 may be referred to as processor 110. Unless otherwise specified, the term processor 110 may refer to a collection of one or more processors. Processor 110 may drive software (e.g., commands, programs, etc.) to control at least one component of server 100 connected to processor 110. Processor 110 may perform various operations such as calculations, processing, data generation or processing, etc. Processor 110 may load data from memory 130 or store it in memory 130.

通訊電路120可實行伺服器100與其他裝置(例如,用戶終端200或其他伺服器)之間之無線或有線通訊。例如,通訊電路120可實行eMBB、URLLC、MMTC、LTE、LTE-A、NR、UMTS、GSM、CDMA、WCDMA、WiBro、WiFi、藍牙、NFC、GPS、或GNSS等方式之無線通訊。又,例如,通訊電路120可實行USB(Universal Serial Bus)、HDMI(High Definition Multimedia Interface)、RS-232(Recommended Standard-232)或POTS(Plain Old Telephone Service)等方式之有線通訊。The communication circuit 120 can implement wireless or wired communication between the server 100 and other devices (e.g., the user terminal 200 or other servers). For example, the communication circuit 120 can implement wireless communication in the form of eMBB, URLLC, MMTC, LTE, LTE-A, NR, UMTS, GSM, CDMA, WCDMA, WiBro, WiFi, Bluetooth, NFC, GPS, or GNSS. Also, for example, the communication circuit 120 can implement wired communication in the form of USB (Universal Serial Bus), HDMI (High Definition Multimedia Interface), RS-232 (Recommended Standard-232), or POTS (Plain Old Telephone Service).

記憶體130可儲存各種資料。儲存於記憶體130中之資料係由伺服器100之至少一個構成要素獲得、處理或使用之資料,可包括軟體(例如,命令、程式等)。記憶體130可包括揮發性或非揮發性記憶體。若未於文中明確地進行不同之表述,則所謂記憶體130之用語可指一個或一個以上之記憶體之集合。本說明書中提及之所謂「儲存於記憶體130中之命令(Instruction)之集合」或「儲存於記憶體130中之程式」之表述可用來指代用以控制伺服器100之資源之作業系統、應用軟體或中間軟體等,該中間軟體係將各種功能提供至應用軟體以使應用軟體能夠運用伺服器100之資源。於一實施例中,於處理器110實行特定運算時,記憶體130可儲存由處理器110實行並與特定運算對應之命令。The memory 130 can store various data. The data stored in the memory 130 is data obtained, processed or used by at least one component of the server 100, and may include software (e.g., commands, programs, etc.). The memory 130 may include volatile or non-volatile memory. If not explicitly stated differently in the text, the term memory 130 may refer to a collection of one or more memories. The expression "a set of instructions stored in the memory 130" or "a program stored in the memory 130" mentioned in this specification may be used to refer to an operating system, application software or middleware used to control the resources of the server 100. The middleware provides various functions to the application software so that the application software can use the resources of the server 100. In one embodiment, when the processor 110 executes a specific operation, the memory 130 may store the instructions executed by the processor 110 and corresponding to the specific operation.

於一實施例中,伺服器100可將處理器110之運算結果之資料、由通訊電路120接收之資料、或記憶體130中儲存之資料等傳輸至外部裝置。外部裝置可為用以輸出(顯示或表示)接收到之資料之裝置。外部裝置例如可為用戶終端200。In one embodiment, the server 100 may transmit the data of the calculation result of the processor 110, the data received by the communication circuit 120, or the data stored in the memory 130 to the external device. The external device may be a device for outputting (displaying or indicating) the received data. The external device may be, for example, the user terminal 200.

圖4係本說明書中揭示之內容之一實施例之用戶終端200的方塊圖。用戶終端200可包括一個以上之處理器210、通訊電路220或記憶體230作為構成要素。又,用戶終端200可進而包括輸入部240或輸出部250中之至少一者。FIG4 is a block diagram of a user terminal 200 of an embodiment of the content disclosed in this specification. The user terminal 200 may include one or more processors 210, communication circuits 220 or memory 230 as components. In addition, the user terminal 200 may further include at least one of an input unit 240 or an output unit 250.

處理器210可驅動軟體(例如,命令、程式等)而對連接於處理器110上之用戶終端200之至少一個構成要素進行控制。又,處理器210可實行各種運算、處理、資料產生或加工等動作。又,處理器210可自記憶體230加載資料等,或將其儲存於記憶體230。The processor 210 can drive software (e.g., commands, programs, etc.) to control at least one component of the user terminal 200 connected to the processor 110. In addition, the processor 210 can perform various operations such as calculations, processing, data generation or processing, etc. In addition, the processor 210 can load data from the memory 230 or store it in the memory 230.

通訊電路220可實行用戶終端200與其他裝置(例如,伺服器100或其他用戶終端)之間之無線或有線通訊。例如,通訊電路220可實行eMBB、URLLC、MMTC、LTE、LTE-A、NR、UMTS、GSM、CDMA、WCDMA、WiBro、WiFi、藍牙、NFC、GPS、或GNSS等方式之無線通訊。又,例如,通訊電路220可實行USB、HDMI、RS-232或POTS等方式之有線通訊。The communication circuit 220 can implement wireless or wired communication between the user terminal 200 and other devices (e.g., the server 100 or other user terminals). For example, the communication circuit 220 can implement wireless communication in the form of eMBB, URLLC, MMTC, LTE, LTE-A, NR, UMTS, GSM, CDMA, WCDMA, WiBro, WiFi, Bluetooth, NFC, GPS, or GNSS. Also, for example, the communication circuit 220 can implement wired communication in the form of USB, HDMI, RS-232, or POTS.

記憶體230可儲存各種資料。儲存於記憶體230中之資料係由用戶終端200之至少一個構成要素獲得、處理或使用之資料,可包括軟體(例如,命令、程式等)。記憶體230可包括揮發性或非揮發性記憶體。若未於文中明確地進行不同之表述,則所謂記憶體230之用語可指一個或一個以上之記憶體之集合。本說明書中提及之所謂「儲存於記憶體230中之命令(Instruction)之集合」或「儲存於記憶體230中之程式」之表述可用來指稱用以控制用戶終端200之資源之作業系統、應用軟體或中間軟體等,該中間軟體係將各種功能提供至應用軟體以使應用軟體能夠運用用戶終端200之資源。於一實施例中,於處理器210實行特定運算時,記憶體230可儲存由處理器210實行並與特定運算對應之命令。The memory 230 can store various data. The data stored in the memory 230 is data obtained, processed or used by at least one component of the user terminal 200, and may include software (e.g., commands, programs, etc.). The memory 230 may include volatile or non-volatile memory. If not explicitly stated differently in the text, the term memory 230 may refer to a collection of one or more memories. The expression "a set of instructions stored in the memory 230" or "a program stored in the memory 230" mentioned in this specification may be used to refer to an operating system, application software or middleware used to control the resources of the user terminal 200. The middleware provides various functions to the application software so that the application software can use the resources of the user terminal 200. In one embodiment, when the processor 210 executes a specific operation, the memory 230 may store the instructions executed by the processor 210 and corresponding to the specific operation.

於一實施例中,用戶終端200可進而包括輸入部240。輸入部240可為將自外部接收之資料發送至用戶終端200所包括之至少一個構成要素的構成要素。例如,輸入部240可包括滑鼠、鍵盤或觸控板等。In one embodiment, the user terminal 200 may further include an input unit 240. The input unit 240 may be a component that sends data received from the outside to at least one component included in the user terminal 200. For example, the input unit 240 may include a mouse, a keyboard, or a touch panel.

於一實施例中,用戶終端200可進而包括輸出部250。輸出部250可顯示(輸出)用戶終端200中處理之資訊或將其傳輸(發送)至外部。例如,輸出部250可視覺地顯示用戶終端200中處理之資訊。輸出部250可顯示UI(User Interface,用戶介面)資訊或GUI(Graphic User Interface,圖形用戶介面)資訊等。於該情形時,輸出部250可包括液晶顯示器(Liquid Crystal Display,LCD)、薄膜電晶體液晶顯示器(Thin Film Transistor-Liquid Crystal Display,TFT-LCD)、有機發光二級體(Organic Light-Emitting Diode,OLED)、可撓式顯示器(Flexible Display)、三維顯示器(3D Display)、電子墨水顯示器(E-ink Display)中之至少一者。又,例如輸出部250可聽覺地顯示用戶終端200中處理之資訊。輸出部250可藉由音響裝置來顯示遵循任意音訊檔格式(例如,MP3、FLAC、WAV等)方式之音頻資料。於該情形時,輸出部250可包括揚聲器、頭戴耳機、耳機中之至少一者。In one embodiment, the user terminal 200 may further include an output unit 250. The output unit 250 may display (output) information processed in the user terminal 200 or transmit (send) it to the outside. For example, the output unit 250 may visually display information processed in the user terminal 200. The output unit 250 may display UI (User Interface) information or GUI (Graphic User Interface) information, etc. In this case, the output unit 250 may include at least one of a liquid crystal display (LCD), a thin film transistor-liquid crystal display (TFT-LCD), an organic light-emitting diode (OLED), a flexible display, a three-dimensional display (3D Display), and an electronic ink display (E-ink Display). In addition, for example, the output unit 250 may audibly display information processed in the user terminal 200. The output unit 250 may display audio data in any audio file format (e.g., MP3, FLAC, WAV, etc.) through an audio device. In this case, the output unit 250 may include at least one of a speaker, a headphone, and an earphone.

圖5係根據本發明之一實施例而伺服器100測量複數個應用程式之性能之動作之順序圖。FIG. 5 is a sequence diagram of actions of the server 100 to measure the performance of a plurality of applications according to an embodiment of the present invention.

伺服器100可獲得第1類型應用程式之第1度量集(S510)。The server 100 may obtain a first metric set of a first type of application (S510).

於本說明書之揭示內容中,「第1類型應用程式」可指提供度量API(Application Programming Interface)之類型之應用程式。此處,「度量API」可指回傳測量項目之資訊之API。第1類型應用程式可提供用以響應於至少一個測量項目(例如,網際網路速度、API呼叫延遲等)之GET請求(request)之API。第1類型應用程式可為基於用戶輸入而進行動作之前台(Foreground)應用程式。具體而言,第1類型應用程式可為藉由用戶終端200之輸出部250等而與用戶進行交互作用(interaction),並與伺服器100收發資料之類型之應用程式。第1類型應用程式可為提供包括上述度量API在內之可自外部呼叫之各種API以作為前台應用程式進行動作之應用程式。In the disclosure of this specification, "Type 1 application" may refer to an application of the type that provides a measurement API (Application Programming Interface). Here, "measurement API" may refer to an API that returns information about a measurement item. Type 1 application may provide an API for responding to a GET request for at least one measurement item (e.g., Internet speed, API call latency, etc.). Type 1 application may be a foreground application that performs actions based on user input. Specifically, Type 1 application may be an application of the type that interacts with a user through the output unit 250 of the user terminal 200, etc., and sends and receives data with the server 100. The first type of application may be an application that provides various APIs that can be called externally, including the above-mentioned measurement API, so as to perform operations as a foreground application.

於本說明書之揭示內容中,「度量集」係度量資料(或測量指標資料)之集合,可指包括至少一個測量項目之集合。度量集可包括至少一個測量項目及各測量項目之值。以下,為了便於說明,一對測量項目及相應項目之值可稱為「測量項目之資訊」。In the disclosure of this specification, a "measurement set" is a set of measurement data (or measurement index data), which may refer to a set including at least one measurement item. A measurement set may include at least one measurement item and the value of each measurement item. In the following, for the convenience of explanation, a pair of measurement items and the value of the corresponding item may be referred to as "information of the measurement item".

第1度量集可為包括與第1類型應用程式相關之至少一個測量項目之資訊之度量集。例如,伺服器100可藉由自與第1類型應用程式相對應之特定應用程式(以下,亦稱為「A」應用程式)接收對度量API之呼叫之響應,從而獲得第1度量集。第1度量集可包括至少一個測量項目之資訊(例如,網際網路速度之資訊、API呼叫延遲時間之資訊等)。具體而言,處理器110可呼叫用戶終端200中設置之「A」應用程式所提供之API中的回傳當前連接之網際網路之速度之度量API(例如,GET請求),並響應於此而自「A」應用程式接收網際網路速度之值。又,處理器110可呼叫用戶終端200中設置之「A」應用程式所提供之API中的回傳用以使應用程式提供服務之特定API(例如,於提供應用程式電子商務服務之應用程式之情形時為自外部之配送企業獲取當前配送資訊之API等)之呼叫延遲時間(Latency)之度量API,並響應於此而自「A」應用程式接收API呼叫延遲時間之值。The first metric set may be a metric set that includes information about at least one measurement item related to the first type of application. For example, the server 100 may obtain the first metric set by receiving a response to a call to a metric API from a specific application corresponding to the first type of application (hereinafter, also referred to as the "A" application). The first metric set may include information about at least one measurement item (for example, information about Internet speed, information about API call latency, etc.). Specifically, the processor 110 may call a metric API (for example, a GET request) that returns the speed of the currently connected Internet in the API provided by the "A" application set in the user terminal 200, and receive the value of the Internet speed from the "A" application in response thereto. In addition, the processor 110 may call an API provided by the "A" application set in the user terminal 200 to return a call latency measurement API for a specific API for the application to provide services (for example, in the case of an application providing application e-commerce services, it is an API for obtaining current delivery information from an external delivery company, etc.), and in response, receive the API call latency value from the "A" application.

伺服器100可獲得第2類型應用程式之第2度量集(S520)。The server 100 may obtain a second metric set of the second type of application (S520).

於本說明書之揭示內容中,「第2類型應用程式」可指不提供度量API之類型之應用程式。例如,與第1類型應用程式不同,第2類型應用程式可為不提供響應於來自外部之度量資料傳輸請求之API之應用程式。第2類型應用程式可為與用戶輸入無關地進行動作之後台(Background)應用程式。具體而言,第2類型應用程式可為於用戶終端200中設置後根據用戶所允許之權限來收集用戶終端200之特定資料之應用程式。第2類型應用程式係後台應用程式,可為不提供度量API之類型之應用程式。第2類型應用程式可為於發生預先確定之特定事件(例如,發生錯誤)或經過規定週期時將度量資料傳輸至外部裝置(例如,伺服器100等)之應用程式。即,第2類型應用程式係不提供可自外部自由呼叫之度量API之應用程式,可為僅於由該應用程式定義之特定時點將所計算出之度量資料傳輸至外部裝置的應用程式。In the disclosure of this specification, "Type 2 application" may refer to an application of a type that does not provide a measurement API. For example, unlike Type 1 application, Type 2 application may be an application that does not provide an API that responds to external measurement data transmission requests. Type 2 application may be a background application that performs actions independent of user input. Specifically, Type 2 application may be an application that is set in user terminal 200 and collects specific data of user terminal 200 according to the permissions allowed by the user. Type 2 application is a background application and may be an application of a type that does not provide a measurement API. The second type of application may be an application that transmits measurement data to an external device (e.g., server 100, etc.) when a predetermined specific event (e.g., an error occurs) or a specified period has passed. That is, the second type of application is an application that does not provide a measurement API that can be freely called from the outside, and may be an application that transmits the calculated measurement data to an external device only at a specific time point defined by the application.

第2度量集可為包括與第2類型應用程式相關之至少一個測量項目之資訊之度量集。例如,伺服器100可藉由在預先確定之特定時點自與第2類型應用程式相對應之特定應用程式(以下,亦稱為「B」應用程式)接收度量資料,從而獲得第2度量集。預先確定之特定時點可於產生「B」應用程式時或將其下載至用戶終端200時,設定為內定值。第2度量集可包括至少一個測量項目之資訊(例如,網際網路速度之資訊、API呼叫延遲時間之資訊等)。具體而言,處理器110可於預先確定之特定時點自用戶終端200中設置之「B」應用程式接收網際網路速度之值。又,處理器110可於預先確定之特定時點自用戶終端200中設置之「B」應用程式接收API呼叫延遲時間之值。The second metric set may be a metric set including information of at least one measurement item related to the second type of application. For example, the server 100 may obtain the second metric set by receiving metric data from a specific application corresponding to the second type of application (hereinafter, also referred to as the "B" application) at a predetermined specific time point. The predetermined specific time point may be set as a default value when the "B" application is generated or downloaded to the user terminal 200. The second metric set may include information of at least one measurement item (for example, information of Internet speed, information of API call delay time, etc.). Specifically, the processor 110 may receive the value of Internet speed from the "B" application set in the user terminal 200 at a predetermined specific time point. Furthermore, the processor 110 may receive the value of the API call delay time from the "B" application set in the user terminal 200 at a predetermined specific time point.

本說明書之揭示內容之第1度量集及第2度量集可分別包括至少一個共同測量項目之資訊。例如,共同測量項目可包括網際網路速度、API呼叫延遲時間(Latency)、或為了管理特定軟體而預先確定之測量項目中之至少一者。此時,於作為為了管理特定軟體而預先確定之測量項目之一例,第1類型應用程式及第2類型應用程式均使用所謂「Kafka」之資料處理平台之情形時,第1度量集及第2度量集可包括用以監控Kafka之當前狀態(例如,未處理資料之量、單位時間資料處理量等)之一個以上之指標作為共同測量項目。又,於作為為了管理特定軟體而預先確定之測量項目之另一例,第1類型應用程式及第2類型應用程式均適用所謂「Redis」之資料庫之情形時,第1度量集及第2度量集可包括用以監控Redis之當前狀態(例如,資料庫容量等)之一個以上之指標作為共同測量項目。又,於作為為了管理特定軟體而預先確定之測量項目之另一例,第1類型應用程式及第2類型應用程式均使用所謂「HikariCP」之資料庫管理程式之情形時,第1度量集及第2度量集可包括用以監控HikariCP之當前狀態(例如,連接池之性能等)之一個以上之指標作為共同測量項目。The first metric set and the second metric set disclosed in this specification may each include information of at least one common measurement item. For example, the common measurement item may include Internet speed, API call latency, or at least one of the measurement items predetermined for managing specific software. At this time, as an example of a measurement item predetermined for managing specific software, when both the first type of application and the second type of application use the so-called "Kafka" data processing platform, the first metric set and the second metric set may include one or more indicators for monitoring the current status of Kafka (for example, the amount of unprocessed data, the amount of data processed per unit time, etc.) as a common measurement item. Furthermore, as another example of a measurement item predetermined for managing specific software, when both the first type application and the second type application use a database called "Redis", the first metric set and the second metric set may include one or more indicators for monitoring the current state of Redis (e.g., database capacity, etc.) as common measurement items. Furthermore, as another example of a measurement item predetermined for managing specific software, when both the first type application and the second type application use a database management program called "HikariCP", the first metric set and the second metric set may include one or more indicators for monitoring the current state of HikariCP (e.g., performance of the connection pool, etc.) as common measurement items.

於本發明之一實施例中,伺服器100可共同使用預先創建之特定函數,自第1類型應用程式及第2類型應用程式各者獲得至少一個共同測量項目之資訊。此處,預先創建之特定函數係原始碼(Source code)之集合,可指可共同應用於第1類型應用程式或第2類型應用程式之函數。例如,用以獲得網際網路速度之特定函數可以接收應用程式識別號、用戶終端識別號等作為輸入參數之方式預先產生。此時,伺服器100可藉由變更輸入參數地共同使用用以獲得網際網路速度之特定函數,而自第1類型應用程式及第2類型應用程式各者獲得網際網路速度之資訊。藉此,可藉由提高已創建之代碼(即,預先創建之特定函數)之可再用性,從而縮短應用程式產生時間。又,根據本發明,即便為如第1類型應用程式及第2類型應用程式之不同類型之應用程式,亦可藉由相同地使用針對各應用程式預先創建之特定函數,而對複數個應用程式應共同測量之測量項目之資訊進行綜合管理。In one embodiment of the present invention, the server 100 can use a pre-created specific function in common to obtain information of at least one common measurement item from each of the first type of application and the second type of application. Here, the pre-created specific function is a collection of source code, which can refer to functions that can be commonly applied to the first type of application or the second type of application. For example, a specific function for obtaining Internet speed can be pre-generated by receiving an application identification number, a user terminal identification number, etc. as input parameters. At this time, the server 100 can use the specific function for obtaining Internet speed in common by changing the input parameters, and obtain information of Internet speed from each of the first type of application and the second type of application. Thus, the application generation time can be shortened by improving the reusability of the created code (i.e., the pre-created specific function). Furthermore, according to the present invention, even for different types of applications such as the first type application and the second type application, information on measurement items that should be measured in common by multiple applications can be managed in an integrated manner by using the pre-created specific function for each application.

本說明書之揭示內容之第1度量集或第2度量集可包括由用戶定義之測量項目之資訊。例如,於第1類型應用程式及/或第2類型應用程式係與電子商務相關之應用程式之情形時,第1度量集或第2度量集可包括應用程式動作錯誤代碼、應用程式錯誤是否導致訂單失敗、用戶是否取消訂單、每分鐘訂單數量中之至少一者。應用程式動作錯誤代碼例如可指於應用程式實行特定動作時發生錯誤之情形時之相應錯誤之代碼(例如,401、404等)。應用程式錯誤是否導致訂單失敗例如可指如下測量項目值,該測量項目值於因應用程式之動作錯誤而導致用戶之訂單失敗之情形時具有值「1」,否則被賦予值「0」。用戶是否取消訂單例如可指如下測量項目值,該測量項目值於用戶直接取消訂單之情形時具有值「1」,否則被賦予值「0」。The first metric set or the second metric set disclosed in this specification may include information of measurement items defined by the user. For example, when the first type of application and/or the second type of application is an application related to e-commerce, the first metric set or the second metric set may include at least one of the application action error code, whether the application error causes an order failure, whether the user cancels the order, and the number of orders per minute. The application action error code may, for example, refer to the corresponding error code (e.g., 401, 404, etc.) when an error occurs when the application performs a specific action. Whether an application error causes an order failure may, for example, refer to a measurement item value that has a value of "1" when a user's order fails due to an application action error, and is otherwise assigned a value of "0". Whether a user cancels an order may, for example, refer to a measurement item value that has a value of "1" when the user directly cancels the order, and is otherwise assigned a value of "0".

伺服器100可基於第1度量集及第2度量集中包括之至少一個測量項目之資訊,確定第1類型應用程式及第2類型應用程式各自之狀態(S530)。例如,伺服器100可根據各應用程式之網際網路速度之資訊、API呼叫延遲時間資訊等,確定應用程式是否正常進行動作。具體而言,若度量集中包括之各測量項目之資訊中之特定測量項目之資訊出現異常,則處理器110可產生該應用程式存在錯誤之資訊,並通知伺服器100之用戶。The server 100 may determine the status of the first type of application and the second type of application based on the information of at least one measurement item included in the first measurement set and the second measurement set (S530). For example, the server 100 may determine whether the application is operating normally based on the information of the Internet speed of each application, the API call delay time information, etc. Specifically, if the information of a specific measurement item among the information of each measurement item included in the measurement set is abnormal, the processor 110 may generate information that the application has an error and notify the user of the server 100.

於本發明之一實施例中,伺服器100於對第1度量集及第2度量集中包括之至少一個測量項目之資訊進行處理時,可利用隊列(Queue)清單依序進行處理。處理器110可根據接收到第1度量集或第2度量集之時刻,將各度量集中包括之測量項目之資訊輸入至隊列清單中。例如,處理器110可將首先接收到之度量集中包括之測量項目之資訊優先輸入至隊列清單中。又,處理器110可根據各應用程式之優先級,將度量集中包括之測量項目之資訊輸入至隊列清單中。例如,於設定為第1類型應用程式之優先級高於第2類型應用程式之情形時,處理器110接收第1類型應用程式之第1度量集及第2類型應用程式之第2度量集兩者,即便先接收到第2度量集,若第2度量集尚未輸入至隊列清單中,則亦可將第1度量集優先輸入至隊列清單中。處理器110可自隊列清單依序導出並處理測量項目之資訊。即,處理器110可以先進先出(First-In-First-Out)方式對自不同應用程式接收之至少一個測量項目之資訊進行處理。於本發明中,上述隊列清單之大小可根據伺服器100管理之應用程式之個數或伺服器100之性能等而可變地確定。In one embodiment of the present invention, the server 100 may process the information of at least one measurement item included in the first measurement set and the second measurement set in sequence using a queue list. The processor 110 may input the information of the measurement items included in each measurement set into the queue list according to the time when the first measurement set or the second measurement set is received. For example, the processor 110 may input the information of the measurement items included in the measurement set received first into the queue list with priority. In addition, the processor 110 may input the information of the measurement items included in the measurement set into the queue list according to the priority of each application. For example, when the priority of the first type of application is set higher than that of the second type of application, the processor 110 receives both the first metric set of the first type of application and the second metric set of the second type of application. Even if the second metric set is received first, if the second metric set has not been input into the queue list, the first metric set may be input into the queue list with priority. The processor 110 may sequentially extract and process the information of the measurement items from the queue list. That is, the processor 110 may process the information of at least one measurement item received from different applications in a first-in-first-out manner. In the present invention, the size of the queue list may be variably determined according to the number of applications managed by the server 100 or the performance of the server 100.

處理器110可使用預先確定之個數之線程(Thread)來處理上述至少一個測量項目之資訊。關於用以處理測量項目之資訊之線程之預先確定的個數,可考慮用以管理服務之主線程之個數而設定為適當數量。例如,關於用以處理測量項目之資訊之線程之預先確定的個數,可考慮當前時間、服務情況、伺服器100運算量等而可變地確定。處理器110根據隊列清單依序處理測量項目之資訊,於存在當前可使用之可用線程(Thread)之情形時,可藉由自隊列清單導出測量項目之資訊並將其分配給可用線程,從而處理度量資料。The processor 110 may use a predetermined number of threads to process the information of at least one measurement item. The predetermined number of threads for processing the information of the measurement items may be set to an appropriate number in consideration of the number of main threads for managing services. For example, the predetermined number of threads for processing the information of the measurement items may be variably determined in consideration of the current time, service conditions, the amount of computing power of the server 100, etc. The processor 110 processes the information of the measurement items in sequence according to the queue list. When there are currently available threads, the processor 110 may process the measurement data by deriving the information of the measurement items from the queue list and assigning it to the available threads.

如上所述,根據利用隊列清單來處理至少一個測量項目之資訊的本發明之一實施例,即便在特定時間段自複數個應用程式集中接收測量項目之資訊,亦可於利用隊列清單調節流量之同時依序處理資訊,因此可減輕伺服器100之運算負擔。又,由於本發明使用隊列清單及預先確定之個數之線程來處理度量資料,因此可有效率地實行伺服器100之度量資料管理動作,而不損害基本服務動作之性能。As described above, according to an embodiment of the present invention that uses a queue list to process information of at least one measurement item, even if information of measurement items is received from multiple applications in a specific time period, the information can be processed in sequence while using the queue list to adjust the flow, thereby reducing the computational burden of the server 100. In addition, since the present invention uses a queue list and a predetermined number of threads to process measurement data, the measurement data management operation of the server 100 can be efficiently implemented without compromising the performance of basic service operations.

以下,對附加實施例進行說明,該附加實施例係如參照圖1於上文所敍述般實行本發明之應用程式性能測量方法之電子裝置10為用戶終端200之情形時的實施例。又,對於與上文關於電子裝置10為伺服器100之情形敍述之內容重複之內容進行省略,主要對其差異進行說明。The following describes an additional embodiment, which is an embodiment in which the electronic device 10 for implementing the application performance measurement method of the present invention as described above with reference to FIG. 1 is a user terminal 200. In addition, the contents that overlap with the contents described above in the case where the electronic device 10 is a server 100 are omitted, and the differences are mainly described.

於本發明之應用程式性能測量方法在用戶終端200中實行之情形時,用戶終端200可對自各應用程式接收到之度量資料進行分類,並將各度量資料之分類結果發送至伺服器100。即,於用戶終端200實行應用程式性能測量方法之情形時,圖5之各步驟中之S510及S520可如上所述由用戶終端200實行。又,處理器210可以規定方式,將各度量集中包括之測量項目之資訊發送至伺服器100。具體而言,處理器210可於藉由處理器210管理之至少一個線程而對自第1類型應用程式及第2類型應用程式各者接收到之第1度量集及第2度量集進行處理後,將其發送至伺服器100。處理器210為了處理度量資料而使用之線程可為與用以驅動第1類型應用程式或第2類型應用程式之線程有所區別之線程。用以處理度量資料之線程(thread)之數量可根據驅動各應用程式之用戶終端200之情況或性能而可變地確定。When the application performance measurement method of the present invention is implemented in the user terminal 200, the user terminal 200 can classify the metric data received from each application and send the classification results of each metric data to the server 100. That is, when the user terminal 200 implements the application performance measurement method, S510 and S520 in each step of FIG. 5 can be implemented by the user terminal 200 as described above. In addition, the processor 210 can send the information of the measurement items included in each metric set to the server 100 in a prescribed manner. Specifically, the processor 210 may process the first and second metric sets received from each of the first and second type applications by at least one thread managed by the processor 210 and then send them to the server 100. The thread used by the processor 210 to process the metric data may be a thread different from the thread used to drive the first or second type applications. The number of threads used to process the metric data may be variably determined according to the situation or performance of the user terminal 200 driving each application.

處理器210可將接收到之測量項目資訊之度量名稱(metric name)與度量類型(metric type)進行匹配,並將該匹配資料傳輸至伺服器100。伺服器100可藉由自處理器210接收與度量資料之分類結果相對應之匹配資料來減輕運算負擔。度量名稱可為上述預先創建之特定函數之名稱,並可根據作為測量對象之測量項目而預先確定。例如,度量名稱可預先確定為"order_succeed_metric"、"status_true_metric"、"status_false_metric"等。又,度量類型係用以對複數個測量項目進行分類之值,可根據度量名稱而預先確定並儲存於記憶體230中。處理器210可藉由參照記憶體230來確定與度量名稱匹配之度量類型並產生匹配資料。於測量項目之間度量類型不同之情形時,相應測量項目可以於視覺上不同之方式對管理者顯示、或於不同時點發送給管理者。又,於測量項目之間度量類型相同之情形時,相應測量項目可以於視覺上相同之方式對管理者顯示、或於相同時點發送給管理者。作為一例,度量資料可藉由伺服器100之顯示器(例如,儀錶板)而可視地顯示。度量類型例如可包括Counter、Gauge、Summary、Histogram等。The processor 210 can match the metric name and metric type of the received measurement item information, and transmit the matching data to the server 100. The server 100 can reduce the computational burden by receiving the matching data corresponding to the classification result of the metric data from the processor 210. The metric name can be the name of the above-mentioned pre-created specific function, and can be predetermined according to the measurement item as the measurement object. For example, the metric name can be predetermined as "order_succeed_metric", "status_true_metric", "status_false_metric", etc. In addition, the metric type is a value used to classify multiple measurement items, which can be predetermined according to the metric name and stored in the memory 230. The processor 210 can determine the metric type that matches the metric name by referring to the memory 230 and generate matching data. When the metric types are different between the measurement items, the corresponding measurement items can be displayed to the administrator in visually different ways or sent to the administrator at different times. In addition, when the metric types are the same between the measurement items, the corresponding measurement items can be displayed to the administrator in visually the same way or sent to the administrator at the same time. As an example, the metric data can be visually displayed by a display (e.g., a dashboard) of the server 100. Metric types can include, for example, Counter, Gauge, Summary, Histogram, etc.

如上所述,於本發明之應用程式性能測量方法在用戶終端200中實行之情形時,用戶終端200可於驅動各應用程式之同時單獨處理表示各應用程式之性能之度量資料。藉此,可減輕伺服器100側之運算負擔。又,為了不影響由應用程式提供之基本服務(例如,電子商務之訂購功能)之性能或品質,用戶終端200可被分配單獨線程以非同步地進行度量資料之處理,因此具有便於管理度量資料之流量之效果。As described above, when the application performance measurement method of the present invention is implemented in the user terminal 200, the user terminal 200 can independently process the measurement data representing the performance of each application while driving each application. In this way, the computing burden on the server 100 side can be reduced. In addition, in order not to affect the performance or quality of the basic service provided by the application (for example, the ordering function of e-commerce), the user terminal 200 can be allocated a separate thread to process the measurement data asynchronously, thereby having the effect of facilitating the management of the flow of the measurement data.

本發明之方法可為藉由電腦而實現之方法。於本發明中,按照規定順序表示該方法之各步驟並進行了說明,但各步驟除了可依序實行以外,亦可按照由本發明任意組合之順序實行。於一實施例中,可並行、反覆或啟發性地實行至少一部分步驟。本發明並不排除對該方法進行改變或修正。於一實施例中,可省略至少一部分步驟、或添加其他步驟。The method of the present invention may be a method implemented by a computer. In the present invention, each step of the method is represented and described in a prescribed order, but each step may be implemented in a sequence or in any order combined by the present invention. In one embodiment, at least a part of the steps may be implemented in parallel, repeatedly or heuristically. The present invention does not exclude changes or modifications to the method. In one embodiment, at least a part of the steps may be omitted or other steps may be added.

本發明之各種實施例可以機器(machine)可讀記錄媒體(machine-readable recording medium)中記錄之軟體之形式實現。軟體可為用以實現上述本發明之各種實施例之軟體。軟體可由本發明所屬之技術領域內之程式設計師根據本發明之各種實施例而推測出。例如,軟體可為機器可讀命令(例如:代碼或碼段)或程式。機器係可根據自記錄媒體呼叫之命令進行動作之裝置,例如可為電腦。於一實施例中,機器可為本發明之實施例之電子裝置10、伺服器100或用戶終端200。於一實施例中,機器之處理器可執行所呼叫之命令,而使機器之構成要素實行與該命令對應之功能。記錄媒體可指儲存由機器讀取之資料之所有種類之記錄媒體(recording medium)。記錄媒體可包括例如ROM(Read only memory,唯讀記憶體)、RAM(Random-access memory,隨機存取記憶體)、CD-ROM(Compact Disc Read-Only Memory,光碟唯讀記憶體)、磁帶、軟碟、光學資料儲存裝置等。於一實施例中,記錄媒體亦能夠以分散於由網路連接之電腦系統等中之形態實現。軟體可分散儲存於電腦系統等中來執行。記錄媒體可為非暫時性(non-transitory)記錄媒體。非暫時性記錄媒體係指與半永久或暫時性地儲存資訊無關地實際存在之有形媒體(tangible medium),不包括暫時(transitory)傳播之信號(signal)。Various embodiments of the present invention may be implemented in the form of software recorded in a machine-readable recording medium. The software may be software used to implement the various embodiments of the present invention described above. The software may be inferred by a programmer in the technical field to which the present invention belongs based on the various embodiments of the present invention. For example, the software may be a machine-readable command (e.g., code or code segment) or a program. A machine is a device that can perform actions based on commands called from a recording medium, such as a computer. In one embodiment, the machine may be an electronic device 10, a server 100, or a user terminal 200 of an embodiment of the present invention. In one embodiment, the processor of the machine can execute the called command, so that the components of the machine perform the function corresponding to the command. The recording medium can refer to all kinds of recording media (recording medium) that store data read by the machine. The recording medium may include, for example, ROM (Read only memory), RAM (Random-access memory), CD-ROM (Compact Disc Read-Only Memory), magnetic tape, floppy disk, optical data storage device, etc. In one embodiment, the recording medium can also be implemented in a form distributed in a computer system connected by a network. The software can be distributed and stored in a computer system, etc. for execution. The recording medium may be a non-transitory recording medium. Non-transitory recording media refers to a tangible medium that is not related to semi-permanent or temporary storage of information, and does not include transitory transmission signals.

以上,根據各種實施例對本發明之技術思想進行了說明,但本發明之技術思想包括可於本發明所屬之技術領域內具有常識者所能理解之範圍內實現之各種置換、變化及變更。又,應理解此種置換、變化及變更可包括於隨附之發明申請專利範圍內。本發明之實施例可彼此組合。各實施例可根據情形之數量以各種方式進行組合,組合而成之實施例亦屬於本發明之範圍。The technical concept of the present invention has been described above based on various embodiments, but the technical concept of the present invention includes various substitutions, changes and modifications that can be realized within the scope that can be understood by those with common sense in the technical field to which the present invention belongs. In addition, it should be understood that such substitutions, changes and modifications can be included in the scope of the accompanying invention application. The embodiments of the present invention can be combined with each other. Each embodiment can be combined in various ways according to the number of situations, and the combined embodiments also belong to the scope of the present invention.

10:電子裝置 11:隊列清單 13:線程池 21:第1類型應用程式 22:第2類型應用程式 23:度量資料 100:伺服器 110:處理器 120:通訊電路 130:記憶體 200:用戶終端 200-1:第1用戶終端 200-2:第2用戶終端 200-n:第n用戶終端 210:處理器 220:通訊電路 230:記憶體 240:輸入部 250:輸出部 300:通訊網 S510:步驟 S520:步驟 S530:步驟 10: electronic device 11: queue list 13: thread pool 21: first type application 22: second type application 23: measurement data 100: server 110: processor 120: communication circuit 130: memory 200: user terminal 200-1: first user terminal 200-2: second user terminal 200-n: nth user terminal 210: processor 220: communication circuit 230: memory 240: input unit 250: output unit 300: communication network S510: step S520: step S530: step

圖1係概略性地表示根據本發明之一實施例而電子裝置對自設置於用戶終端之一個以上之應用程式獲得之度量(metric)資料進行處理之動作的例示圖。 圖2係表示本發明之一實施例之包括伺服器、用戶終端及通訊網之系統之圖。 圖3係本說明書中揭示之內容之一實施例之伺服器的方塊圖。 圖4係本說明書中揭示之內容之一實施例之用戶終端的方塊圖。 圖5係根據本發明之一實施例而伺服器測量複數個應用程式之性能之動作之順序圖。 FIG. 1 schematically shows an example of an electronic device processing metric data obtained from one or more applications installed in a user terminal according to an embodiment of the present invention. FIG. 2 is a diagram showing a system including a server, a user terminal and a communication network according to an embodiment of the present invention. FIG. 3 is a block diagram of a server according to an embodiment of the content disclosed in this specification. FIG. 4 is a block diagram of a user terminal according to an embodiment of the content disclosed in this specification. FIG. 5 is a sequence diagram of an action of a server measuring the performance of multiple applications according to an embodiment of the present invention.

10:電子裝置 10: Electronic devices

11:隊列清單 11: Queue list

13:線程池 13: Thread pool

21:第1類型應用程式 21: Type 1 applications

22:第2類型應用程式 22: Type 2 applications

23:度量資料 23: Measurement data

Claims (18)

一種電子裝置,其包括:通訊電路,其與至少一個外部裝置通訊;一個以上之處理器;及一個以上之記憶體,其儲存有如下命令,該命令藉由上述一個以上之處理器執行時,使上述一個以上之處理器實行運算;上述一個以上之處理器以如下方式構成:獲得第1類型應用程式之第1度量集,獲得第2類型應用程式之第2度量集,基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊,確定上述第1類型應用程式及上述第2類型應用程式各自之狀態,其中上述第1度量集不同於上述第2度量集,上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊,及其中上述一個以上之處理器進一步經組態以:共同使用預先創建之特定函數,自上述第1類型應用程式及上述第2類型應用程式各者獲得上述至少一個共同測量項目之資訊。 An electronic device, comprising: a communication circuit, which communicates with at least one external device; one or more processors; and one or more memories, which store the following commands, which, when executed by the one or more processors, cause the one or more processors to perform operations; the one or more processors are configured as follows: obtaining a first metric set of a first type of application, obtaining a second metric set of a second type of application, and based on at least one of the first metric set and the second metric set, The information of the measurement items is used to determine the respective status of the above-mentioned first type application and the above-mentioned second type application, wherein the above-mentioned first measurement set is different from the above-mentioned second measurement set, and the above-mentioned first measurement set and the above-mentioned second measurement set respectively include information of at least one common measurement item, and wherein the above-mentioned one or more processors are further configured to: jointly use a pre-created specific function to obtain the above-mentioned at least one common measurement item information from each of the above-mentioned first type application and the above-mentioned second type application. 如請求項1之電子裝置,其中上述第1類型應用程式係提供度量API之類型之應用程式,該度量API係回傳測量項目之資訊者,上述第2類型應用程式係不提供上述度量API之類型之應用程式。 The electronic device of claim 1, wherein the first type of application is an application that provides a measurement API, and the measurement API returns information of measurement items, and the second type of application is an application that does not provide the measurement API. 如請求項2之電子裝置,其中上述一個以上之處理器藉由自上述第1類型應用程式接收對上述度量API之呼叫之響應,從而獲得上述第1度量集,藉由在預先確定之特定時點自上述第2類型應用程式接收度量資料,從而獲得上述第2度量集。 An electronic device as claimed in claim 2, wherein the one or more processors obtain the first metric set by receiving a response to a call to the metric API from the first type of application, and obtain the second metric set by receiving metric data from the second type of application at a predetermined specific time point. 如請求項2之電子裝置,其中上述第1類型應用程式係基於用戶輸入而進行動作之前台應用程式,上述第2類型應用程式係與用戶輸入無關地進行動作之後台應用程式。 As in claim 2, the electronic device, wherein the above-mentioned type 1 application is a foreground application that performs actions based on user input, and the above-mentioned type 2 application is a background application that performs actions independent of user input. 如請求項1之電子裝置,其中上述共同測量項目包括網際網路速度、API呼叫延遲時間、或為了管理特定軟體而預先確定之測量項目中之至少一者。 An electronic device as claimed in claim 1, wherein the common measurement items include Internet speed, API call latency, or at least one of the measurement items predetermined for managing specific software. 如請求項1之電子裝置,其中上述第1度量集或上述第2度量集包括藉由用戶而定義之測量項目之資訊。 An electronic device as claimed in claim 1, wherein the first measurement set or the second measurement set includes information of measurement items defined by a user. 如請求項6之電子裝置,其中上述第1類型應用程式或上述第2類型應用程式係與電子商務相關之應用程式,藉由上述用戶而定義之測量項目包括應用程式動作錯誤代碼、應用程式錯誤是否導致訂單失敗、用戶是否取消訂單、或每分鐘訂單數量中之至少一者。 The electronic device of claim 6, wherein the above-mentioned first type of application or the above-mentioned second type of application is an application related to e-commerce, and the measurement items defined by the above-mentioned user include at least one of the application action error code, whether the application error leads to order failure, whether the user cancels the order, or the number of orders per minute. 如請求項1之電子裝置,其中上述一個以上之處理器利用隊列清單來依序處理上述至少一個測量項目之資訊。 An electronic device as claimed in claim 1, wherein the one or more processors use a queue list to sequentially process the information of the at least one measurement item. 如請求項1之電子裝置,其中上述一個以上之處理器使用預先確定之個數之線程來處理上述至少一個測量項目之資訊。 An electronic device as claimed in claim 1, wherein the one or more processors use a predetermined number of threads to process information of the at least one measurement item. 一種藉由電子裝置實行之方法,該電子裝置包括與至少一個外部裝置通訊之通訊電路、一個以上之處理器、及儲存有藉由上述一個以上之處理器而執行之至少一個命令之一個以上之記憶體,該方法包括如下步驟:獲得第1類型應用程式之第1度量集;獲得第2類型應用程式之第2度量集;及基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊,確定上述第1類型應用程式及上述第2類型應用程式各自之狀態,其中上述第1度量集不同於上述第2度量集,上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊,及其中上述方法進而包括如下步驟:共同使用預先創建之特定函數,自上述第1類型應用程式及上述第2類型應用程式各者獲得上述至少一個共同測量項目之資訊。 A method implemented by an electronic device, the electronic device includes a communication circuit for communicating with at least one external device, one or more processors, and one or more memories storing at least one command executed by the one or more processors, the method including the following steps: obtaining a first metric set of a first type of application; obtaining a second metric set of a second type of application; and based on at least one measurement item included in the first metric set and the second metric set, The information of the first type of application and the second type of application is used to determine the respective status of the first type of application and the second type of application, wherein the first metric set is different from the second metric set, and the first metric set and the second metric set respectively include information of at least one common measurement item, and wherein the method further includes the following steps: jointly using a pre-created specific function to obtain the information of the at least one common measurement item from each of the first type of application and the second type of application. 如請求項10之方法,其中上述第1類型應用程式係提供度量API之類型之應用程式,該度量API係回傳測量項目之資訊者, 上述第2類型應用程式係不提供上述度量API之類型之應用程式。 As in the method of claim 10, the first type of application is an application of the type that provides a measurement API, and the measurement API returns information of a measurement item, and the second type of application is an application of the type that does not provide the measurement API. 如請求項11之方法,其中獲得上述第1度量集之步驟包括如下步驟:藉由自上述第1類型應用程式接收對上述度量API之呼叫之響應,從而獲得上述第1度量集,獲得上述第2度量集之步驟包括如下步驟:藉由在預先確定之特定時點自上述第2類型應用程式接收度量資料,從而獲得上述第2度量集。 The method of claim 11, wherein the step of obtaining the first metric set comprises the following steps: obtaining the first metric set by receiving a response to a call to the metric API from the first type of application, and the step of obtaining the second metric set comprises the following steps: obtaining the second metric set by receiving metric data from the second type of application at a predetermined specific time point. 如請求項11之方法,其中上述第1類型應用程式係基於用戶輸入而進行動作之前台應用程式,上述第2類型應用程式係與用戶輸入無關地進行動作之後台應用程式。 As in the method of claim 11, the first type of application is a foreground application that performs actions based on user input, and the second type of application is a background application that performs actions independent of user input. 如請求項10之方法,其中上述共同測量項目包括網際網路速度、API呼叫延遲時間、或為了管理特定軟體而預先確定之測量項目中之至少一者。 The method of claim 10, wherein the common measurement items include Internet speed, API call latency, or at least one of the measurement items predetermined for managing specific software. 如請求項10之方法,其中上述第1度量集或上述第2度量集包括藉由用戶而定義之測量項目之資訊。 The method of claim 10, wherein the first measurement set or the second measurement set includes information of measurement items defined by a user. 如請求項15之方法,其中上述第1類型應用程式或上述第2類型應用程式係與電子商務相關之應用程式, 藉由上述用戶而定義之測量項目包括應用程式動作錯誤代碼、應用程式錯誤是否導致訂單失敗、用戶是否取消訂單、或每分鐘訂單數量中之至少一者。 The method of claim 15, wherein the above-mentioned first type application or the above-mentioned second type application is an application related to e-commerce, and the measurement items defined by the above-mentioned user include at least one of the application action error code, whether the application error causes order failure, whether the user cancels the order, or the number of orders per minute. 如請求項10之方法,其進而包括如下步驟:利用隊列清單來依序處理上述至少一個測量項目之資訊。 The method of claim 10 further includes the following steps: using a queue list to sequentially process the information of at least one measurement item. 一種電腦可讀記錄媒體,其係記錄有藉由一個以上之處理器而執行時使上述一個以上之處理器實行動作之命令之非暫時性電腦記錄媒體,其中,上述命令使上述一個以上之處理器以如下方式構成:獲得第1類型應用程式之第1度量集,獲得第2類型應用程式之第2度量集,基於上述第1度量集及上述第2度量集中包括之至少一個測量項目之資訊來匹配度量名稱及度量類型,從而產生匹配資料,將上述匹配資料傳輸至外部裝置,其中上述第1度量集不同於上述第2度量集,其中上述第1度量集及上述第2度量集分別包括至少一個共同測量項目之資訊,及其中上述命令進一步經組態以使得上述一個以上之處理器:共同使用預先創建之特定函數,自上述第1類型應用程式及上述第2類型應用程式各者獲得上述至少一個共同測量項目之資訊。 A computer-readable recording medium is a non-transitory computer recording medium that records commands that, when executed by one or more processors, cause the one or more processors to perform actions, wherein the commands cause the one or more processors to be configured as follows: obtain a first metric set of a first type of application, obtain a second metric set of a second type of application, match metric names and metric types based on information of at least one measurement item included in the first metric set and the second metric set type, thereby generating matching data, transmitting the matching data to an external device, wherein the first measurement set is different from the second measurement set, wherein the first measurement set and the second measurement set respectively include information of at least one common measurement item, and wherein the command is further configured so that the one or more processors: jointly use a pre-created specific function to obtain the information of the at least one common measurement item from each of the first type application and the second type application.
TW112138011A 2022-11-28 2023-10-04 Method and apparatus of measuring performance of application TWI888940B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220161693A KR102617002B1 (en) 2022-11-28 2022-11-28 Method and apparatus of measuring performance of application
KR10-2022-0161693 2022-11-28

Publications (2)

Publication Number Publication Date
TW202424740A TW202424740A (en) 2024-06-16
TWI888940B true TWI888940B (en) 2025-07-01

Family

ID=89377554

Family Applications (2)

Application Number Title Priority Date Filing Date
TW114119910A TW202536652A (en) 2022-11-28 2023-10-04 Method and apparatus of measuring performance of application
TW112138011A TWI888940B (en) 2022-11-28 2023-10-04 Method and apparatus of measuring performance of application

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW114119910A TW202536652A (en) 2022-11-28 2023-10-04 Method and apparatus of measuring performance of application

Country Status (3)

Country Link
KR (2) KR102617002B1 (en)
TW (2) TW202536652A (en)
WO (1) WO2024117383A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201814512A (en) * 2016-10-04 2018-04-16 聯發科技股份有限公司 Scenario-based method and apparatus for performance and power management in electronic apparatus
CN109324962A (en) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 A kind of test method and equipment of the application program based on cloud internet of things technology
US11119752B2 (en) * 2019-12-03 2021-09-14 FinancialForce.com, Inc. Scalably providing multiple application updates to multiple subscribers
CN113608982A (en) * 2021-07-27 2021-11-05 远景智能国际私人投资有限公司 Function execution performance monitoring method and device, computer equipment and storage medium
CN114064450A (en) * 2020-08-10 2022-02-18 腾讯科技(深圳)有限公司 Application program testing method and device, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895579B2 (en) * 2006-06-16 2011-02-22 Microsoft Corporation Automated method and system for collecting and reporting API performance profiles
WO2009006231A1 (en) * 2007-06-29 2009-01-08 Numenta, Inc. Hierarchical temporal memory system with enhanced inference capability
KR101812583B1 (en) * 2011-07-21 2018-01-30 삼성전자주식회사 Apparatus or task assignment, method for task assignment and a computer-readable storage medium
CA3114899A1 (en) * 2018-10-02 2020-04-09 Tamas CSER Software testing
KR102365839B1 (en) * 2020-08-12 2022-02-21 숭실대학교산학협력단 Method and device for monitoring application performance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201814512A (en) * 2016-10-04 2018-04-16 聯發科技股份有限公司 Scenario-based method and apparatus for performance and power management in electronic apparatus
CN109324962A (en) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 A kind of test method and equipment of the application program based on cloud internet of things technology
US11119752B2 (en) * 2019-12-03 2021-09-14 FinancialForce.com, Inc. Scalably providing multiple application updates to multiple subscribers
CN114064450A (en) * 2020-08-10 2022-02-18 腾讯科技(深圳)有限公司 Application program testing method and device, electronic equipment and storage medium
CN113608982A (en) * 2021-07-27 2021-11-05 远景智能国际私人投资有限公司 Function execution performance monitoring method and device, computer equipment and storage medium

Also Published As

Publication number Publication date
TW202536652A (en) 2025-09-16
TW202424740A (en) 2024-06-16
KR102617002B1 (en) 2023-12-27
KR20240079187A (en) 2024-06-04
WO2024117383A1 (en) 2024-06-06

Similar Documents

Publication Publication Date Title
US11010215B2 (en) Recommending applications based on call requests between applications
CN109359118B (en) Method and device for writing data
CN107924337A (en) Performance Monitoring in Distributed Storage Systems
EP2979239A1 (en) Unifying cloud services for online sharing
US10814229B2 (en) Fragment-based mobile device application streaming utilizing crowd-sourcing
CN117992204A (en) Memory detection method, device, equipment and storage medium
US20220276845A1 (en) Systems and methods for consistent feature flag evaluation
US20240330021A1 (en) Contextual user interface component
CN112966201A (en) Object processing method, device, electronic equipment and storage medium
CN112800363A (en) Page display method and device, electronic equipment and computer readable medium
TWI888940B (en) Method and apparatus of measuring performance of application
WO2025124273A1 (en) Security audit method for distributed database and related device
CN113778350A (en) Log printing method and device
CN115454576B (en) A virtual machine process management method, system and electronic device
CN114328557B (en) Data processing method, device, electronic device and storage medium
CN114040381B (en) Encryption method, decryption device and electronic equipment
EP4105782A1 (en) Hardware accelerator service discovery
CN116708245A (en) An interface control method, device, and computer equipment
EP3063626A1 (en) Managing server membership
CN113821519B (en) A data processing method and domain-driven design architecture
KR102642735B1 (en) Apparatus, method and recording medium of providing information about api call
CN115167847A (en) Application log acquisition method, device, equipment and storage medium
CN113779468A (en) Method and apparatus for processing page interface data
TWI908183B (en) Method, apparatus, and non-transitory computer-readable recording medium storing instruction for rendering web page
CN117009179B (en) Method and device for realizing monitoring micro-service, storage medium and electronic equipment