KR20230057786A - Electronic device and method for optimizing performance of running application on the electronic device - Google Patents

Electronic device and method for optimizing performance of running application on the electronic device Download PDF

Info

Publication number
KR20230057786A
KR20230057786A KR1020210141980A KR20210141980A KR20230057786A KR 20230057786 A KR20230057786 A KR 20230057786A KR 1020210141980 A KR1020210141980 A KR 1020210141980A KR 20210141980 A KR20210141980 A KR 20210141980A KR 20230057786 A KR20230057786 A KR 20230057786A
Authority
KR
South Korea
Prior art keywords
application
data
electronic device
session
optimal performance
Prior art date
Application number
KR1020210141980A
Other languages
Korean (ko)
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 삼성전자주식회사
Priority to KR1020210141980A priority Critical patent/KR20230057786A/en
Priority to PCT/KR2022/012418 priority patent/WO2023068518A1/en
Publication of KR20230057786A publication Critical patent/KR20230057786A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Abstract

본 개시의 다양한 실시예에 따른 전자 장치는 통신 모듈, 디스플레이, 메모리, 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하고, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하고, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하고, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하고, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하도록 설정될 수 있으며, 다른 실시예도 가능할 수 있다.An electronic device according to various embodiments of the present disclosure includes a communication module, a display, a memory, and at least one processor, wherein the at least one processor acquires or identifies a classifier associated with the application based on an application execution request, and , While the application is running based on the first performance setting value, raw data of each of the sessions related to the execution of the application is obtained, and optimal performance of the application is obtained based on the raw data of each of the sessions using the classifier. Classifying data necessary for parameter acquisition and data unnecessary for acquiring the optimal performance parameter, obtaining an optimal performance parameter based on the data necessary for the optimal performance parameter, and corresponding the first performance setting value to the obtained optimal performance parameter It may be set to change to the second performance setting value, and other embodiments may be possible.

Description

전자 장치 및 전자 장치에서 어플리케이션 실행 성능 최적화 방법 {ELECTRONIC DEVICE AND METHOD FOR OPTIMIZING PERFORMANCE OF RUNNING APPLICATION ON THE ELECTRONIC DEVICE}Electronic device and method for optimizing application execution performance in electronic device

본 개시의 다양한 실시예들은 전자 장치에서 어플리케이션 실행 성능 최적화 방법에 관한 것이다.Various embodiments of the present disclosure relate to a method for optimizing application execution performance in an electronic device.

전자, 정보, 통신 기술이 발달하면서, 하나의 휴대용 통신 장치 또는 전자 장치에 다양한 기능이 통합되고 있다. 예를 들어, 스마트 폰은 통신 기능과 아울러, 음향 재생 기기, 촬상 기기 또는 전자 수첩의 기능을 포함하고 있으며, 다양한 어플리케이션들의 설치 및 실행을 통해 더욱 다양한 기능이 스마트 폰에서 구현될 수 있다. 또한 전자 장치는 다양한 성능(또는 사양)으로 구현되고 있으며, 전자 장치에서 실행되는 어플리케이션(예: 게임 어플리케이션)이 요구하는 성능 수준도 높아지고 있다.BACKGROUND As electronic, information, and communication technologies develop, various functions are being integrated into a single portable communication device or electronic device. For example, a smart phone includes a communication function as well as a function of a sound reproducing device, an imaging device, or an electronic organizer, and more various functions can be implemented in the smart phone through the installation and execution of various applications. In addition, electronic devices are being implemented with various performances (or specifications), and performance levels required by applications (eg, game applications) executed on electronic devices are also increasing.

어플리케이션이 원활히 실행되기 위해 요구되는 성능은 높은 반면 어플리케이션이 실행될 전자 장치의 성능이 낮은 경우 어플케이션 실행 시 성능 최적화가 필요할 수 있다. 예를 들면, 동일한 게임 어플리케이션에 대해 고성능 전자 장치에서는 게임 어플리케이션이 원활하게 실행(또는 구동)되는 반면, 상대적으로 저성능 전자 장치에서는 게임 어플리케이션 실행 중 반응 속도가 저하되거나 화면 프레임이 끊기거나, 데이터 처리량 부하로 인해 발열 등이 발생할 수 있다. 어플리케이션이 전자 장치에서 원활히 실행될 수 있도록 하기 위해서는 전자 장치와 어플리케이션 간의 최적 성능값을 찾는 것이 중요할 수 있다.When the performance required to smoothly execute the application is high, but the performance of an electronic device to execute the application is low, performance optimization may be required when the application is executed. For example, for the same game application, the game application is smoothly executed (or driven) on a high-performance electronic device, whereas, on a relatively low-performance electronic device, the reaction speed is slowed down, screen frames are cut off, or data throughput is reduced while the game application is running. Heat may be generated due to the load. It may be important to find an optimal performance value between the electronic device and the application so that the application can be smoothly executed in the electronic device.

본 개시의 다양한 실시예에 따르면, 전자 장치에서 어플리케이션의 원활한 실행을 위한 최적 성능값을 획득하고, 최적 성능값에 기반하여 어플리케이션을 실행하도록 할 수 있는 전자 장치 및 전자 장치에서 어플리케이션 실행 성능 최적화 방법을 제공하고자 한다.According to various embodiments of the present disclosure, an electronic device capable of acquiring an optimal performance value for smooth execution of an application in an electronic device and executing the application based on the optimal performance value and a method for optimizing application execution performance in the electronic device want to provide

또한 본 개시의 다양한 실시예에 따르면, 전자 장치에서 어플리케이션 실행 시 수집 가능한 데이터들 중 최적 성능값 획득에 필요한 데이터와 최적 성능값 측정에 불필요한 데이터를 식별하고 최적 성능값 획득에 필요한 데이터를 수집하여 최적 성능값을 획득함으로써 보다 정확한 최적 성능값을 획득할 수 있고, 보다 정확한 최적 성능값에 기반하여 어플리케이션을 실행하도록 할 수 있는 전자 장치 및 전자 장치에서 어플리케이션 실행 성능 최적화 방법을 제공하고자 한다. In addition, according to various embodiments of the present disclosure, among data that can be collected when an application is executed in an electronic device, data necessary for obtaining an optimal performance value and data unnecessary for measuring an optimal performance value are identified, and data necessary for obtaining an optimal performance value is collected to optimize the optimal performance value. It is intended to provide an electronic device and a method for optimizing application execution performance in an electronic device capable of obtaining a more accurate optimal performance value by acquiring a performance value and executing an application based on the more accurate optimal performance value.

본 개시의 일 실시예에 따르면, 전자 장치는 통신 모듈, 디스플레이, 메모리, 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하고, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하고, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하고, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하고, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하도록 설정될 수 있다.According to an embodiment of the present disclosure, an electronic device includes a communication module, a display, a memory, and at least one processor, and the at least one processor obtains or identifies a classifier associated with the application based on an application execution request. and obtaining raw data of each of the sessions related to the execution of the application while the application is being executed based on a first performance setting value, and using the classifier to obtain an optimum of the application based on the raw data of each of the sessions. Classifying data necessary for obtaining performance parameters and data unnecessary for acquiring optimal performance parameters, obtaining optimal performance parameters based on data necessary for the optimal performance parameters, and assigning the first performance set value to the obtained optimal performance parameters. It may be set to change to the corresponding second performance setting value.

또한 본 개시의 일 실시예에 따르면, 전자 장치에서 어플리케이션 실행 성능 최적화 방법에 있어서, 상기 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함할 수 있다.Further, according to an embodiment of the present disclosure, in a method for optimizing application execution performance in an electronic device, an operation of acquiring or identifying a classifier associated with the application based on the application execution request, and the application based on a first performance setting value Obtaining raw data of each of the sessions associated with the execution of the application while executing, obtaining data and optimal performance parameters necessary for obtaining the optimal performance parameters of the application based on the raw data of each of the sessions using the classifier classifying data unnecessary to the optimal performance parameter, acquiring an optimal performance parameter based on data necessary for the optimal performance parameter, and changing the first performance set value to a second performance set value corresponding to the obtained optimal performance parameter. action may be included.

또한 본 개시의 일 실시예에 따르면, 명령들을 저장하고 있는 비휘발성 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함할 수 있다.In addition, according to an embodiment of the present disclosure, in a non-volatile storage medium storing instructions, the instructions are set to cause the at least one processor to perform at least one operation when executed by at least one processor, The at least one operation may include an operation of acquiring or identifying a classifier associated with the application based on an application execution request, raw data of each of sessions associated with the application execution while the application is executing based on a first performance setting value Obtaining, using the classifier, based on the raw data of each of the sessions, classifying data necessary for obtaining the optimal performance parameter of the application and data unnecessary for obtaining the optimal performance parameter, data necessary for the optimal performance parameter An operation of acquiring an optimal performance parameter based on , and an operation of changing the first performance set value to a second performance set value corresponding to the obtained optimal performance parameter.

또한 본 개시의 일 실시예에 따르면, 서버에 있어서, 통신 모듈, 메모리, 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 지정된 수집 기간 동안 지정된 적어도 하나의 전자 장치로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 상기 통신 모듈을 통해 수집하고, 상기 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고, 상기 세션별 세그먼트들 각각의 상기 특징값들을 비지도 방법으로 학습하여 군집화하고, 상기 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득하고, 상기 분류 모델 기반의 분류기를 획득하도록 설정될 수 있다.Further, according to an embodiment of the present disclosure, a server includes a communication module, a memory, and at least one processor, wherein the at least one processor provides a specified performance value from at least one specified electronic device during a specified collection period. Raw data when a designated application is executed is collected through the communication module, the collected raw data is segmented by session to identify feature values based on the raw data of each segment by session, and each of the segments by session It may be set to cluster by learning the feature values in an unsupervised method, to obtain a classification model by performing supervised learning on the clustering result, and to obtain a classifier based on the classification model.

또한 본 개시의 일 실시예에 따르면, 서버에서 분류기 생성 방법에 있어서, 지정된 수집 기간 동안 지정된 적어도 하나의 전자 장치로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 통신 모듈을 통해 수집하는 동작, 상기 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하는 동작, 상기 세션별 세그먼트들 각각의 상기 특징값들을 비지도 방법으로 학습하여 군집화하는 동작, 및 상기 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득하고, 상기 분류 모델 기반의 분류기를 획득하는 동작을 포함할 수 있다.Also, according to an embodiment of the present disclosure, in a method for generating a classifier in a server, collecting raw data through a communication module when a specified application is executed with a specified performance value from at least one specified electronic device during a specified collection period; Segmenting the collected raw data by session to identify feature values based on the raw data of each segment for each session, learning and clustering the feature values of each segment by session using an unsupervised method, and It may include an operation of performing supervised learning on the clustering result to obtain a classification model and obtaining a classifier based on the classification model.

본 개시의 다양한 실시예에 따른 전자 장치는 어플리케이션의 원활한 실행을 위한 최적 성능값을 획득하고, 최적 성능값에 기반하여 어플리케이션을 실행함으로써 어플리케이션 실행 성능 저하 및/또는 발열 발생을 줄일 수 있다.An electronic device according to various embodiments of the present disclosure may reduce application execution performance deterioration and/or generation of heat by obtaining an optimal performance value for smooth execution of an application and executing the application based on the optimal performance value.

또한 본 개시의 다양한 실시예에 따르면, 전자 장치에서 어플리케이션 실행 시 수집 가능한 데이터들 중 최적 성능값 획득에 필요한 데이터와 최적 성능값 측정에 불필요한 데이터를 식별하고 최적 성능값 획득에 필요한 데이터를 수집하여 최적 성능값을 획득함으로써 보다 정확한 최적 성능값을 획득할 수 있고, 보다 정확한 최적 성능값에 기반하여 어플리케이션을 실행하도록 함으로써, 부정확한 최적 성능값으로 인한 성능 저하 또는 발열 발생을 줄일 수 있다. In addition, according to various embodiments of the present disclosure, among data that can be collected when an application is executed in an electronic device, data necessary for obtaining an optimal performance value and data unnecessary for measuring an optimal performance value are identified, and data necessary for obtaining an optimal performance value is collected to optimize the optimal performance value. By acquiring the performance value, a more accurate optimal performance value can be obtained, and by executing an application based on the more accurate optimal performance value, performance degradation or generation of heat caused by the inaccurate optimal performance value can be reduced.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below. will be.

도 1은 일 실시예에 따른 네트워크 환경을 나타내는 도면이다.
도 2는 일 실시예에 따른 전자 장치와 서버의 블록도이다.
도 3은 일 실시예에 따른 전자 장치 및 서버에서 어플리케이션 실행 성능 최적화 동작의 흐름도이다.
도 4는 일 실시예에 따른 전자 장치 및 서버에서 분류기를 이용하여 어플리케이션 실행 성능을 최적화하는 동작의 흐름도이다.
도 5는 일 실시예에 따른 전자 장치에서 분류기를 이용하여 어플리케이션 실행 성능을 최적화하는 동작의 흐름도이다.
도 6은 일 실시예에 따른 서버에서 분류기를 생성하는 동작의 흐름도이다.
도 7은 일 실시예에 따른 전자 장치에서 어플리케이션의 세션을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 서버에서 게임 어플리케이션의 성능 최적화에 이용하기 위한 분류기 생성 동작을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 서버에서 획득된 세션 세그먼트 로우 데이터에서 FPS와 전자 장치의 표면 온도의 예를 나타낸 그래프이다.
도 10은 일 실시예에 따른 전자 장치에서 디스플레이되는 어플리케이션 화면들과 어플리케이션 화면들 각각에 대응하여 서버에서 획득된 로우 데이터들의 예를 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 세션별 로우 데이터의 FPS 분포도를 나타낸 그래프이다.
도 12는 일 실시예에 따른 세션별 로우 데이터의 PST 분포도를 나타낸 그래프이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
1 is a diagram illustrating a network environment according to an exemplary embodiment.
2 is a block diagram of an electronic device and a server according to an exemplary embodiment.
3 is a flowchart of an application execution performance optimization operation in an electronic device and a server according to an embodiment.
4 is a flowchart of an operation of optimizing application execution performance using a classifier in an electronic device and a server according to an exemplary embodiment.
5 is a flowchart of an operation of optimizing application execution performance using a classifier in an electronic device according to an exemplary embodiment.
6 is a flowchart of an operation of generating a classifier in a server according to an embodiment.
7 is a diagram for describing a session of an application in an electronic device according to an exemplary embodiment.
8 is a diagram for explaining an operation of generating a classifier for use in performance optimization of a game application in a server according to an exemplary embodiment.
9 is a graph illustrating an example of an FPS and a surface temperature of an electronic device in session segment raw data obtained from a server according to an embodiment.
10 is a diagram for explaining examples of application screens displayed on an electronic device and raw data obtained from a server corresponding to each of the application screens according to an exemplary embodiment.
11 is a graph showing an FPS distribution of raw data for each session according to an embodiment.
12 is a graph showing a PST distribution of raw data for each session according to an embodiment.
In connection with the description of the drawings, the same or similar reference numerals may be used for the same or similar elements.

이하, 첨부된 도면들을 참조하여 다양한 실시예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시예에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예를 들어, 인공지능 전자 장치)를 지칭할 수 있다.Hereinafter, electronic devices according to various embodiments will be described with reference to the accompanying drawings. The term user used in various embodiments may refer to a person using an electronic device or a device (eg, an artificial intelligence electronic device) using an electronic device.

본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 발명의 실시예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the art of the present invention. Terms defined in commonly used dictionaries may be interpreted as having the same or similar meanings as those in the context of the related art, and unless explicitly defined in this document, they are not interpreted in ideal or excessively formal meanings. . In some cases, even terms defined in this document cannot be interpreted to exclude embodiments of the present invention.

도 1은 일 실시예에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 1 is a block diagram of an electronic device 101 within a network environment 100 according to an embodiment.

도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.Referring to FIG. 1 , in a network environment 100, an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 . According to an embodiment, the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included. In some embodiments, in the electronic device 101, at least one of these components (eg, the connection terminal 178) may be omitted or one or more other components may be added. In some embodiments, some of these components (eg, sensor module 176, camera module 180, or antenna module 197) are integrated into a single component (eg, display module 160). It can be.

프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 120, for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 . According to one embodiment, the processor 120 includes a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor). For example, when the electronic device 101 includes the main processor 121 and the auxiliary processor 123, the auxiliary processor 123 may use less power than the main processor 121 or be set to be specialized for a designated function. can The secondary processor 123 may be implemented separately from or as part of the main processor 121 .

보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다. The secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, running an application). ) state, together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states. According to one embodiment, the auxiliary processor 123 (eg, an image signal processor or a communication processor) may be implemented as part of other functionally related components (eg, the camera module 180 or the communication module 190). there is. According to an embodiment, the auxiliary processor 123 (eg, a neural network processing device) may include a hardware structure specialized for processing an artificial intelligence model. AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited. The artificial intelligence model may include a plurality of artificial neural network layers. Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples. The artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.

메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 . The data may include, for example, input data or output data for software (eg, program 140) and commands related thereto. The memory 130 may include volatile memory 132 or non-volatile memory 134 .

프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142 , middleware 144 , or an application 146 .

입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user). The input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).

음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The sound output module 155 may output sound signals to the outside of the electronic device 101 . The sound output module 155 may include, for example, a speaker or a receiver. The speaker can be used for general purposes such as multimedia playback or recording playback. A receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.

디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module 160 may visually provide information to the outside of the electronic device 101 (eg, a user). The display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device. According to an embodiment, the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.

오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module 170 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).

센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do. According to one embodiment, the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.

인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102). According to one embodiment, the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102). According to one embodiment, the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).

햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user may perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.

전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module 188 may manage power supplied to the electronic device 101 . According to one embodiment, the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.

배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery 189 may supply power to at least one component of the electronic device 101 . According to one embodiment, the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.

통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. The communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported. The communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication. According to one embodiment, the communication module 190 may be a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, a : a local area network (LAN) communication module or a power line communication module). Among these communication modules, a corresponding communication module is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, a LAN or a WAN). These various types of communication modules may be integrated as one component (eg, a single chip) or implemented as a plurality of separate components (eg, multiple chips). The wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199. The electronic device 101 may be identified or authenticated.

무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 1eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology). NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)). -latency communications)) can be supported. The wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example. The wireless communication module 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported. The wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199). According to an embodiment, the wireless communication module 192 is configured to achieve peak data rate (eg, 20 Gbps or more) for realizing 1eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency (for realizing URLLC). Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) may be supported.

안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다. The antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device). According to an embodiment, the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB). According to one embodiment, the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. can be chosen A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna. According to some embodiments, other components (eg, a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module 197 in addition to the radiator.

다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module 197 may form a mmWave antenna module. According to one embodiment, the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.

상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( e.g. commands or data) can be exchanged with each other.

일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. According to an embodiment, commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 . Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 . According to an embodiment, all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 . For example, when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself. Alternatively or additionally, one or more external electronic devices may be requested to perform the function or at least part of the service. One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 101 . The electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed. To this end, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.

전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.The electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device 104 may include an internet of things (IoT) device. Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199 . The electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.

도 2는 일 실시예에 따른 전자 장치와 서버의 블록도이다. 2 is a block diagram of an electronic device and a server according to an exemplary embodiment.

도 2를 참조하면, 일 실시예에 따른 전자 장치(201)(예: 도 1의 전자 장치(101))는 적어도 하나의 프로세서(이하, 프로세서라고도 함)(220), 메모리(230), 디스플레이(260), 오디오 모듈(270), 및/또는 통신 모듈(290)을 포함하여 구성될 수 있다. 전자 장치(201)는 이에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성 또는 상기 구성들 중 일부를 제외하여 구성될 수 있다. 일 실시예에 따른 전자 장치(201)는 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 더 포함할 수 있다.Referring to FIG. 2 , an electronic device 201 (eg, the electronic device 101 of FIG. 1) according to an embodiment includes at least one processor (hereinafter referred to as a processor) 220, a memory 230, and a display. 260 , an audio module 270 , and/or a communication module 290 . The electronic device 201 is not limited thereto and may further include various components or may be configured except for some of the components. The electronic device 201 according to an embodiment may further include all or part of the electronic device 101 shown in FIG. 1 .

일 실시예에 따른 프로세서(220)는 통신 모듈(290)을 이용하여 서버(208)(예: 도 1의 서버(108))로부터 어플리케이션을 다운로드 받아 설치 및 실행하거나 기 다운로드된 어플리케이션을 실행할 수 있다. The processor 220 according to an embodiment may download, install, and execute an application from the server 208 (eg, the server 108 of FIG. 1) using the communication module 290, or may execute a pre-downloaded application. .

일 실시예에 따른 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)에 기반하여 서버(208)에 어플리케이션이 지정된 어플리케이션인지 여부를 문의할 수 있다. 예를 들면, 지정된 어플리케이션은 최적 성능값 설정이 요구되는 어플리케이션일 수 있다. 예를 들면 지정된 어플리케이션은 게임 어플리케이션일 수 있다. 일 실시예에 따른 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인 것에 응답하여 지정된 성능 설정값(예: 제1 성능 설정값 또는 제1 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. 일 실시예에 따른 프로세서(220)는 어플리케이션 실행과 연관된 로우 데이터를 기반으로 세션 기반 데이터를 획득할 수 있다. 예를 들면, 어플리케이션은 전자 장치(201)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 예를 들면, 어플리케이션이 포그라운드(예: 제1 포그라운드)에서 백그라운드로 실행되다가 다시 포그라운드(예: 제2 포그라운드)로 실행되는 경우 제1 포그라운드 기간이 제1 세션일 수 있고, 제2 포그라운드 기간이 제2 세션일 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션(예: 제1 세션 또는 제2 세션 또는 다른 세션)에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 세션 기반 데이터로서 획득할 수 있다. 일 실시예에 따른 프로세서(220)는 세션 기반 데이터를 서버(208)에 전송하고, 서버로부터 세션 기반 데이터 분석에 기반한 최적 성능 파라미터를 수신할 수 있다. 프로세서(220)는 최적 성능 파라미터에 기반하여 성능 설정값(예: 제2 성능 설정값 또는 제2 설정값)을 식별하고, 제2 성능 설정값에 기반하여 어플리케이션을 실행할 수 있다. 다시 말해 프로세서(220)는 제1 성능 설정값으로 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션을 실행할 수 있다. 또한 프로세서(220)는 제2 성능 설정값으로 어플리케이션 실행 중 제3 성능 설정값 식별 시 제3 설정값에 기반하여 어플리케이션을 실행할 수도 있다. The processor 220 according to an embodiment may inquire whether the application is a specified application to the server 208 based on an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the designated application may be an application requiring an optimal performance value setting. For example, the designated application may be a game application. The processor 220 according to an embodiment executes the application based on a specified performance setting value (eg, a first performance setting value or a first setting value) in response to the application requested to be executed being a designated application (eg, a game application). Execute and obtain raw data associated with application execution. For example, raw data associated with application execution may include raw data for a plurality of elements associated with application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include at least one of the network types being accessed. The processor 220 according to an embodiment may obtain session-based data based on raw data related to application execution. For example, an application may be in a foreground state or a background state when executed in the electronic device 201, and a session may mean a foreground state. For example, when an application is executed in the background in the foreground (eg, the first foreground) and then again in the foreground (eg, the second foreground), the first foreground period may be the first session, and the first foreground period may be the first session. 2 Foreground periods may be the second session. The processor 220 according to an embodiment provides summary (or processed) information (eg, an average value of each of a plurality of elements, and / or k quantiles of each of the plurality of factors) may be obtained as session-based data. The processor 220 according to an embodiment may transmit the session-based data to the server 208 and receive optimal performance parameters based on the analysis of the session-based data from the server. The processor 220 may identify a performance setting value (eg, a second performance setting value or a second setting value) based on the optimal performance parameter, and execute an application based on the second performance setting value. In other words, the processor 220 may execute the application with the second performance setting value when identifying the second performance setting value while the application is running with the first performance setting value. In addition, the processor 220 may execute the application based on the third performance setting value when identifying the third performance setting value while the application is running with the second performance setting value.

일 실시예에 따르면 세션 기반 로우 데이터는 어플리케이션 화면이 디스플레이(260)에 노출되는 모든 시간 동안 지정된 시간 단위(예: 초단위)로 수집된 데이터를 포함할 수 있으며, 이러한 세션 기반 로우 데이터는 어플리케이션의 최적 성능 측정에 불필요한 데이터를 포함할 수 있다. 예를 들면, 전자 장치(201)에서 어플리케이션(예: 게임)이 로딩되고 있거나, 어플리케이션 실행 중 일시 정지 화면(예: 게임이 시작되기 전 대기실 화면)이 표시되고 있거나, 어플리케이션 실행 중 일정 시간 사용자의 입력이 없거나, 어플리케이션 실행 중 절전 및/또는 최소 성능 모드 상태인 경우의 로우 데이터는 프로세서(220)의 비교적 낮은 성능이 요구되는 경우로서, 어플리케이션의 최적 성능 측정에 불필요한 로우 데이터일 수 있다. 일 실시예에 따른 프로세서(220)는 어플리케이션 실행 시 지정된 분류기를 이용하여 각 세션의 로우 데이터를 기반으로 최적 성능 측정에 필요한 데이터(예: 인 게임 데이터)와 최적 성능 측정에 불필요한 데이터(예: 낫 인 게임 데이터)를 식별하고, 최적 성능 측정에 필요한 데이터 기반의 최적 성능 파라미터를 수신하여 이용할 수 있다. 다시 말해, 일 실시예에 따른 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인 것에 응답하여 서버(208)로부터 지정된 어플리케이션에 대응하여 미리 지정된 분류기를 수신하거나, 기 저장된 분류기를 식별할 수 있다. 일 실시 예에 따른 프로세서(220)는 지정된 성능 설정값(예: 제1 성능 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 일 실시예에 따른 프로세서(220)는 분류기를 이용하여 각 세션의 로우 데이터를 기반으로 최적 성능 측정에 필요한 데이터와 최적 성능 측정에 불필요한 데이터를 식별하고, 최적 성능 측정에 필요한 데이터를 획득할 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션의 로우 데이터를 전처리 하고 특징값을 추출한 후 각 세션의 로우 데이터 특징값을 기반으로 최적 성능 측정에 필요한 데이터와 최적 성능 측정에 불필요한 데이터를 식별하고, 최적 성능 측정에 필요한 데이터를 획득할 수 있다. 예를 들면, 프로세서(220)는 세션별 세그멘테이션을 수행하고, 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류하고 분류 결과 지정된 조건을 만족하는 세션별 세그먼트 기반 데이터를 획득할 수 있다. 프로세서(220)는 세션별 세그먼트 기반 데이터를 서버(208)에 전송하고, 서버(208)로부터 지정된 조건의 세션 별 세그먼트 기반 최적 성능 파라미터를 수신할 수 있다. 프로세서(220)는 최적 성능 파라미터에 기반하여 성능 설정값(예: 제2 성능 설정값)을 식별하고, 제2 성능 설정값에 기반하여 어플리케이션을 실행할 수 있다. According to one embodiment, the session-based raw data may include data collected in a specified time unit (eg, second unit) for all the time that the application screen is exposed on the display 260, and such session-based raw data is May include data that is unnecessary for optimal performance measurement. For example, an application (eg, game) is being loaded on the electronic device 201, a paused screen (eg, waiting room screen before the game starts) is being displayed while the application is running, or a user's Raw data when there is no input or in the power saving and/or minimum performance mode state during application execution is a case where relatively low performance of the processor 220 is required, and may be raw data unnecessary for measuring the optimal performance of the application. According to an embodiment, the processor 220 uses a designated classifier when executing an application, and based on raw data of each session, data necessary for measuring optimal performance (eg, in-game data) and data unnecessary for measuring optimal performance (eg, sickle data) in-game data), and receive and use data-based optimal performance parameters necessary for optimal performance measurement. In other words, the processor 220 according to an embodiment receives a pre-designated classifier corresponding to the designated application from the server 208 in response to the fact that the application requested to be executed is a designated application (eg, a game application), or a pre-stored classifier. can identify. According to an embodiment, the processor 220 may execute an application based on a designated performance setting value (eg, a first performance setting value) and obtain raw data related to application execution. The processor 220 according to an embodiment may identify data necessary for measuring optimal performance and data unnecessary for measuring optimal performance based on raw data of each session using a classifier, and may obtain data necessary for measuring optimal performance. . The processor 220 according to an embodiment preprocesses raw data of each session, extracts feature values, and identifies data required for optimal performance measurement and data unnecessary for optimal performance measurement based on feature values of raw data of each session, Data required for optimal performance measurement can be obtained. For example, the processor 220 performs session-by-session segmentation, and uses a classifier to classify data of segments that satisfy a specified condition (eg, in-game data) and segments that do not satisfy a specified condition. It is possible to classify data (eg, not in-game data) and obtain segment-based data for each session that satisfies specified conditions as a result of the classification. The processor 220 may transmit segment-based data for each session to the server 208 and receive, from the server 208 , a segment-based optimal performance parameter for each session under a specified condition. The processor 220 may identify a performance setting value (eg, a second performance setting value) based on the optimal performance parameter and execute an application based on the second performance setting value.

일 실시예에 따른 프로세서(220)는 app runner(221), performance tuner(223), 및/또는 agent(225)를 포함할 수 있다. 예를 들어, app runner(221), performance tuner(223), 및/또는 agent(225)는 프로세서(220)에 의해 실행되는 소프트웨어 모듈일 수 있다. 또는, app runner(221), performance tuner(223), 및/또는 agent(225)는 프로세서(220)에 포함되거나 또는 독립적으로 존재하는 하드웨어 모듈일 수도 있다.The processor 220 according to an embodiment may include an app runner 221 , a performance tuner 223 , and/or an agent 225 . For example, the app runner 221 , performance tuner 223 , and/or agent 225 may be software modules executed by the processor 220 . Alternatively, the app runner 221 , performance tuner 223 , and/or agent 225 may be included in the processor 220 or may be independent hardware modules.

일 실시예에 따른 App runner(221)는 어플리케이션 실행 요청에 기반하여 설정된 성능 설정값(제1 성능 설정값)에 기반하여 어플리케이션을 실행할 수 있다. The App runner 221 according to an embodiment may execute an application based on a performance setting value (first performance setting value) set based on an application execution request.

일 실시예에 따른 performance tuner(223)는 어플리케이션 실행과 연관된 로우 데이터를 획득하여 저장하거나 agent(225)에 전달되도록 할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행 시 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류를 포함할 수 있다. 일 실시예에 따른 Performance tuner(223)는 어플리케이션 실행과 연관된 로우 데이터 전달에 대한 응답으로 최적 성능 파라미터를 수신할 수 있다. 일 실시예에 따른 Performance tuner(223)는 수신된 최적 성능 파라미터에 대응된 설정 성능값(제2 성능 설정값)으로 어플리케이션이 실행되도록 app runner(221)를 제어할 수 있다.The performance tuner 223 according to an embodiment may acquire and store raw data related to application execution, or may transmit it to the agent 225 . For example, raw data associated with application execution may include raw data for a plurality of elements during application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include the type of network being accessed. The performance tuner 223 according to an embodiment may receive an optimal performance parameter in response to delivery of raw data related to application execution. The performance tuner 223 according to an embodiment may control the app runner 221 to execute an application with a set performance value (second performance set value) corresponding to the received optimal performance parameter.

일 실시예에 따른 agent(225)는 실행중인 어플리케이션에 대응된 분류기를 식별할 수 있다. 일 실시예에 따른 agent(225)는 performance tuner(223)로부터 수집된 어플리케이션 실행과 연관된 로우 데이터를 세션 세그멘테이션 데이터로 분할하고, 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 일 실시예에 따른 agent(225)는 분류 결과 지정된 조건을 만족하는 세션별 세그먼트 기반 데이터를 획득하여 서버(208)로 전송할 수 있다. 일 실시예에 따른 agent(225)는 서버(208)로부터 지정된 조건의 세션 별 세그먼트 기반 최적 성능 파라미터를 수신하여 Performance tuner(223)에 전달할 수 있다. 일 실시예에 따른 agent(225)는 fixed-length session segmentation(225-1) 모듈, classifying segment(225-2) 모듈, 및/또는 session segmentation wide summarization based on classified segment(225-3) 모듈을 포함할 수 있다. 일 실시예에 따른 fixed-length session segmentation(225-1) 모듈은 수집된 어플리케이션 실행과 연관된 로우 데이터를 세션 세그멘테이션 데이터로 분할할 수 있다. 일 실시예에 따른 classifying segment(225-2) 모듈은 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 일 실시예에 따른 session segmentation wide summarization based on classified segment(225-3) 모듈은 분류 결과 지정된 조건을 만족하는 세션별 세그먼트 기반 데이터를 획득하여 서버(208)로 전송할 수 있다.The agent 225 according to an embodiment may identify a classifier corresponding to an application being executed. According to an embodiment, the agent 225 divides raw data related to application execution collected from the performance tuner 223 into session segmentation data, and converts data of segments for each session into data of segments satisfying specified conditions using a classifier. (eg, in-game data) and data of segments that do not satisfy specified conditions (eg, not-in-game data). As a result of the classification, the agent 225 according to an embodiment may acquire segment-based data for each session that satisfies a specified condition and transmit it to the server 208 . According to an embodiment, the agent 225 may receive, from the server 208 , segment-based optimal performance parameters for each session under a specified condition, and transmit the received parameters to the performance tuner 223 . The agent 225 according to an embodiment includes a fixed-length session segmentation (225-1) module, a classifying segment (225-2) module, and/or a session segmentation wide summarization based on classified segment (225-3) module. can do. The fixed-length session segmentation module 225-1 according to an embodiment may divide the collected raw data associated with application execution into session segmentation data. The classifying segment 225-2 module according to an embodiment classifies data of segments for each session into data of segments that satisfy specified conditions (eg, in-game data) and data of segments that do not satisfy specified conditions (eg, in-game data). Example: not in-game data). The session segmentation wide summarization based on classified segment module 225 - 3 according to an embodiment may acquire segment-based data for each session that satisfies a specified condition as a result of the classification and transmit it to the server 208 .

일 실시예에 따른 메모리(230)는 어플리케이션을 저장할 수 있고, 어플리케이션과 연관된 분류기를 저장할 수 있다. 예를 들어, 메모리(230)는 게임 어플리케이션(기능 또는 프로그램)을 저장할 수 있고 게임 어플리케이션과 연관된 분류기를 저장할 수 있다. 예를 들면, 어플리케이션 및/또는 분류기는 통신 모듈(290)을 통해 다운로드되어 설치 또는 저장될 수 있다. 일 실시예에 따른 메모리(230)는 기능 동작에 사용되는 프로그램(예: 도 1의 프로그램(140))을 비롯하여, 프로그램(140) 실행 중에 발생되는 다양한 데이터를 저장할 수 있다. 상기 메모리(230)는 크게 프로그램 영역(140)과 데이터 영역(미도시)을 포함할 수 있다. 상기 프로그램 영역(140)은 전자 장치(201)를 부팅시키는 운영체제(OS)(예: 도 1의 운영 체제(142))와 같은 전자 장치(201)의 구동을 위한 관련된 프로그램 정보들을 저장할 수 있다. 상기 데이터 영역(미도시)은 다양한 실시예에 따라 송신 및/또는 수신된 데이터 및 생성된 데이터를 저장할 수 있다. 또한, 상기 메모리(230)는 플래시 메모리(flash memory), 하드디스크(hard disk), 멀티미디어 카드 마이크로(multimedia card micro) 타입의 메모리(예를 들어, secure digital(SD) 또는 extreme digital(XD) 메모리), 램(RAM), 롬(ROM) 중의 적어도 하나의 저장매체를 포함하여 구성될 수 있다. The memory 230 according to an embodiment may store an application and a classifier associated with the application. For example, memory 230 may store a game application (function or program) and may store a classifier associated with the game application. For example, applications and/or classifiers may be downloaded and installed or stored through the communication module 290 . The memory 230 according to an embodiment may store various data generated during execution of the program 140, including a program used for function operation (eg, the program 140 of FIG. 1). The memory 230 may largely include a program area 140 and a data area (not shown). The program area 140 may store program information related to driving the electronic device 201, such as an operating system (OS) for booting the electronic device 201 (eg, the operating system 142 of FIG. 1). The data area (not shown) may store transmitted and/or received data and generated data according to various embodiments. In addition, the memory 230 may be a flash memory, a hard disk, or a multimedia card micro type memory (eg, secure digital (SD) or extreme digital (XD) memory). ), RAM (RAM), may be configured to include at least one storage medium of ROM (ROM).

일 실시예에 따른 디스플레이(260)는 프로세서(220)의 제어에 기반하여 각종 정보를 표시할 수 있다. 예를 들면, 디스플레이(260)는 어플리케이션 실행 화면, 홈 화면, 및/또는 전자 장치의 각종 기능 또는 동작과 연관된 화면을 포함하는 사용자 인터페이스 화면을 표시할 수 있다. 일 실시예에 따르면, 디스플레이(260)는 터치 스크린의 형태로 구현될 수 있다. 상기 디스플레이(260)는 터치 스크린 형태로 입력 모듈과 함께 구현되는 경우, 사용자의 터치 동작에 따라 발생되는 다양한 정보들을 표시할 수 있다. 일 실시예에 따르면, 디스플레이(260)는 LCD(liquid crystal display), TFT-LCD(thin film transistor LCD), OLED(organic light emitting diodes), 발광다이오드(LED), AMOLED(active matrix organic LED), 마이크로(micro) LED, 미니(mini) LED, 플렉시블 디스플레이(flexible display) 및 3차원 디스플레이(3 dimension display) 중 적어도 하나 이상으로 구성될 수 있다. 또한, 이들 중 일부 디스플레이는 그를 통해 외부를 볼 수 있도록 투명형 또는 광투과형으로 구성될 수 있다. 이는 TOLED(transparent OLED)를 포함하는 투명 디스플레이 형태로 구성될 수 있다. 다른 실시예에 따르면, 전자 장치(201)는 디스플레이(260) 외에 장착된 다른 디스플레이 모듈(예를 들어, 확장 디스플레이 또는 플렉시블 디스플레이)을 더 포함할 수 있다.The display 260 according to an embodiment may display various types of information based on the control of the processor 220 . For example, the display 260 may display a user interface screen including an application execution screen, a home screen, and/or screens related to various functions or operations of an electronic device. According to one embodiment, the display 260 may be implemented in the form of a touch screen. When implemented together with an input module in the form of a touch screen, the display 260 can display various information generated according to a user's touch operation. According to one embodiment, the display 260 is a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), an active matrix organic LED (AMOLED), It may be composed of at least one or more of a micro LED, a mini LED, a flexible display, and a 3D display. Also, some of these displays may be of a transparent type or a light transmission type so that the outside can be seen through them. This may be configured in the form of a transparent display including a transparent OLED (TOLED). According to another embodiment, the electronic device 201 may further include other mounted display modules (eg, extended displays or flexible displays) in addition to the display 260 .

일 실시예에 따른 오디오 모듈(270)은 프로세서(220)의 제어에 기반하여 각종 정보를 표시할 수 있다. 예를 들면, 오디오 모듈(270)은 어플리케이션 실행과 연관된 오디오 신호를 스피커를 통해 출력하거나, 마이크를 통해 어플리케이션 실행과 연관된 오디오 신호를 입력 받을 수 있다.The audio module 270 according to an embodiment may display various types of information based on the control of the processor 220 . For example, the audio module 270 may output an audio signal related to application execution through a speaker or receive an audio signal related to application execution through a microphone.

일 실시예에 따른 통신 모듈(290)은 네트워크(299)를 통해 서버(208)와 통신할 수 있다. 예를 들어, 통신 모듈(290)은 서버(208)로부터 분류기를 수신할 수 있고, 최적 성능 파라미터 값을 수신할 수 있다. 일 실시예에 따르면, 통신 모듈(290)은 셀룰러 모듈, Wi-Fi(wireless-fidelity) 모듈, 블루투스 모듈 또는 NFC(near field communication) 모듈을 포함할 수 있다. 이 외에 서버(208)와 통신 가능한 다른 모듈을 더 포함할 수 있다. Communication module 290 according to one embodiment may communicate with server 208 over network 299 . For example, the communication module 290 can receive the classifier from the server 208 and receive the optimal performance parameter value. According to an embodiment, the communication module 290 may include a cellular module, a wireless-fidelity (Wi-Fi) module, a Bluetooth module, or a near field communication (NFC) module. In addition to this, other modules capable of communicating with the server 208 may be further included.

일 실시예에 따르면, 전자 장치(201)는 도 2에 도시된 구성에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성될 수 있다. 일 실시예에 따르면, 전자 장치(201)는 이미지 처리 모듈(미도시)을 더 포함할 수 있다. 이미지 처리 모듈은 프로세서(220)의 제어에 기반하여 2D 또는 3D 이미지 처리 및/또는 렌더링 동작을 수행할 수 있다. According to an embodiment, the electronic device 201 is not limited to the configuration shown in FIG. 2 and may further include various components. According to an embodiment, the electronic device 201 may further include an image processing module (not shown). The image processing module may perform 2D or 3D image processing and/or rendering operations under the control of the processor 220 .

일 실시예에 따른 서버(208)(예: 도 1의 서버(108))는 적어도 하나의 프로세서(이하, 프로세서라고도 함)(20), 메모리(30), 통신 모듈(90)을 포함하여 구성될 수 있다. 서버(208)는 이에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성 또는 상기 구성들 중 일부를 제외하여 구성될 수 있다. The server 208 (eg, the server 108 of FIG. 1) according to an embodiment includes at least one processor (hereinafter referred to as a processor) 20, a memory 30, and a communication module 90. It can be. The server 208 is not limited thereto and may further include various components or may be configured except for some of the above components.

일 실시예에 따른 프로세서(20)는 통신 모듈(90)을 통한 전자 장치(201)로부터 지정된 어플리케이션 여부 문의에 기반하여 지정된 어플리케이션에 대응된 분류기를 제공할 수 있다. 예를 들면, 분류기는 지정된 어플리케이션에 대응하여 미리 생성되거나 결정된 분류기일 수 있다. 일 실시예에 따른 프로세서(20)는 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고 세션별 세그먼트들 각각의 특징값들을 비지도 방법으로 학습하여 군집화하고, 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득한 후 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다. 일 실시예에 따른 프로세서(20)는 전자 장치(201)에 분류기 제공 후, 전자 장치(201)로부터 분류기를 이용하여 획득된 지정된 조건의 세션별 세그먼트 기반 데이터를 수신할 수 있다. 일 실시예에 따른 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석하여 지정된 어플리케이션에 대한 최적 성능 파라미터를 획득하고 획득된 최적 성능 파라미터를 전자 장치(201)에 전송할 수 있다.The processor 20 according to an embodiment may provide a classifier corresponding to a designated application based on an inquiry about whether or not the designated application is from the electronic device 201 through the communication module 90 . For example, the classifier may be a classifier generated or determined in advance corresponding to a designated application. The processor 20 according to an embodiment collects raw data when a designated application is executed with a designated performance value from a designated plurality of electronic devices during a designated collection period, and segments the collected raw data by session to obtain segments by session. After identifying the feature values based on each raw data, learning and clustering the feature values of each segment by session in an unsupervised method, and performing supervised learning on the clustering result to obtain a classification model, a classifier based on the classification model can be created and stored in memory 30. After providing the classifier to the electronic device 201, the processor 20 according to an embodiment may receive from the electronic device 201 segment-based data for each session under a specified condition obtained using the classifier. According to an embodiment, the processor 20 may acquire an optimal performance parameter for a designated application by analyzing segment-based data for each session under a designated condition, and transmit the obtained optimal performance parameter to the electronic device 201 .

일 실시예에 따른 프로세서(20)는 메타 데이터 크롤러(matadata crawler)(21), 성능 데이터 수집기(performance data collector)(22), 분류기 생성기(classifier creator)(23), 및/또는 성능 분석기(performance analyzer)(25)를 포함할 수 있다. 예를 들어, 메타 데이터 크롤러(21), 성능 데이터 수집기(22), 분류기 생성기(23), 및/또는 성능 분석기(25)는 프로세서(20)에 의해 실행되는 소프트웨어 모듈일 수 있다. 또는, 메타 데이터 크롤러 (21), 성능 데이터 수집기(22), 분류기 생성기(23), 및/또는 성능 분석기(25)는 프로세서(20)에 포함되거나 또는 독립적으로 존재하는 하드웨어 모듈일 수도 있다.The processor 20 according to an embodiment includes a metadata crawler 21, a performance data collector 22, a classifier creator 23, and/or a performance analyzer. analyzer) (25). For example, the metadata crawler 21 , performance data collector 22 , classifier generator 23 , and/or performance analyzer 25 may be software modules executed by the processor 20 . Alternatively, the metadata crawler 21, the performance data collector 22, the classifier generator 23, and/or the performance analyzer 25 may be included in the processor 20 or may be independent hardware modules.

일 실시예에 따른 메타 데이터 크롤러(21)는 외부의 서버(예: 앱 스토어)로부터 어플리케이션(예: 게임 어플리케이션)의 정보를 수집 및 분석하여 적어도 하나의 어플리케이션의 정보(예: 메타 데이터)를 메모리(30)(예: matadata database(메타데이터 데이터베이스))에 저장할 수 있다. 예를 들면, 메타 데이터는 "apk 이름", "게임 여부" 및/또는 "게임이름"을 포함할 수 있다. 일 실시예에 따른 메타 데이터 크롤러(21)는 저장된 적어도 하나의 어플리케이션의 정보(메타 데이터)를 기반으로 전자 장치(201)에 포함된(저장된 또는 설치된) 어플리케이션의 정보를 비교하여 전자 장치(201)에 포함된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인지 여부를 식별하거나, 전자 장치(201)에 포함된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인지 여부에 관한 정보를 제공할 수 있다. The metadata crawler 21 according to an embodiment collects and analyzes information of an application (eg, a game application) from an external server (eg, an app store), and stores information (eg, meta data) of at least one application in memory. (30) (e.g., a metadata database). For example, the meta data may include “apk name”, “whether it is a game”, and/or “game name”. The meta data crawler 21 according to an embodiment compares information of applications included (stored or installed) in the electronic device 201 based on information (meta data) of at least one stored application to determine the electronic device 201. It may identify whether the application included in is a designated application (eg, a game application) or provide information on whether an application included in the electronic device 201 is a designated application (eg, a game application).

일 실시예에 따른 성능 데이터 수집기(22)는 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 메모리(30)(예: performance database(성능 데이터베이스))에 저장할 수 있다. 일 실시예에 따른 로우 데이터는 분류기 생성기(23)에 의한 학습에 이용될 수 있다.The performance data collector 22 according to an embodiment collects raw data when a designated application is executed with a designated performance value from a designated number of electronic devices during a designated collection period, and stores the collected raw data in the memory 30 (eg : performance database). Raw data according to an embodiment may be used for learning by the classifier generator 23 .

일 실시예에 따른 분류기 생성기(23)는 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고 세션별 세그먼트들 각각의 특징값들을 비지도 방법으로 학습하여 군집화하고, 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득한 후 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다. 일 실시예에 따르면 생성된 분류기는 크롤링된 메타 데이터와 동일 수준의 객체로 메타 데이터 데이터베이스에 저장될 수 있다. 예를 들면, 분류기가 존재하는 경우 메타 데이터는 "apk 이름", "게임 여부" 및/또는 "게임이름"과 함께 "분류기"를 더 포함할 수 있다. The classifier generator 23 according to an embodiment segments the collected raw data by session, identifies feature values based on the raw data of each segment of each session, and learns the feature values of each segment by an unsupervised method. After clustering is performed and supervised learning is performed on the clustering result to obtain a classification model, a classifier based on the classification model may be generated and stored in the memory 30 . According to an embodiment, the generated classifier may be stored in a meta data database as an object of the same level as crawled meta data. For example, if a classifier exists, the meta data may further include "classifier" together with "apk name", "game status" and/or "game name".

일 실시예에 따른 분류기 생성기(23)는 raw data analysis(23-1)모듈, creating classifier(23-3) 모듈, clustering and evaluation(23-5) 모듈을 포함할 수 있다. raw data analysis(23-1)모듈은 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별할 수 있다. clustering and evaluation(23-5) 모듈은 세션별 세그먼트들 각각의 특징값들을 비지도 방법으로 학습하여 군집화할 수 있다. 예를 들면, 분류기 생성기(23)는 비지도 방법으로 학습하기 위해 군집별 특징값을 인게임 또는 낫 인게임으로 구분하는 규칙을 식별(설정 또는 지정)하고 규칙에 따라 지도 학습을 위한 레이블을 생성할 수 있다. 예를 들면, 규칙은 인게임은 특정 군집들이 세션에서 차지하는 비율이 80퍼센트 이상인 경우, 군집별 평균 온도가 40도 이상인 경우, 세션내의 군집별 평균 FPS를 계산하여 세션내에서 군집간의 평균 FPS 격차가 30FPS 이상이고 평균 FPS가 더 높은 군집인 경우에 포함되고, 낫 인게임은 상기 인게임이 아닌경우에 포함되도록 설정 또는 지정될 수 있다. 다양한 실시예에 따르면 규칙은 상기 예들 외에 다른 조건을 더 포함하거나 포함된 조건들 중 일부 조건이 덜 포함될 수 있으며, 어플리케이션 별로 다르게 설정 또는 지정될 수 있다. 일 실시예에 따르면 분류기 생성기(23)는, 군집화 결과에 대한 지도 학습을 수행할 수 있다. creating classifier(23-3) 모듈은 군집화 결과에 대한 지도 학습 수행 결과 분류 모델을 획득한 후 분류 모델 기반의 분류기를 생성할 수 있다.The classifier generator 23 according to an embodiment may include a raw data analysis (23-1) module, a creating classifier (23-3) module, and a clustering and evaluation (23-5) module. The raw data analysis module 23-1 may segment the collected raw data by session to identify feature values based on the raw data of each segment by session. The clustering and evaluation (23-5) module can learn and cluster the feature values of each segment by session in an unsupervised way. For example, the classifier generator 23 may identify (set or designate) a rule for classifying feature values for each cluster into in-game or sick-in-game for learning by an unsupervised method and generate a label for supervised learning according to the rule. there is. For example, in-game, if the ratio of certain clusters in a session is 80% or more, and the average temperature of each cluster is 40 degrees or more, the average FPS of each cluster within the session is calculated, and the average FPS gap between the clusters within the session is 30FPS It may be set or specified to be included in a cluster with a higher average FPS and better in-game, and to be included in a non-in-game cluster. According to various embodiments, a rule may further include conditions other than the above examples, or may include fewer conditions among included conditions, and may be set or designated differently for each application. According to an embodiment, the classifier generator 23 may perform supervised learning on a clustering result. The creating classifier (23-3) module can create a classifier based on the classification model after obtaining a classification model as a result of performing supervised learning on the clustering result.

일 실시예에 따른 성능 분석기(25)는 전자 장치(201)로부터 상기 생성된 분류기를 이용하여 획득된 지정된 조건의 세션별 세그먼트 기반 데이터를 수신하여 분석하고 지정된 어플리케이션에 대한 최적 성능 파라미터를 획득하고, 획득된 최적 성능 파라미터를 전자 장치(201)에 전송할 수 있다.The performance analyzer 25 according to an embodiment receives and analyzes segment-based data for each session under a specified condition obtained using the generated classifier from the electronic device 201, and obtains an optimal performance parameter for a specified application; The obtained optimal performance parameters may be transmitted to the electronic device 201 .

일 실시예에 따른 메모리(30)는 메타데이터 데이터베이스를 포함할 수 있고, 다수의 전자 장치들로부터 수집된 로우 데이터들 및 로우 데이터들을 기반으로 획득된 분류기를 저장할 수 있다. 예를 들어, 메모리(30)는 적어도 하나 이상의 분류기를 저장할 수 있으며, 지정된 어플리케이션에 대응된 지정된 분류기를 저장할 수 있다. The memory 30 according to an embodiment may include a metadata database and may store raw data collected from a plurality of electronic devices and a classifier obtained based on the raw data. For example, the memory 30 may store at least one or more classifiers and may store a designated classifier corresponding to a designated application.

일 실시예에 따른 통신 모듈(90)은 네트워크(299)를 통해 전자 장치(201)와 통신할 수 있다. 예를 들어, 통신 모듈(90)은 전자 장치(201)에 분류기를 전송할 수 있고, 전자 장치(201)로부터 로우 데이터 및/또는 지정된 조건의 세션별 세그먼트 데이터를 수신할 수 있다. The communication module 90 according to an embodiment may communicate with the electronic device 201 through the network 299 . For example, the communication module 90 may transmit the classifier to the electronic device 201 and receive raw data and/or segment data for each session under a specified condition from the electronic device 201 .

상술한 일 실시예에서는 상기 도 2의 전자 장치(201) 및 서버(208)를 통해 주요 구성 요소에 대해 설명하였다. 그러나 다양한 실시예에서는 상기 도 2를 통해 도시된 구성 요소가 모두 필수 구성 요소인 것은 아니며, 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(201) 및/또는 서버(208)가 구현될 수도 있고, 그 보다 적은 구성 요소에 의해 전자 장치(201) 및/또는 서버(208)가 구현될 수도 있다.In the above-described embodiment, the main components have been described through the electronic device 201 and the server 208 of FIG. 2 . However, in various embodiments, not all of the components shown in FIG. 2 are essential components, and the electronic device 201 and/or the server 208 may be implemented by more components than the illustrated components. , the electronic device 201 and/or the server 208 may be implemented with fewer components.

다양한 실시예에 따르면, 전자 장치(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))에 있어서, 통신 모듈(예: 도 1 의 통신 모듈(190) 또는 도 2의 통신 모듈(290)), 디스플레이(예: 도 1 의 디스플레이(160) 또는 도 2의 디스플레이(260)), 메모리(예: 도 1 의 메모리(130) 또는 도 2의 메모리(230)), 및 적어도 하나의 프로세서(예: 도 1 의 프로세서(120) 또는 도 2의 프로세서(220))를 포함하고, 상기 적어도 하나의 프로세서는, 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하고, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하고, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하고, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하고, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하도록 설정된 전자 장치.According to various embodiments, in an electronic device (eg, the electronic device 101 of FIG. 1 or the electronic device 201 of FIG. 2 ), a communication module (eg, the communication module 190 of FIG. 1 or the communication module 201 of FIG. 2 ) module 290), a display (eg, display 160 of FIG. 1 or display 260 of FIG. 2), a memory (eg, memory 130 of FIG. 1 or memory 230 of FIG. 2), and at least Includes one processor (eg, the processor 120 of FIG. 1 or the processor 220 of FIG. 2), wherein the at least one processor obtains or identifies a classifier associated with the application based on an application execution request, Acquiring raw data of each of the sessions associated with the execution of the application while executing the application based on the first performance setting value, and obtaining an optimal performance parameter of the application from the raw data of each of the sessions using the classifier Necessary data and data unnecessary for acquiring the optimal performance parameter are classified, an optimal performance parameter is obtained based on the data necessary for the optimal performance parameter, and the first performance set value is converted into a second one corresponding to the obtained optimal performance parameter. An electronic device set to change to a performance set point.

다양한 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하고, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하고, 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하도록 설정될 수 있다.According to various embodiments, the at least one processor performs segmentation on each of the sessions associated with the execution of the application, and segments for each session necessary to obtain an optimal performance parameter of the application from raw data of each of the segments for each session. It may be configured to classify data and segment data for each session unnecessary for acquiring the optimal performance parameter, and acquire the optimal performance parameter based on the segment data for each session necessary for acquiring the optimal performance parameter.

다양한 실시예에 따르면, 상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 FPS(frame per second), 전자 장치의 온도데이터, CPU 또는 GPU의 부하, 네트워크 입출력(I/O), 디스플레이 해상도, 디스플레이 주사율, 디스플레이 화면 밝기, 또는 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다.According to various embodiments, the raw data associated with the execution of the application includes raw data for a plurality of elements, and the plurality of elements include a frame per second (FPS) while an application screen is exposed on the display, an electronic device It may include at least one of temperature data, CPU or GPU load, network input/output (I/O), display resolution, display refresh rate, display screen brightness, or network type being accessed.

다양한 실시예에 따르면, 상기 어플리케이션은 게임 어플리케이션을 포함할 수 있다.According to various embodiments, the application may include a game application.

다양한 실시예에 따르면, 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함할 수 있다.According to various embodiments, data necessary for obtaining the optimal performance parameter of the application may include in-game data, and data unnecessary for obtaining the optimal performance parameter for the application may include sickle game data.

다양한 실시예에 따르면, 상기 제1 성능 설정값은 제1 CPU 클럭 값 또는 제1 GPU 클럭 값을 포함하고, 상기 제2 성능 설정값은 제2 CPU 클럭 값 또는 제2 GPU 클럭 값을 포함할 수 있다.According to various embodiments, the first performance setting value may include a first CPU clock value or a first GPU clock value, and the second performance setting value may include a second CPU clock value or a second GPU clock value. there is.

다양한 실시예에 따르면, 서버(예: 도 1의 서버(108) 또는 도 2의 서버(208))는 통신 모듈(예: 도 2의 통신 모듈(90)), 메모리(예: 도 2의 메모리(30)), 및 적어도 하나의 프로세서(예: 도 2의 프로세서(20))를 포함하고, 상기 적어도 하나의 프로세서는, 지정된 수집 기간 동안 지정된 적어도 하나의 전자 장치로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 상기 통신 모듈을 통해 수집하고, 상기 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고, 상기 세션별 세그먼트들 각각의 상기 특징값들을 비지도 방법으로 학습하여 군집화하고, 상기 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득하고, 상기 분류 모델 기반의 분류기를 획득하도록 설정될 수 있다.According to various embodiments, a server (eg, server 108 of FIG. 1 or server 208 of FIG. 2 ) may include a communication module (eg, communication module 90 of FIG. 2 ), a memory (eg, memory of FIG. 2 ). (30)), and at least one processor (eg, the processor 20 of FIG. 2), wherein the at least one processor is configured to run a designated application with a designated performance value from at least one designated electronic device during a designated collection period. Raw data when executed is collected through the communication module, the collected raw data is segmented by session to identify characteristic values based on the raw data of each segment by session, and the characteristic value of each segment by session may be set to learn and cluster them in an unsupervised method, perform supervised learning on the clustering result to obtain a classification model, and obtain a classifier based on the classification model.

다양한 실시예에 따르면, 상기 서버의 상기 적어도 하나의 프로세서는, 상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하도록 더 설정될 수 있다.According to various embodiments, the at least one processor of the server may be further configured to transmit the classifier to the electronic device through the communication module.

다양한 실시예에 따르면, 상기 서버의 상기 지정된 어플리케이션은 게임 어플리케이션을 포함할 수 있다.According to various embodiments, the designated application of the server may include a game application.

도 3은 일 실시예에 따른 전자 장치 및 서버에서 어플리케이션 실행 성능 최적화 동작의 흐름도이다. 3 is a flowchart of an application execution performance optimization operation in an electronic device and a server according to an embodiment.

도 3을 참조하면, 일 실시예에 따른 전자 장치(201)(예: 도 1의 전자 장치(101)의 프로세서(220)(예: 도 1의 프로세서(120))는 312 동작, 314 동작, 318 동작, 320 동작, 322 동작, 330 동작 및 332 동작 중 적어도 하나의 동작을 수행할 수 있고, 일 실시예에 따른 서버(208)(예: 도 1의 서버(108))의 프로세서(20)는 316 동작, 324 동작, 326 동작, 및 328 동작 중 적어도 하나의 동작을 수행할 수 있다. Referring to FIG. 3 , an electronic device 201 (eg, a processor 220 (eg, the processor 120 of FIG. 1 ) of the electronic device 101 of FIG. 1 ) includes operations 312, 314, At least one of operations 318, 320, 322, 330, and 332 may be performed, and the processor 20 of the server 208 (eg, the server 108 of FIG. 1) according to an embodiment may perform at least one of operations 316, 324, 326, and 328.

312 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In operation 312, the processor 220 of the electronic device 201 according to an embodiment may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the application may be a game application.

314 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청에 응답하여 통신 모듈(290)을 통해 서버(208)에 실행 요청된 어플리케이션이 지정된 어플리케이션인지 여부를 문의할 수 있다. In operation 314, in response to the application execution request, the processor 220 of the electronic device 201 inquires the server 208 through the communication module 290 whether the application requested to execute is a designated application. can

316 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 어플리케이션 여부 문의에 응답할 수 있다. 예를 들면 서버(208)는 문의된 어플리케이션이 최적 성능값 설정이 요구되는 지정된 어플리케이션인지 식별(또는 확인)하고, 최적 성능갑 설정이 요구되는 지정된 어플리케이션임을 응답할 수 있다. 예를 들면 최적 성능값 설정이 요구되는 지정된 어플리케이션은 게임 어플리케이션일 수 있다. In operation 316, the processor 20 of the server 208 according to an embodiment may respond to an inquiry about whether or not the specified application exists. For example, the server 208 may identify (or confirm) whether the inquired application is a designated application requiring optimal performance value setting, and may respond that it is a designated application requiring optimal performance value setting. For example, a designated application for which an optimal performance value setting is required may be a game application.

318 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인 응답을 수신한 것에 대응하여 지정된 성능 설정값(예: 제1 성능 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In operation 318, the processor 220 of the electronic device 201 according to an embodiment receives a response indicating that the execution-requested application is a designated application (eg, a game application), and the specified performance setting value (eg, the first Based on performance settings), the application may be executed and raw data related to application execution may be acquired. For example, raw data associated with application execution may include raw data for a plurality of elements associated with application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include at least one of the network types being accessed.

320 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 세션 기반 데이터를 획득할 수 있다. 예를 들면, 어플리케이션은 전자 장치(201)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 세션 기반 데이터로서 획득할 수 있다. In operation 320, the processor 220 of the electronic device 201 according to an embodiment may obtain session-based data based on the acquired raw data related to application execution. For example, an application may be in a foreground state or a background state when executed in the electronic device 201, and a session may mean a foreground state. According to an embodiment, the processor 220 converts summary (or processed) information (eg, average value of each of a plurality of factors and/or k quantile of each of a plurality of factors) of raw data corresponding to each session to session-based can be obtained as data.

322 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 세션 기반 데이터를 통신 모듈(290)을 통해 서버(208)에 전송할 수 있다.In operation 322, the processor 220 of the electronic device 201 according to an embodiment may transmit session-based data to the server 208 through the communication module 290.

324 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 전자 장치(201)로부터 수신된 세션 기반 데이터를 분석할 수 있다. 예를 들면, 프로세서(20)는 각 세션에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 분석하여 전자 장치(201)의 어플리케이션 실행 성능을 더 높이거나 낮출 수 있는지 식별할 수 있다.In operation 324, the processor 20 of the server 208 according to an embodiment may analyze the session-based data received from the electronic device 201. For example, the processor 20 analyzes summary (or processed) information (eg, average value of each of a plurality of elements, and/or k quantile of each of a plurality of elements) of raw data corresponding to each session to obtain electronic It is possible to identify whether the application execution performance of the device 201 can be further increased or decreased.

326 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 세션 기반 데이터 분석 결과 기반으로 최적 성능 파라미터를 획득(또는 식별)할 수 있다. 예를 들면, 프로세서(20)는 전자 장치(201)의 세션 기반 데이터에 따라 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 또는 GPU 클럭 값을 식별할 수 있다.In operation 326, the processor 20 of the server 208 according to an embodiment may acquire (or identify) an optimal performance parameter based on a result of analyzing the session-based data. For example, the processor 20 may identify a CPU clock or GPU clock value for optimizing application execution performance according to session-based data of the electronic device 201 .

328 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 최적 성능 파라미터를 통신 모듈(90)을 통해 전자 장치(201)에 전송할 수 있다. 예를 들면, 최적 성능 파라미터는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 포함할 수 있다.In operation 328, the processor 20 of the server 208 according to an embodiment may transmit the optimal performance parameter to the electronic device 201 through the communication module 90. For example, the optimal performance parameter may include a CPU clock value or a GPU clock value for optimizing application execution performance.

330 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 최적 성능 파라미터에 기반하여 제2 성능 설정값을 식별할 수 있다. 예를 들면, 프로세서(220)는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 기반으로 프로세서(220)에서 설정될 CPU 클럭 값 또는 GPU 클럭 값을 식별할 수 있다.In operation 330, the processor 220 of the electronic device 201 according to an embodiment may identify a second performance setting value based on the optimal performance parameter. For example, the processor 220 may identify a CPU clock value or GPU clock value to be set in the processor 220 based on a CPU clock value or GPU clock value for optimizing application execution performance.

332 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 제2 성능 설정값에 기반하여 어플리케이션을 실행할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 성능 설정값에 기반하여 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션이 실행되도록 제어할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 CPU 클럭 값 또는 제1 GPU 클럭 값에 기반하여 어플리케이션 실행 중 CPU 클럭 값 또는 GPU 클럭 값을 제2 CPU 클럭 값 또는 제2 GPU 클럭 값으로 변경할 수 있다.In operation 332, the processor 220 of the electronic device 201 according to an embodiment may execute an application based on the second performance setting value. For example, the processor 220 of the electronic device 201 may control the application to be executed with the second performance setting value when the second performance setting value is identified while the application is running based on the first performance setting value. For example, the processor 220 of the electronic device 201 may set the CPU clock value or the GPU clock value to the second CPU clock value or the second GPU clock value during application execution based on the first CPU clock value or the first GPU clock value. value can be changed.

상기 도 3의 설명에서는 분류기를 이용하지 않는 경우로서, 세션 기반 데이터는 서버(208)에서의 어플리케이션의 실행 시 최적 성능 측정에 불필요한 데이터를 포함할 수 있다. 예를 들면, 전자 장치(201)에서 어플리케이션(예: 게임)이 로딩되고 있거나, 어플리케이션 실행 중 일시 정지 화면(예: 게임이 시작되기 전 대기실 화면)이 표시되고 있거나, 어플리케이션 실행 중 일정 시간 사용자의 입력이 없거나, 어플리케이션 실행 중 절전 및/또는 최소 성능 모드 상태인 경우의 로우 데이터도 세션 기반 데이터를 획득하는데 이용될 수 있으며, 이러한 로우 데이터는 프로세서(220)의 비교적 낮은 성능이 요구되는 경우로서, 어플리케이션 실행을 위한 최적 성능 측정에 불필요한 로우 데이터일 수 있다.In the description of FIG. 3 , the classifier is not used, and the session-based data may include data unnecessary for optimal performance measurement when the application is executed in the server 208 . For example, an application (eg, game) is being loaded on the electronic device 201, a paused screen (eg, waiting room screen before the game starts) is being displayed while the application is running, or a user's Raw data when there is no input or in a power saving and/or minimum performance mode state during application execution may also be used to obtain session-based data, and such raw data requires relatively low performance of the processor 220, It may be raw data unnecessary for measuring optimal performance for application execution.

일 실시예에 따르면, 서버(208)는 로우 데이터 중 어플리케이션 실행 시 최적 성능 측정에 불필요한 로우 데이터를 배제할 수 있는 분류기를 생성하여 전자 장치(201)에 제공할 수 있고, 전자 장치(201)는 분류기를 이용하여 어플리케이션 실행 시 최적 성능 측정에 불필요한 로우 데이터는 배제하고 어플리케이션 실행 시 최적 성능 측정에 필요한 로우 데이터를 수집하여 서버(208)로 제공할 수 있다. According to an embodiment, the server 208 may generate a classifier capable of excluding raw data unnecessary for optimal performance measurement during application execution among raw data and provide the generated classifier to the electronic device 201, and the electronic device 201 Using the classifier, raw data unnecessary for optimal performance measurement during application execution may be excluded, and raw data necessary for optimal performance measurement during application execution may be collected and provided to the server 208 .

도 4는 일 실시예에 따른 전자 장치 및 서버에서 분류기를 이용하여 어플리케이션 실행 성능을 최적화하는 동작의 흐름도이다. 4 is a flowchart of an operation of optimizing application execution performance using a classifier in an electronic device and a server according to an exemplary embodiment.

도 4를 참조하면, 일 실시예에 따른 전자 장치(201)(예: 도 1의 전자 장치(101)의 프로세서(220)(예: 도 1의 프로세서(120))는 412 동작, 414 동작, 418 동작, 420 동작, 422 동작, 424 동작, 426 동작, 434 동작, 및 436 동작 중 적어도 하나의 동작을 수행할 수 있고, 일 실시예에 따른 서버(208)(예: 도 1의 서버(108))의 프로세서(20)는 416 동작, 428 동작, 430 동작, 및 432 동작 중 적어도 하나의 동작을 수행할 수 있다. Referring to FIG. 4 , an electronic device 201 (eg, a processor 220 (eg, the processor 120 of FIG. 1 ) of the electronic device 101 of FIG. 1 ) according to an embodiment performs operations 412, 414, At least one of operation 418, operation 420, operation 422, operation 424, operation 426, operation 434, and operation 436 may be performed, and the server 208 according to an embodiment (eg, server 108 of FIG. 1 ) may be performed. )) The processor 20 may perform at least one of operations 416, 428, 430, and 432.

412 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In operation 412, the processor 220 of the electronic device 201 according to an embodiment may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the application may be a game application.

414 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청에 응답하여 통신 모듈(290)을 통해 서버(208)에 실행 요청된 어플리케이션이 지정된 어플리케이션인지 여부를 문의할 수 있다. In operation 414, in response to the application execution request, the processor 220 of the electronic device 201 inquires the server 208 through the communication module 290 whether the application requested to execute is a designated application. can

416 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 어플리케이션 여부 문의에 응답하여 지정된 어플리케이션인 경우 분류기를 제공할 수 있다. 예를 들면 서버(208)는 문의된 어플리케이션이 최적 성능값 설정이 요구되는 지정된 어플리케이션인지 식별(또는 확인)하고, 최적 성능갑 설정이 요구되는 지정된 어플리케이션인 경우 분류기를 제공할 수 있다. 다른 실시예에 따르면 분류기는 전자 장치(201)에 구비되고 서버(208)는 분류기를 이용하도록 하는 정보를 제공할 수도 있다. 예를 들면, 분류기는 서버(208)(또는 다른 전자 장치)에 의해 학습을 통해 생성된 분류 모델에 기반한 소프트웨어 모듈일 수 있다. 서버(208)의 분류기 생성 동작에 대해서는 후술된 도 6의 설명을 참조할 수 있다. In operation 416, the processor 20 of the server 208 according to an embodiment may provide a classifier in case of a designated application in response to an inquiry about whether the application is designated. For example, the server 208 may identify (or confirm) whether the inquiry application is a designated application requiring optimal performance value setting, and may provide a classifier if it is a designated application requiring optimal performance value setting. According to another embodiment, the classifier is provided in the electronic device 201 and the server 208 may provide information for using the classifier. For example, the classifier may be a software module based on a classification model generated through learning by the server 208 (or other electronic device). For the classifier generation operation of the server 208, the description of FIG. 6 described later may be referred to.

418 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)이고 분류기를 제공받거나 분류기를 이용하도록 하는 정보를 수신한 것에 대응하여 지정된 성능 설정값(예: 제1 성능 설정값 또는 제1 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In operation 418, the processor 220 of the electronic device 201 according to an embodiment responds to receiving information indicating that the requested application is a designated application (eg, a game application) and receives a classifier or uses the classifier. The application may be executed based on a designated performance setting value (eg, a first performance setting value or a first setting value) and raw data related to application execution may be obtained. For example, raw data associated with application execution may include raw data for a plurality of elements associated with application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include at least one of the network types being accessed.

420 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 세션별 세그먼테이션을 수행할 수 있다. 예를 들면, 어플리케이션은 전자 장치(201)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션을 지정된 시간단위(예: 1초 또는 수초)로 세그멘테이션할 수 있다.In operation 420, the processor 220 of the electronic device 201 according to an embodiment may perform session-by-session segmentation based on the acquired raw data associated with application execution. For example, an application may be in a foreground state or a background state when executed in the electronic device 201, and a session may mean a foreground state. The processor 220 according to an embodiment may segment each session into a designated time unit (eg, 1 second or several seconds).

422 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용하여 세션별 세그먼트들을 분류할 수 있다. 예를 들면, 프로세서(220)는 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 예를 들면, 지정된 조건은 미리 학습을 통해 생성된 분류 모델에 기반한 조건일 수 있다.In operation 422, the processor 220 of the electronic device 201 according to an embodiment may classify segments for each session using a classifier. For example, the processor 220 uses a classifier to classify data of segments for each session into data of segments that satisfy a specified condition (eg, in-game data) and data of segments that do not satisfy a specified condition (eg, not in-game data). ) can be classified as For example, the designated condition may be a condition based on a classification model generated through pre-learning.

424 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용한 분류 결과, 세션별 세그먼트 데이터들 중 지정된 조건을 만족하는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 획득할 수 있다.In operation 424, the processor 220 of the electronic device 201 according to an exemplary embodiment, as a result of the classification using the classifier, segment-based data for each session (e.g., in-game) satisfying the specified condition among segment data for each session. data) can be obtained.

426 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 통신 모듈(290)을 통해 서버(208)에 전송할 수 있다.In operation 426, the processor 220 of the electronic device 201 according to an embodiment may transmit segment-based data (eg, in-game data) for each session under a specified condition to the server 208 through the communication module 290. there is.

428 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석할 수 있다. 예를 들면, 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석하여 전자 장치(201)의 어플리케이션 실행 성능을 더 높이거나 낮출 수 있는지 식별할 수 있다.In operation 428, the processor 20 of the server 208 according to an embodiment may analyze segment-based data for each session under a specified condition. For example, the processor 20 may identify whether the application execution performance of the electronic device 201 can be further increased or decreased by analyzing segment-based data for each session under a specified condition.

430 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과 기반으로 최적 성능 파라미터를 획득(또는 식별)할 수 있다. 예를 들면, 프로세서(20)는 전자 장치(201)로부터의 지정된 조건의 세션별 세그먼트 기반 데이터에 따라 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 또는 GPU 클럭 값을 식별할 수 있다.In operation 430, the processor 20 of the server 208 according to an embodiment may obtain (or identify) an optimal performance parameter based on a segment-based data analysis result for each session under a specified condition. For example, the processor 20 may identify a CPU clock or GPU clock value for optimizing application execution performance according to segment-based data for each session under a specified condition from the electronic device 201 .

432 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 최적 성능 파라미터를 통신 모듈(90)을 통해 전자 장치(201)에 전송할 수 있다. 예를 들면, 최적 성능 파라미터는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 포함할 수 있다.In operation 432, the processor 20 of the server 208 according to an embodiment may transmit the optimal performance parameter to the electronic device 201 through the communication module 90. For example, the optimal performance parameter may include a CPU clock value or a GPU clock value for optimizing application execution performance.

434 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 최적 성능 파라미터에 기반하여 제2 성능 설정값(또는 제2 설정값)을 식별할 수 있다. 예를 들면, 프로세서(220)는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 기반으로 프로세서(220)에서 설정될 CPU 클럭 값 또는 GPU 클럭 값을 식별할 수 있다.In operation 434, the processor 220 of the electronic device 201 according to an embodiment may identify a second performance set value (or second set value) based on the optimal performance parameter. For example, the processor 220 may identify a CPU clock value or GPU clock value to be set in the processor 220 based on a CPU clock value or GPU clock value for optimizing application execution performance.

436 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 제2 성능 설정값(또는 제2 설정값)에 기반하여 어플리케이션을 실행할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 성능 설정값에 기반하여 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션이 실행되도록 제어할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 CPU 클럭 값 또는 제1 GPU 클럭 값에 기반하여 어플리케이션 실행 중 CPU 클럭 값 또는 GPU 클럭 값을 제2 CPU 클럭 값 또는 제2 GPU 클럭 값으로 변경할 수 있다.In operation 436, the processor 220 of the electronic device 201 according to an embodiment may execute an application based on a second performance set value (or second set value). For example, the processor 220 of the electronic device 201 may control the application to be executed with the second performance setting value when the second performance setting value is identified while the application is running based on the first performance setting value. For example, the processor 220 of the electronic device 201 may set the CPU clock value or the GPU clock value to the second CPU clock value or the second GPU clock value during application execution based on the first CPU clock value or the first GPU clock value. value can be changed.

다양한 실시예에 따르면, 전자 장치(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))에서 어플리케이션 실행 성능 최적화 방법은 상기 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함할 수 있다.According to various embodiments, a method for optimizing application execution performance in an electronic device (eg, the electronic device 101 of FIG. 1 or the electronic device 201 of FIG. 2 ) obtains a classifier associated with the application based on the application execution request. obtaining raw data of each of the sessions related to the execution of the application while executing the application based on a first performance setting value, and obtaining the application from the raw data of each of the sessions by using the classifier. Classifying data necessary for obtaining the optimal performance parameter and data unnecessary for obtaining the optimal performance parameter, obtaining an optimal performance parameter based on the data necessary for the optimal performance parameter, and setting the first performance set value to the obtained An operation of changing the second performance setting value corresponding to the optimal performance parameter may be included.

다양한 실시예에 따르면, 상기 방법은 상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하는 동작, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하는 동작, 및 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작을 더 포함할 수 있다.According to various embodiments, the method includes an operation of performing segmentation on each of the sessions associated with the execution of the application, segment data for each session required to obtain an optimal performance parameter of the application from raw data of each of the segments for each session, and optimal performance parameters. The method may further include an operation of classifying segment data for each session unnecessary to obtain the performance parameter, and an operation of obtaining an optimal performance parameter based on the segment data for each session necessary for obtaining the optimal performance parameter.

다양한 실시예에 따르면, 상기 방법에서 상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 FPS(frame per second), 전자 장치의 온도데이터, CPU 또는 GPU의 부하, 네트워크 입출력(I/O), 디스플레이 해상도, 디스플레이 주사율, 디스플레이 화면 밝기, 또는 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다.According to various embodiments, the raw data associated with the execution of the application in the method includes raw data for a plurality of elements, and the plurality of elements is FPS (frame per second) while the application screen is exposed on the display. .

다양한 실시예에 따르면, 상기 방법에서 상기 어플리케이션은 게임 어플리케이션을 포함할 수 있다.According to various embodiments, in the method, the application may include a game application.

다양한 실시예에 따르면, 상기 방법에서 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함할 수 있다.According to various embodiments, in the method, data necessary for acquiring the optimal performance parameter of the application may include in-game data, and data unnecessary for acquiring the optimal performance parameter may include sickle game data.

다양한 실시예에 따르면, 상기 방법에서 상기 제1 성능 설정값은 제1 CPU 클럭 값 또는 제1 GPU 클럭 값을 포함하고, 상기 제2 성능 설정값은 제2 CPU 클럭 값 또는 제2 GPU 클럭 값을 포함할 수 있다.According to various embodiments, in the method, the first performance setting value includes a first CPU clock value or a first GPU clock value, and the second performance setting value includes a second CPU clock value or a second GPU clock value. can include

도 5는 일 실시예에 따른 전자 장치에서 분류기를 이용하여 어플리케이션 실행 성능을 최적화하는 동작의 흐름도이다. 5 is a flowchart of an operation of optimizing application execution performance using a classifier in an electronic device according to an exemplary embodiment.

도 5를 참조하면, 일 실시예에 따른 전자 장치(201)(예: 도 1의 전자 장치(101))의 프로세서(220)(예: 도 1의 프로세서(120))는 510 동작 내지 570 동작 중 적어도 일부의 동작을 수행할 수 있다. Referring to FIG. 5 , a processor 220 (eg, processor 120 of FIG. 1 ) of an electronic device 201 (eg, electronic device 101 of FIG. 1 ) according to an embodiment performs operations 510 to 570 At least some of the operations may be performed.

510 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In operation 510, the processor 220 of the electronic device 201 according to an embodiment may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the application may be a game application.

520 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션인 것에 기반하여 분류기를 획득하거나 식별할 수 있다. 예를 들면, 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션인지 서버(208)에 문의하거나, 자체적으로 지정된 어플리케이션인지 식별할 수 있다. 예를 들면, 프로세서(220)는 지정된 어플리케이션에 대응된 분류기를 서버(208)로부터 수신하거나 메모리(230)에 미리 저장된 분류기를 식별할 수 있다.In operation 520, the processor 220 of the electronic device 201 according to an embodiment obtains or identifies a classifier based on whether the requested application is a designated application. For example, the processor 220 may ask the server 208 whether the application requested to be executed is a designated application, or may identify whether the application itself is a designated application. For example, the processor 220 may receive a classifier corresponding to a designated application from the server 208 or may identify a classifier previously stored in the memory 230 .

530 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)이고 분류기를 제공받거나 식별한 것에 응답하여 지정된 성능 설정값(예: 제1 성능 설정값 또는 제1 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In operation 530, the processor 220 of the electronic device 201 according to an embodiment determines that the requested application is a designated application (eg, a game application) and receives a classifier or identifies a specified performance setting value (eg, a game application). The application may be executed based on the first performance set value or the first set value) and raw data associated with the application execution may be acquired. For example, raw data associated with application execution may include raw data for a plurality of elements associated with application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include at least one of the network types being accessed.

540 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 분류기를 이용하여 세션별 세그먼테이션을 수행하고 세션별 세그먼트들 중 지정된 조건의 세그먼트들을 식별할 수 있다. 예를 들면, 프로세서(220)는 각 세션을 지정된 시간단위(예: 1초 또는 수초)로 세그멘테이션할 수 있고, 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 예를 들면, 지정된 조건은 미리 학습을 통해 생성된 분류 모델에 기반한 조건일 수 있다.In operation 540, the processor 220 of the electronic device 201 according to an embodiment performs session-by-session segmentation using a classifier based on the acquired raw data associated with application execution, and selects a segment of a specified condition among segments for each session. can identify them. For example, the processor 220 may segment each session by a specified time unit (eg, 1 second or several seconds), and classify data of segments for each session by using a classifier to segment data of segments satisfying a specified condition (eg, in-game data) and data of segments that do not satisfy specified conditions (eg, not in-game data). For example, the designated condition may be a condition based on a classification model generated through pre-learning.

550 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용한 분류 결과, 세션별 세그먼트 데이터들 중 지정된 조건을 만족하는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 획득할 수 있다.In operation 550, the processor 220 of the electronic device 201 according to an embodiment, as a result of the classification using the classifier, segment-based data for each session (e.g., in-game) satisfying the specified condition among segment data for each session. data) can be obtained.

560 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)에 대응된 성능 파라미터(또는 최적 성능 파라미터)를 획득하거나 식별할 수 있다. 예를 들면, 프로세서(220)는 서버(208)에 지정된 조건의 세션별 세그먼트 기반 데이터를 전송하고, 서버(208)로부터 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과로 최적 성능 파라미터를 수신할 수 있다. 다른 예에 따르면, 프로세서(220)는 자체적으로 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과로 최적 성능 파라미터를 획득할 수도 있다.In operation 560, the processor 220 of the electronic device 201 according to an embodiment obtains or identifies a performance parameter (or optimal performance parameter) corresponding to segment-based data (eg, in-game data) for each session under a specified condition. can do. For example, the processor 220 may transmit segment-based data for each session under a specified condition to the server 208, and may receive an optimal performance parameter as a result of analyzing segment-based data for each session under a specified condition from the server 208. . According to another example, the processor 220 may obtain an optimal performance parameter as a result of segment-based data analysis for each session under a self-specified condition.

570 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 최적 성능 파라미터에 기반하여 제2 성능 설정값(또는 제2 설정값)을 식별하고, 제2 성능 설정값에 기반하여 어플리케이션을 실행할 수 있다. 예를 들면, 최적 성능 파라미터는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 포함할 수 있으며, 프로세서(220)는 최적 성능 파라미터를 기반으로 프로세서(220)에서 설정될 CPU 클럭 값 또는 GPU 클럭 값을 식별할 수 있다. . 예를 들면, 프로세서(220)는 제1 성능 설정값에 기반하여 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션이 실행되도록 제어할 수 있다. 예를 들면, 프로세서(220)는 제1 CPU 클럭 값 또는 제1 GPU 클럭 값에 기반하여 어플리케이션 실행 중 CPU 클럭 값 또는 GPU 클럭 값을 제2 CPU 클럭 값 또는 제2 GPU 클럭 값으로 변경할 수 있다.In operation 570, the processor 220 of the electronic device 201 according to an embodiment identifies a second performance set value (or second set value) based on the optimal performance parameter, and based on the second performance set value, You can run your application. For example, the optimal performance parameter may include a CPU clock value or a GPU clock value for optimizing application execution performance, and the processor 220 may set a CPU clock value or GPU clock values can be identified. . For example, when the second performance setting value is identified during application execution based on the first performance setting value, the processor 220 may control the application to be executed with the second performance setting value. For example, the processor 220 may change the CPU clock value or the GPU clock value to the second CPU clock value or the second GPU clock value during application execution based on the first CPU clock value or the first GPU clock value.

도 6은 일 실시예에 따른 서버에서 분류기를 생성하는 동작의 흐름도이다. 6 is a flowchart of an operation of generating a classifier in a server according to an embodiment.

도 6을 참조하면, 일 실시예에 따른 서버(208)(예: 도 1의 서버(108))의 프로세서(20)는 610 동작 내지 660 동작 중 적어도 일부의 동작을 수행할 수 있다. Referring to FIG. 6 , the processor 20 of the server 208 (eg, the server 108 of FIG. 1 ) according to an embodiment may perform at least some of operations 610 to 660 .

610 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성을 위해 전자 장치(201)로부터 어플리케이션 실행과 연관된 로우 데이터(또는 로세션 기반 로우 데이터)를 수집할 수 있다. 예를 들면, 서버(208)의 프로세서(20)는 전자 장치(201)에서 실행되는 어플리케이션과 연관된 분류기가 존재하지 않거나 분류기 생성이 요청된 경우 전자 장치(201)에 분류기 생성을 위해 필요한 데이터를 요청할 수 있다. 예를 들면, 분류기 생성을 위해 필요한 데이터는 전자 장치(201)에서 어플리케이션을 지정된 성능 설정값(예: 제1 성능 설정값)에 따라 실행하면서 획득된 어플리케이션 실행과 연관된 로우 데이터일 수 있다. 예를 들면, 서버(208)는 전자 장치(201)를 포함하는 다수의 전자 장치들로부터 각각 어플리케이션 실행과 연관된 로우 데이터들을 수집할 수도 있다. 예를 들면 서버(208)는 가공되지 않은 로우 데이터 자체를 수집할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. 예를 들면, 서버(208)는 메타 데이터 크롤러(21)를 통해 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 메모리(30)(예: 메타 데이터 데이터베이스)에 저장할 수 있다.In operation 610, the processor 20 of the server 208 according to an embodiment may collect raw data (or session-based raw data) associated with application execution from the electronic device 201 to generate a classifier. For example, the processor 20 of the server 208 requests data necessary for generating a classifier from the electronic device 201 when a classifier associated with an application running on the electronic device 201 does not exist or generation of a classifier is requested. can For example, data necessary for generating the classifier may be raw data associated with application execution obtained while the electronic device 201 executes the application according to a specified performance setting value (eg, a first performance setting value). For example, the server 208 may collect raw data associated with application execution from a plurality of electronic devices including the electronic device 201 . For example, server 208 may collect raw raw data itself. For example, raw data associated with application execution may include raw data for a plurality of elements associated with application execution. The plurality of elements include the frame per second (FPS) of the application while the application screen is exposed on the display 260 (eg, during the foreground), the temperature (or surface temperature) data of the electronic device 201, and the processor. 220 (eg, CPU or GPU) load, network input/output (I/O), resolution of display 260, refresh rate of display 260, screen brightness of display 260, and/or electronic device 201 ) may include at least one of the network types being accessed. For example, the server 208 collects raw data when a designated application is executed with a designated performance value from a designated number of electronic devices during a designated collection period through the meta data crawler 21, and stores the collected raw data in memory. (30) (e.g. meta data database).

620 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 수집된 로우 데이터들에 대해 세션별 세그멘테이션을 수행할 수 있다. 예를 들면, 프로세서(20)는 각 세션을 지정된 시간(예: 1초, 또는 수초)단위로 세그멘테이션하여 세션 세그먼트를 획득할 수 있다. In operation 620, the processor 20 of the server 208 according to an embodiment may perform session-by-session segmentation on the collected raw data through the classifier generator 23. For example, the processor 20 may obtain a session segment by segmenting each session in units of a designated time (eg, 1 second or several seconds).

630 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별할 수 있다. 예를 들면, 프로세서(20)는 세션 세그먼트에 대응된 세션 세그먼트 로우 데이터에서 복수의 요소들 각각에 대한 특징값을 식별(또는 획득)할 수 있다. 예를 들면, 프로세서(20)는 세션 세그먼트 로우 데이터에서 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류별로 특징화된 값을 식별(또는 획득)할 수 있다. 예를 들면, 제1 세션의 제1 세그먼트의 FPS 평균, FPS 최소값, 및/또는 FPS 최대값을 획득하거나, 제1 세션 내의 세그먼트들에 대하여 세션 FPS 평균 및/또는 세션 세그먼트 FPS 평균의 차이를 획득할 수 있다. In operation 630, the processor 20 of the server 208 according to an embodiment may identify feature values based on raw data of each of the segments for each session through the classifier generator 23. For example, the processor 20 may identify (or obtain) a characteristic value for each of a plurality of elements in session segment raw data corresponding to the session segment. For example, the processor 20 may determine frames per second (FPS) from session segment raw data, temperature (or surface temperature) data of the electronic device 201, load of the processor 220 (eg, CPU or GPU), network Identify values characterized by input/output (I/O), resolution of the display 260, refresh rate of the display 260, screen brightness of the display 260, and/or network type to which the electronic device 201 is connected ( or obtained). For example, obtaining the FPS average, FPS minimum, and/or FPS maximum of the first segment of the first session, or obtaining the difference between the session FPS average and/or the session segment FPS average for the segments in the first session. can do.

640 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 세션별 세그먼트들 각각의 특징값들을 비지도 학습(unsupervised running) 방법으로 학습하여 군집화할 수 있다. In operation 640, the processor 20 of the server 208 according to an embodiment may learn and cluster feature values of each of the segments for each session through the classifier generator 23 using an unsupervised running method. there is.

650 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 군집화 결과에 대한 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있다.In operation 650, the processor 20 of the server 208 according to an embodiment performs supervised running on the clustering result through the classifier generator 23 to exclude segment groups unnecessary for performance measurement. A classification model can be obtained.

660 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다 In operation 660, the processor 20 of the server 208 according to an embodiment may generate a classifier based on the classification model through the classifier generator 23 and store it in the memory 30.

도 7은 일 실시예에 따른 전자 장치에서 어플리케이션의 세션을 설명하기 위한 도면이다. 7 is a diagram for describing a session of an application in an electronic device according to an exemplary embodiment.

도 7을 참조하면, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 멀티 태스킹(multi tasking)을 통해 복수의 어플리케이션들(예: 제1 어플리케이션, 홈 화면, 제2 어플리케이션, 및/또는 다른 어플리케이션)을 실행할 수 있다. 일 실시예에 따른 프로세서(220)는 복수의 어플리케이션들 중 적어도 하나의 어플리케이션 화면을 디스플레이(260)에 노출되도록 할 수 있고, 적어도 하나의 어플리케이션 화면이 노출되는 동안(예: 포 그라운드 동안) 다른 적어도 하나의 어플리케이션 화면은 노출되지 않도록(예: 백그라운드로 동작하도록) 제어할 수 있다. Referring to FIG. 7 , the processor 220 of the electronic device 201 according to an embodiment executes a plurality of applications (eg, a first application, a home screen, a second application, and/or a second application) through multi-tasking. or other applications). The processor 220 according to an embodiment may expose at least one application screen of a plurality of applications to the display 260, and while the at least one application screen is exposed (eg, during the foreground), at least one other application screen may be displayed. One application screen can be controlled not to be exposed (eg, to operate in the background).

일 실시예에 따르면, 프로세서(220)에 의해 멀티 태스킹 실행되는 복수의 어플리케이션들(예: 제1 어플리케이션, 홈 화면, 제2 어플리케이션, 및/또는 다른 어플리케이션) 중 적어도 일부(제1 어플리케이션)가 지정된 어플리케이션 일 수 있으며, 제1 어플리케이션의 화면이 디스플레이(260)에 노출되는 기간을 세션이라고 할 수 있다. 예를 들면, 제1 어플리케이션이 포그라운드(예: 제1 포그라운드)로 실행되다가 홈 화면이 포그라운드(예: 제2 포그라운드)로 실행되고, 다시 제1 어플리케이션이 포그라운드(예: 제3 포그라운드)로 실행되고, 이후 제2 어플리케이션이 포그라운드(예: 제4 포그라운드)로 실행되고, 다시 제1 어플리케이션이 포그라운드(예: 제5 포그라운드)로 실행되는 경우, 제1 포그라운드 기간이 제1 세션(session 1)(710)이 될 수 있고, 제3 포그라운드 기간이 제2 세션(session 2)(720)이 될 수 있고, 제5 포그라운드 기간이 제3 세션(session 3)(730)이 될 수 있다. 상기 도 7의 세션은 일 예일뿐, 세션은 다양한 다른 방식으로 지정될 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션(예: 제1 세션, 제2 세션, 제3 세션 및/또는 다른 세션)에 대응된 로우 데이터를 획득하거나, 각 세션에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 세션 기반 데이터로서 획득할 수 있다.According to an embodiment, at least some (first application) of a plurality of applications (eg, a first application, a home screen, a second application, and/or other applications) executed in multi-tasking by the processor 220 are designated. It may be an application, and a period during which the screen of the first application is exposed on the display 260 may be referred to as a session. For example, the first application is executed in the foreground (eg, the first foreground), then the home screen is executed in the foreground (eg, the second foreground), and then the first application is executed in the foreground (eg, the third foreground). foreground), the second application is then executed in the foreground (eg, the fourth foreground), and the first application is executed again in the foreground (eg, the fifth foreground), the first foreground The period may be the first session (session 1) 710, the third foreground period may be the second session (session 2) 720, and the fifth foreground period may be the third session (session 3). ) (730). The session of FIG. 7 is only an example, and the session may be designated in various other ways. The processor 220 according to an embodiment obtains raw data corresponding to each session (eg, a first session, a second session, a third session, and/or another session), or summarizes raw data corresponding to each session. (or processing) information (eg, an average value of each of a plurality of factors and/or a k quantile of each of a plurality of factors) may be obtained as session-based data.

도 8은 일 실시예에 따른 서버에서 게임 어플리케이션의 성능 최적화에 이용하기 위한 분류기 생성 동작을 설명하기 위한 도면이다. 8 is a diagram for explaining an operation of generating a classifier for use in performance optimization of a game application in a server according to an exemplary embodiment.

도 8을 참조하면, 서버(208)의 프로세서(20)는 게임 어플리케이션의 성능 최적화에 이용하기 위한 분류기 생성을 위해 전자 장치(201)로부터 게임 어플리케이션 실행과 연관된 로우 데이터를 수집할 수 있다(810). 예를 들면, 분류기 생성을 위해 필요한 데이터는 전자 장치(201)에서 게임 어플리케이션을 지정된 성능 설정값(예: 제1 성능 설정값)에 따라 실행하면서 획득된 게임 어플리케이션 실행과 연관된 로우 데이터일 수 있다. 예를 들면, 서버(208)는 전자 장치(201)를 포함하는 다수의 전자 장치들로부터 각각 게임 어플리케이션 실행과 연관된 로우 데이터들을 수집할 수도 있다. 예를 들면 서버(208)는 가공되지 않은 로우 데이터 자체를 수집할 수 있다. 예를 들면, 게임 어플리케이션 실행과 연관된 로우 데이터는 게임 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 게임 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 게임 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. 예를 들면, 서버(208)는 메타 데이터 크롤러(21)를 통해 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 게임 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 메모리(30)(예: 메타 데이터 데이터베이스)에 저장할 수 있다.Referring to FIG. 8 , the processor 20 of the server 208 may collect raw data related to the execution of the game application from the electronic device 201 to generate a classifier for use in optimizing the performance of the game application (810). . For example, data necessary for generating the classifier may be raw data related to execution of the game application obtained while the electronic device 201 executes the game application according to a specified performance setting value (eg, a first performance setting value). For example, the server 208 may collect raw data associated with game application execution from a plurality of electronic devices including the electronic device 201 . For example, server 208 may collect raw raw data itself. For example, the raw data associated with the execution of the game application may include raw data for a plurality of elements associated with the execution of the game application. The plurality of elements include FPS (frames per second) of the game application while the game application screen is exposed on the display 260 (eg, during the foreground), and temperature (or surface temperature) data of the electronic device 201 . , the load of the processor 220 (eg, CPU or GPU), network input/output (I/O), the resolution of the display 260, the refresh rate of the display 260, the screen brightness of the display 260, and/or the electronic device. 201 may include at least one of the network types being accessed. For example, the server 208 collects raw data when a game application is executed with a designated performance value from a designated number of electronic devices during a designated collection period through the meta data crawler 21, and stores the collected raw data in memory. (30) (e.g. meta data database).

일 실시예에 따른 서버(208)의 프로세서(20)는 상기 수집된 로우 데이터들에 대해 게임 세션별 세그멘테이션을 수행할 수 있다(820). 예를 들면, 프로세서(20)는 각 게임 세션을 지정된 시간(예: 1초, 또는 수초)단위로 세그멘테이션하여 게임 세션 세그먼트를 획득할 수 있다(820). The processor 20 of the server 208 according to an embodiment may perform segmentation for each game session on the collected raw data (820). For example, the processor 20 may acquire game session segments by segmenting each game session by a specified time unit (eg, 1 second or several seconds) (820).

일 실시예에 따른 서버(208)의 프로세서(20)는 게임 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별할 수 있고, 게임 세션별 세그먼트들 각각의 특징값들을 비지도 학습(unsupervised running) 방법으로 학습하여 군집화(clustering)할 수 있다(830). 예를 들면, 프로세서(20)는 게임 세션 세그먼트에 대응된 게임 세션 세그먼트 로우 데이터에서 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류별로 특징화된 값을 식별(또는 획득)할 수 있다. 예를 들면, 제1 세션의 제1 세그먼트의 FPS 평균, FPS 최소값, 및/또는 FPS 최대값을 획득하거나, 제1 세션 내의 세그먼트들에 대하여 세션 FPS 평균 및/또는 세션 세그먼트 FPS 평균의 차이를 획득할 수 있다. 서버(208)의 프로세서(20)는 상기 세션별 세그먼트들 각각의 특징값들을 비지도 학습(unsupervised running) 방법으로 학습하여 군집화할 수 있다. 일 실시예에 따른 서버(208)는 군집화 결과 세션 세그먼트들 클러스터 각각을 레이블링(예: 인게임 또는 낫인게임 또는 다른 식별 레이블)할 수 있다.The processor 20 of the server 208 according to an embodiment may identify feature values based on raw data of each segment for each game session, and perform unsupervised running on the feature values for each segment for each game session. ) method for clustering (830). For example, the processor 20 may obtain frames per second (FPS) from game session segment raw data corresponding to the game session segment, temperature (or surface temperature) data of the electronic device 201, and processor 220 (eg, CPU) or GPU) load, network input/output (I/O), resolution of the display 260, refresh rate of the display 260, screen brightness of the display 260, and/or type of network to which the electronic device 201 is connected. Characterized values can be identified (or obtained). For example, obtaining the FPS average, FPS minimum, and/or FPS maximum of the first segment of the first session, or obtaining the difference between the session FPS average and/or the session segment FPS average for the segments in the first session. can do. The processor 20 of the server 208 may learn and cluster feature values of each of the segments for each session using an unsupervised running method. The server 208 according to an embodiment may label each cluster of session segments as a result of clustering (eg, in-game or not-in-game or other identification label).

일 실시예에 따른 서버(208)의 프로세서(20)는 군집화 결과를 기반으로 로우 데이터와 레이블링된 특징값을 이용하여 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 식별(evaluating clusters)할 수 있다(840).Based on the clustering result, the processor 20 of the server 208 according to an embodiment performs supervised running using raw data and labeled feature values to identify segment groups unnecessary for performance measurement (evaluating clusters). ) can (840).

일 실시예에 따른 서버(208)의 프로세서(20)는 로우 데이터로부터 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있고, 분류 모델 기반의 분류기를 생성 및/또는 저장할 수 있다(850).The processor 20 of the server 208 according to an embodiment may obtain a classification model for excluding a segment group unnecessary for performance measurement from raw data, and may generate and/or store a classifier based on the classification model ( 850).

도 9는 일 실시예에 따른 서버에서 획득된 세션 세그먼트 로우 데이터에서 FPS와 전자 장치의 표면 온도의 예를 나타낸 그래프이다.9 is a graph illustrating an example of an FPS and a surface temperature of an electronic device in session segment raw data obtained from a server according to an embodiment.

도 9를 참조하면, 일 실시예에 따른 그래프(900)에서 x축은 시간을 나타낼 수 있고, y축은 fps값과 전자 장치의 온도값(예: 전자 장치의 예측되는 표면 온도(predicted surface temperature)값)을 나타낼 수 있다.Referring to FIG. 9 , in a graph 900 according to an embodiment, an x-axis may indicate time, and a y-axis may indicate an fps value and a temperature value of an electronic device (eg, a predicted surface temperature value of the electronic device). ) can be expressed.

일 실시예에 따른 전자 장치(201)에서 어플리케이션이 실행됨에 따라 세션별 로우 데이터들이 시간 순서대로(또는 실시간으로) 서버(208)에 전송되어 수집될 수 있고, 서버(208)는 수집된 세션별 로우 데이터들에 대해 세션별 세그멘테이션을 수행하여 복수의 세션 세그먼트들(911 내지 981)을 획득할 수 있다. 일 실시예에 따른 서버(208)는 복수의 세션 세그먼트들 각각의 로우 데이터들 중 적어도 일부 로우 데이터(예: fps값과 전자 장치의 온도값)을 식별할 수 있다. 예를 들면, 참조번호 902는 세션 세그먼트 각각에 포함된 fps값을 나타낼 수 있고, 참조번호 903은 세션 세그먼트 각각에 포함된 온도값을 나타낼 수 있다. 도 9에서는 fps값과 전자 장치의 온도값을 예를 들어 설명하였지만, 서버(208)는 fps값 또는 전자 장치의 온도값 외에 다른 값을 더 식별할 수 있다.As an application is executed in the electronic device 201 according to an embodiment, raw data for each session may be transmitted and collected in chronological order (or in real time) to the server 208, and the server 208 may collect data for each collected session. A plurality of session segments 911 to 981 may be obtained by performing session-by-session segmentation on the raw data. According to an embodiment, the server 208 may identify at least some raw data (eg, fps value and temperature value of the electronic device) among raw data of each of a plurality of session segments. For example, reference number 902 may indicate an fps value included in each session segment, and reference number 903 may indicate a temperature value included in each session segment. Although the fps value and the temperature value of the electronic device are described as examples in FIG. 9 , the server 208 may further identify values other than the fps value or the temperature value of the electronic device.

일 실시예에 따른 서버(208)의 프로세서(20)는 세션별 세그먼트들 각각의 fps에 대응된 특징값과 전자 장치의 온도값에 대응된 특징값을 식별할 수 있다. 예를 들면, 서버(208)의 프로세서(20)는 제1 세션 세그먼트(911)의 제1 fps 특징값 내지 제8 세션 세그먼트(981)의 제8 fps 특징값을 식별할 수 있고, 제1 세션 세그먼트(911)의 제1 온도 특징값 내지 제8 세션 세그먼트(981)의 제8 온도 특징값을 식별할 수 있다. 일 실시예에 따른 서버(208)의 프로세서(20)는 세션별 세그먼트들(911 내지 981) 각각의 fps 특징값들 및 온도 특징값들을 비지도 학습(unsupervised running)하여 군집화(클러스터링(clustering))할 수 있다. 일 실시예에 따른 서버(208)의 프로세서(20)는 상기 군집화 결과에 대한 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있고, 분류 모델 기반의 분류기를 생성 및/또는 저장할 수 있다.The processor 20 of the server 208 according to an embodiment may identify a feature value corresponding to fps of each segment for each session and a feature value corresponding to the temperature value of the electronic device. For example, the processor 20 of the server 208 may identify the first fps characteristic value of the first session segment 911 to the eighth fps characteristic value of the eighth session segment 981, and The first temperature characteristic value of the segment 911 to the eighth temperature characteristic value of the eighth session segment 981 may be identified. The processor 20 of the server 208 according to an embodiment performs unsupervised running on the fps feature values and temperature feature values of each of the segments 911 to 981 for each session and clusters them (clustering) can do. The processor 20 of the server 208 according to an embodiment may obtain a classification model for excluding a segment group unnecessary for performance measurement by performing supervised running on the clustering result, based on the classification model. A classifier of can be created and/or stored.

도 10은 일 실시예에 따른 전자 장치에서 디스플레이되는 어플리케이션 화면들과 어플리케이션 화면들 각각에 대응하여 서버에서 획득된 로우 데이터들의 예를 설명하기 위한 도면이다. 10 is a diagram for explaining examples of application screens displayed on an electronic device and raw data obtained from a server corresponding to each of the application screens according to an exemplary embodiment.

도 10을 참조하면, 일 실시예에 따른 전자 장치(201)에서 게임 어플리케이션 실행을 위한 로딩 시 제1 화면(1010)이 표시되는 동안 제1 화면(1010)에 대응된 제1 세션 세그먼트(911)가 획득될 수 있다. 제1 세션 세그먼트(911) 동안에는 fps값(902)이 로딩으로 인해 높다가 로딩 완료 후 대기 상태로 인해 낮아지는 특징값을 가질 수 있고 온도값(903)은 변화가 크지 않을 수 있다. 일 실시예에 따른 전자 장치(201)에서 게임 어플리케이션 대기 상태에서 게임에 진입 시 제2 화면(1020)이 표시되는 동안 제2 화면(1020)에 대응된 제2 세션 세그먼트(921)가 획득될 수 있다. 제2 세션 세그먼트(921) 동안에는 대기 상태로 인해 fps값(922)이 낮다가 게임 진입으로 인해 높아지는 특징값을 가질 수 있고 온도값(923)은 변화가 크지 않을 수 있다. 일 실시예에 따른 전자 장치(201)에서 게임 진입하여 게임 중 제3 화면(1030)이 표시되는 동안 제3 화면(1030)에 대응된 제3 세션 세그먼트(931)가 획득될 수 있다. 제3 세션 세그먼트(931) 동안에는 게임중 상태로 인해 fps값(932)이 높은 특징값을 가질 수 있고 온도값(933)이 점차 높아지는 특징값을 가질 수 있다. 일 실시예에 따른 전자 장치(201)에서 게임 진입하여 게임 중 전자 장치 온도가 높아진 상태에서 제4 화면(1040)이 표시되는 동안 제4 화면(1040)에 대응된 제4 세션 세그먼트(941)가 획득될 수 있다. 제4 세션 세그먼트(941) 동안에는 게임중 전자 장치 온도가 높아지는 상태로 인해 fps값(942)이 제한되어 일시적으로 낮아지는 특징값을 가질 수 있고, 온도값(943)는 낮아지는 특징값을 가질 수 있다. 일 실시예에 따른 전자 장치(201)에서 게임 진입하여 게임 중 fps값이 제한되었다가 전자 장치 온도가 낮아져서 fps 제한이 해제된 상태에서 제5 화면(1050)이 표시되는 동안 제5 화면(1050)에 대응된 제5 세션 세그먼트(951)가 획득될 수 있다. 제5 세션 세그먼트(951) 동안에는 게임중 전자 장치 온도값(953)이 다시 낮아지는 상태로 인해 fps값(952)이 높은 특징값을 가질 수 있다. Referring to FIG. 10 , a first session segment 911 corresponding to the first screen 1010 while the first screen 1010 is displayed when loading for execution of a game application in the electronic device 201 according to an embodiment can be obtained. During the first session segment 911, the fps value 902 may have a characteristic value that is high due to loading and then becomes low due to a standby state after completion of loading, and the temperature value 903 may not change significantly. When the electronic device 201 enters a game in a game application standby state according to an embodiment, a second session segment 921 corresponding to the second screen 1020 may be obtained while the second screen 1020 is displayed. there is. During the second session segment 921, the fps value 922 may have a low fps value 922 due to a standby state and may have a feature value that increases due to entering a game, and the temperature value 923 may not change significantly. A third session segment 931 corresponding to the third screen 1030 may be obtained while the third screen 1030 is displayed during the game after entering the game in the electronic device 201 according to an embodiment. During the third session segment 931, the fps value 932 may have a high feature value and the temperature value 933 may have a gradually increasing feature value due to a game state. The fourth session segment 941 corresponding to the fourth screen 1040 is displayed while the electronic device 201 enters a game and displays the fourth screen 1040 in a state where the temperature of the electronic device increases during the game. can be obtained During the fourth session segment 941, the fps value 942 is limited due to a state in which the temperature of the electronic device increases during the game, so it may have a feature value that temporarily decreases, and the temperature value 943 may have a feature value that decreases. there is. The fifth screen 1050 is displayed while the electronic device 201 enters the game and the fps value is limited during the game, and then the fps limit is released due to the temperature of the electronic device being lowered. A fifth session segment 951 corresponding to may be obtained. During the fifth session segment 951, the fps value 952 may have a high feature value due to the state in which the temperature value 953 of the electronic device during the game is lowered again.

일 실시예에 따른 서버(208)는 상기 특징값들 각각에 대해 비지도 학습(unsupervised running)하여 세션 세그먼트들을 복수의 클러스터로 군집화할 수 있다. 일 실시예에 따른 서버(208)는 군집화 결과 세션 세그먼트들 클러스터 각각을 레이블링(예: 인게임 또는 낫인게임 또는 다른 식별 레이블)할 수 있다. 일 실시예에 따른 서버(208)는 로우 데이터와 레이블링된 특징값을 이용하여 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있고, 분류 모델 기반의 분류기를 생성 및/또는 저장할 수 있다.The server 208 according to an embodiment may cluster session segments into a plurality of clusters by performing unsupervised running on each of the feature values. The server 208 according to an embodiment may label each cluster of session segments as a result of clustering (eg, in-game or not-in-game or other identification label). The server 208 according to an embodiment may obtain a classification model for excluding segment groups unnecessary for performance measurement by performing supervised running using raw data and labeled feature values, and based on the classification model A classifier of can be created and/or stored.

도 11은 일 실시예에 따른 세션별 로우 데이터의 FPS 분포도를 나타낸 그래프이다.11 is a graph showing an FPS distribution of raw data for each session according to an embodiment.

도 11을 참조하면, 일 실시예에 따른 그래프(1100)에서 x축은 FPS값을 나타낼 수 있고, y축은 분포도(예: kde(kernel density estimation))을 나타낼 수 있다. 일 실시예에 따른 전자 장치(201)에서 어플리케이션이 실행됨에 따라 세션별 로우 데이터들이 시간 순서대로(또는 실시간으로) 서버(208)에 전송되어 수집될 수 있고, 서버(208)는 수집된 세션별 로우 데이터들을 이용하여 복수의 세션 세그먼트들 각각에 대한 fps 분포도들(1110 내지 1140)을 획득할 수 있고, 인게임에 대응된 fps 분포도를 식별하고 인게임에 대응된 fps 분포도를 가지는 세션 세그먼트들(예: 1130, 1140)을 성능 측정에 이용할 수 있다. Referring to FIG. 11 , in a graph 1100 according to an embodiment, an x-axis may indicate an FPS value and a y-axis may indicate a distribution (eg, kde (kernel density estimation)). As an application is executed in the electronic device 201 according to an embodiment, raw data for each session may be transmitted and collected in chronological order (or in real time) to the server 208, and the server 208 may collect data for each collected session. It is possible to obtain fps distributions 1110 to 1140 for each of a plurality of session segments using the raw data, identify the fps distribution corresponding to the in-game, and identify the session segments having the fps distribution corresponding to the in-game (eg: 1130, 1140) can be used to measure performance.

도 12는 일 실시예에 따른 세션별 로우 데이터의 PST 분포도를 나타낸 그래프이다.12 is a graph showing a PST distribution of raw data for each session according to an embodiment.

도 11을 참조하면, 일 실시예에 따른 그래프(1200)에서 x축은 PST(predicted surface temperature)(또는 단말 온도값)를 나타낼 수 있고, y축은 분포도(예: kde(kernel density estimation))을 나타낼 수 있다. 일 실시예에 따른 전자 장치(201)에서 어플리케이션이 실행됨에 따라 세션별 로우 데이터들이 시간 순서대로(또는 실시간으로) 서버(208)에 전송되어 수집될 수 있고, 서버(208)는 수집된 세션별 로우 데이터들을 이용하여 복수의 세션 세그먼트들 각각에 대한 단말 온도값 분포도들(1210 내지 1240)을 획득할 수 있고, 인게임에 대응된 단말 온도값 분포도를 식별하고 인게임에 대응된 단말 온도값 분포도를 가지는 세션 세그먼트들(예: 1230, 1240)을 성능 측정에 이용할 수 있다. Referring to FIG. 11 , in a graph 1200 according to an embodiment, an x-axis may indicate a predicted surface temperature (PST) (or terminal temperature value), and a y-axis may indicate a distribution (eg, kernel density estimation (kde)). can As an application is executed in the electronic device 201 according to an embodiment, raw data for each session may be transmitted and collected in chronological order (or in real time) to the server 208, and the server 208 may collect data for each collected session. It is possible to obtain terminal temperature distribution maps 1210 to 1240 for each of a plurality of session segments using raw data, identify a terminal temperature distribution map corresponding to an in-game, and have a terminal temperature distribution map corresponding to an in-game Session segments (eg, 1230 and 1240) can be used for performance measurement.

본 문서에 개시된 다양한 실시예에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 개시의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be devices of various types. The electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. An electronic device according to an embodiment of the present disclosure is not limited to the aforementioned devices.

본 개시의 다양한 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.Various embodiments of the present disclosure and terms used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, like reference numbers may be used for like or related elements. The singular form of a noun corresponding to an item may include one item or a plurality of items, unless the relevant context clearly dictates otherwise. In this document, "A or B", "at least one of A and B", "at least one of A or B," "A, B or C," "at least one of A, B and C," and "A Each of the phrases such as "at least one of , B, or C" may include any one of the items listed together in that phrase, or all possible combinations thereof. Terms such as "first", "second", or "first" or "secondary" may simply be used to distinguish a given component from other corresponding components, and may be used to refer to a given component in another aspect (eg, importance or order) is not limited. A (e.g., first) component is said to be "coupled" or "connected" to another (e.g., second) component, with or without the terms "functionally" or "communicatively." When mentioned, it means that the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in this document may include a unit implemented by hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 개시의 다양한 실시예는 기기(machine)(예: 전자 장치(101))에 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present disclosure provide one or more stored in a storage medium (eg, internal memory 136 or external memory 138) readable by a machine (eg, electronic device 101). It may be implemented as software (eg, program 140) containing instructions. For example, a processor (eg, the processor 120 ) of a device (eg, the electronic device 101 ) may call at least one command among one or more instructions stored from a storage medium and execute it. This enables the device to be operated to perform at least one function according to the at least one command invoked. The one or more instructions may include code generated by a compiler or code executable by an interpreter. Device-readable storage media may be provided in the form of non-transitory storage media. Here, 'non-temporary' only means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.

일 실시예에 따르면, 본 문서에 개시된 다양한 실시예에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (e.g. compact disc read only memory (CD-ROM)), or through an application store (e.g. Play Store™) or on two user devices (e.g. It can be distributed (eg downloaded or uploaded) online, directly between smartphones. In the case of online distribution, at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.

다양한 실시예에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, module or program) of the above-described components may include a single entity or a plurality of entities. According to various embodiments, one or more components or operations among the aforementioned corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. . According to various embodiments, operations performed by modules, programs, or other components are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

다양한 실시예에 따르면, 명령들을 저장하고 있는 비휘발성 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함할 수 있다.According to various embodiments, in a non-volatile storage medium storing instructions, the instructions are set to cause the at least one processor to perform at least one operation when executed by at least one processor, and the at least one The operation may include obtaining or identifying a classifier associated with the application based on an application execution request, obtaining raw data of each session associated with the application execution while the application is executing based on a first performance setting value, Classifying data necessary for obtaining the optimal performance parameter of the application and data unnecessary for obtaining the optimal performance parameter from the raw data of each of the sessions using the classifier, and determining the optimal performance parameter based on the data necessary for the optimal performance parameter It may include an operation of acquiring, and an operation of changing the first performance set value to a second performance set value corresponding to the obtained optimal performance parameter.

그리고 본 명세서와 도면에 발명된 본 발명의 실시예들은 본 발명의 실시예에 따른 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 발명된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.In addition, the embodiments of the present invention described in the present specification and drawings are only presented as specific examples to easily explain the technical content according to the embodiments of the present invention and help understanding of the embodiments of the present invention, and the scope of the embodiments of the present invention is not intended to limit Therefore, the scope of various embodiments of the present invention should be construed as including all changes or modified forms derived based on the technical spirit of various embodiments of the present invention in addition to the embodiments disclosed herein are included in the scope of various embodiments of the present invention. do.

Claims (20)

전자 장치에 있어서,
통신 모듈;
디스플레이;
메모리; 및
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하고, 제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하고, 상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하고, 상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하고, 및 상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하도록 설정된 전자 장치.
In electronic devices,
communication module;
display;
Memory; and
including at least one processor, wherein the at least one processor comprises:
Acquiring or identifying a classifier associated with the application based on an application execution request, acquiring raw data of each session associated with the application execution while the application is running based on a first performance setting value, and using the classifier classifying data necessary for obtaining the optimal performance parameter of the application and data unnecessary for obtaining the optimal performance parameter based on the raw data of each of the sessions, and obtaining an optimal performance parameter based on the data necessary for the optimal performance parameter, and the electronic device configured to change the first performance setting value to a second performance setting value corresponding to the obtained optimal performance parameter.
제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하고, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하고, 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하도록 설정된 전자 장치.
According to claim 1,
The at least one processor,
Segmentation is performed on each of the sessions related to the execution of the application, and segment data for each session necessary for obtaining the optimal performance parameter of the application and segment data for each session unnecessary for obtaining the optimal performance parameter are extracted from the raw data of each of the segments for each session. An electronic device configured to classify and acquire an optimal performance parameter based on segment data for each session required to acquire the optimal performance parameter.
제1항에 있어서,
상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 FPS(frame per second), 전자 장치의 온도데이터, CPU 또는 GPU의 부하, 네트워크 입출력(I/O), 디스플레이 해상도, 디스플레이 주사율, 디스플레이 화면 밝기, 또는 접속중인 네트워크 종류 중 적어도 하나를 포함하는 전자 장치.
According to claim 1,
The raw data associated with the execution of the application includes raw data for a plurality of elements, and the plurality of elements include frames per second (FPS) while the application screen is exposed on the display, temperature data of an electronic device, CPU or An electronic device including at least one of GPU load, network input/output (I/O), display resolution, display refresh rate, display screen brightness, or network type being accessed.
제1항에 있어서,
상기 어플리케이션은 게임 어플리케이션인 전자 장치.
According to claim 1,
The electronic device wherein the application is a game application.
제4항에 있어서,
상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함하는 전자 장치.
According to claim 4,
The electronic device of claim 1 , wherein the data required to obtain the optimal performance parameter of the application includes in-game data, and the data unnecessary to obtain the optimal performance parameter includes sickle game data.
제1항에 있어서,
상기 제1 성능 설정값은 제1 CPU 클럭 값 또는 제1 GPU 클럭 값을 포함하고, 상기 제2 성능 설정값은 제2 CPU 클럭 값 또는 제2 GPU 클럭 값을 포함하는 전자 장치.
According to claim 1,
The first performance setting value includes a first CPU clock value or a first GPU clock value, and the second performance setting value includes a second CPU clock value or a second GPU clock value.
전자 장치에서 어플리케이션 실행 성능 최적화 방법에 있어서,
상기 어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작;
제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작;
상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작;
상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작; 및
상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함하는 방법.
A method for optimizing application execution performance in an electronic device,
obtaining or identifying a classifier associated with the application based on the application execution request;
acquiring raw data of each session associated with the execution of the application while the application is being executed based on a first performance set value;
classifying data required for obtaining an optimal performance parameter of the application and data unnecessary for obtaining an optimal performance parameter of the application based on the raw data of each of the sessions using the classifier;
obtaining an optimal performance parameter based on data required for the optimal performance parameter; and
and changing the first performance setting value to a second performance setting value corresponding to the obtained optimal performance parameter.
제7항에 있어서,
상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하는 동작;
세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하는 동작; 및
상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작을 더 포함하는 방법.
According to claim 7,
performing segmentation on each of the sessions associated with the execution of the application;
classifying segment data for each session necessary for obtaining an optimal performance parameter of the application and segment data for each session unnecessary for obtaining an optimal performance parameter of the application from raw data of each segment for each session; and
The method further comprising obtaining an optimal performance parameter based on segment data for each session required to obtain the optimal performance parameter.
제7항에 있어서,
상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 FPS(frame per second), 전자 장치의 온도데이터, CPU 또는 GPU의 부하, 네트워크 입출력(I/O), 디스플레이 해상도, 디스플레이 주사율, 디스플레이 화면 밝기, 또는 접속중인 네트워크 종류 중 적어도 하나를 포함하는 방법.
According to claim 7,
The raw data associated with the execution of the application includes raw data for a plurality of elements, and the plurality of elements include frames per second (FPS) while the application screen is exposed on the display, temperature data of an electronic device, CPU or A method including at least one of GPU load, network input/output (I/O), display resolution, display refresh rate, display screen brightness, or type of network being accessed.
제7항에 있어서,
상기 어플리케이션은 게임 어플리케이션인 방법.
According to claim 7,
The method of claim 1, wherein the application is a game application.
제10항에 있어서,
상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함하는 방법.
According to claim 10,
The data necessary for acquiring the optimal performance parameter of the application includes in-game data, and the data unnecessary for acquiring the optimal performance parameter includes sickle game data.
제7항에 있어서,
상기 제1 성능 설정값은 제1 CPU 클럭 값 또는 제1 GPU 클럭 값을 포함하고, 상기 제2 성능 설정값은 제2 CPU 클럭 값 또는 제2 GPU 클럭 값을 포함하는 방법.
According to claim 7,
The first performance setting value comprises a first CPU clock value or a first GPU clock value, and the second performance setting value comprises a second CPU clock value or a second GPU clock value.
명령들을 저장하고 있는 비휘발성 저장 매체에 있어서,
상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
어플리케이션 실행 요청에 기반하여 상기 어플리케이션과 연관된 분류기를 획득하거나 식별하는 동작;
제1 성능 설정값에 기반하여 상기 어플리케이션을 실행하는 동안 상기 어플리케이션 실행과 연관된 세션들 각각의 로우 데이터를 획득하는 동작;
상기 분류기를 이용하여 상기 세션들 각각의 로우 데이터를 기반으로 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터와 최적 성능 파라미터 획득에 불필요한 데이터를 분류하는 동작;
상기 최적 성능 파라미터에 필요한 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작; 및
상기 제1 성능 설정값을 상기 획득된 최적 성능 파라미터에 대응된 제2 성능 설정값으로 변경하는 동작을 포함하는 저장 매체.
In a non-volatile storage medium storing instructions,
The instructions are configured to cause the at least one processor to perform at least one operation when executed by the at least one processor, the at least one operation comprising:
obtaining or identifying a classifier associated with the application based on an application execution request;
acquiring raw data of each session associated with the execution of the application while the application is being executed based on a first performance set value;
classifying data required for obtaining an optimal performance parameter of the application and data unnecessary for obtaining an optimal performance parameter of the application based on the raw data of each of the sessions using the classifier;
obtaining an optimal performance parameter based on data required for the optimal performance parameter; and
and changing the first performance setting value to a second performance setting value corresponding to the obtained optimal performance parameter.
서버에 있어서,
통신 모듈;
메모리; 및
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
지정된 수집 기간 동안 지정된 적어도 하나의 전자 장치로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 상기 통신 모듈을 통해 수집하고, 상기 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고, 상기 세션별 세그먼트들 각각의 상기 특징값들을 비지도 방법으로 학습하여 군집화하고, 상기 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득하고, 상기 분류 모델 기반의 분류기를 획득하도록 설정된 서버.
in the server,
communication module;
Memory; and
including at least one processor, wherein the at least one processor comprises:
During a specified collection period, raw data when a specified application is executed with a specified performance value from at least one specified electronic device is collected through the communication module, and the collected raw data is segmented by session to obtain raw data of each segment for each session. -based feature values are identified, the feature values of each of the segments for each session are learned and clustered in an unsupervised method, a classification model is obtained by performing supervised learning on the clustering result, and a classifier based on the classification model Server set up to acquire.
제14항에 있어서,
상기 적어도 하나의 프로세서는,
상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하도록 더 설정된 서버.
According to claim 14,
The at least one processor,
A server further configured to transmit the classifier to the electronic device through the communication module.
제14항에 있어서,
상기 지정된 어플리케이션은 게임 어플리케이션을 포함하는 서버.
According to claim 14,
The designated application is a server including a game application.
제14항에 있어서,
상기 어플리케이션을 실행할 경우의 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 FPS(frame per second), 전자 장치의 온도데이터, CPU 또는 GPU의 부하, 네트워크 입출력(I/O), 디스플레이 해상도, 디스플레이 주사율, 디스플레이 화면 밝기, 또는 접속중인 네트워크 종류 중 적어도 하나를 포함하는 서버.
According to claim 14,
The raw data when the application is executed includes raw data for a plurality of elements, and the plurality of elements include FPS (frame per second) while the application screen is exposed on the display, temperature data of the electronic device, CPU or a server including at least one of GPU load, network input/output (I/O), display resolution, display refresh rate, display screen brightness, or network type being accessed.
서버에서 분류기 생성 방법에 있어서,
지정된 수집 기간 동안 지정된 적어도 하나의 전자 장치로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 통신 모듈을 통해 수집하는 동작;
상기 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하는 동작;
상기 세션별 세그먼트들 각각의 상기 특징값들을 비지도 방법으로 학습하여 군집화하는 동작; 및
상기 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득하고, 상기 분류 모델 기반의 분류기를 획득하는 동작을 포함하는 방법.
In the classifier generation method in the server,
collecting raw data through a communication module when a specified application is executed with a specified performance value from at least one specified electronic device during a specified collection period;
segmenting the collected raw data for each session to identify feature values based on the raw data of each of the segments for each session;
learning and clustering the feature values of each of the segments for each session using an unsupervised method; and
and obtaining a classification model by performing supervised learning on the clustering result, and obtaining a classifier based on the classification model.
제18항에 있어서,
상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하는 동작을 더 포함하는 방법.
According to claim 18,
The method further comprising transmitting the classifier to the electronic device through the communication module.
제18항에 있어서,
상기 지정된 어플리케이션은 게임 어플리케이션을 포함하는 방법.
According to claim 18,
The designated application includes a game application.
KR1020210141980A 2021-10-22 2021-10-22 Electronic device and method for optimizing performance of running application on the electronic device KR20230057786A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210141980A KR20230057786A (en) 2021-10-22 2021-10-22 Electronic device and method for optimizing performance of running application on the electronic device
PCT/KR2022/012418 WO2023068518A1 (en) 2021-10-22 2022-08-19 Electronic device and method for optimizing application execution performance in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210141980A KR20230057786A (en) 2021-10-22 2021-10-22 Electronic device and method for optimizing performance of running application on the electronic device

Publications (1)

Publication Number Publication Date
KR20230057786A true KR20230057786A (en) 2023-05-02

Family

ID=86059361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210141980A KR20230057786A (en) 2021-10-22 2021-10-22 Electronic device and method for optimizing performance of running application on the electronic device

Country Status (2)

Country Link
KR (1) KR20230057786A (en)
WO (1) WO2023068518A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371338B1 (en) * 2011-10-12 2014-03-26 서울대학교산학협력단 Personalized optimization apparatus in a mobile terminal platform
KR102060703B1 (en) * 2013-03-11 2020-02-11 삼성전자주식회사 Optimizing method of mobile system
US10843084B2 (en) * 2013-10-30 2020-11-24 Nvidia Corporation Method and system for gathering time-varying metrics
US10303488B2 (en) * 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
FR3082962B1 (en) * 2018-06-26 2020-07-31 Bull Sas AUTOMATIC AND SELF-OPTIMIZED DETERMINATION OF THE EXECUTION PARAMETERS OF A SOFTWARE APPLICATION ON AN INFORMATION PROCESSING PLATFORM

Also Published As

Publication number Publication date
WO2023068518A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US11385684B2 (en) Method for controlling window and electronic device therefor
US11531835B2 (en) Electronic device for controlling predefined function based on response time of external electronic device on user input, and method thereof
US20210225320A1 (en) Electronic device and screen refresh method thereof
US11936542B2 (en) Method of solving problem of network and apparatus for performing the same
KR20230057786A (en) Electronic device and method for optimizing performance of running application on the electronic device
KR20220120154A (en) Method and device using machine learning model shared to multiple applications
US11874995B2 (en) Electronic device identifying force touch and method for operating the same
US20220311636A1 (en) Electronic device and method for determining device for performing task by electronic device
US11829408B2 (en) Method and electronic device for providing personalized media content
KR20230070984A (en) Electronic device for improving performance of running application and method for operating thereof
US20240037722A1 (en) Electronic device for encoding video, and control method therefor
US20220300333A1 (en) Electronic device including multi processor and method for operating the same
KR20240002865A (en) Server and operating method for updating a learning model of a device
KR20230036496A (en) Electronic device for processing neural network model and method of operating the same
KR20230063819A (en) Electronic device for adjusting driving voltage of volatile memory and method for operating the same
KR20230012350A (en) Electronic device that quickly updates a screen upon receiving an input from a peripheral device
KR20220147398A (en) Electronic device for processing data based on artificial intelligence model and method for thereof
KR20230052176A (en) Electronic device for controlling operation state using operational amplifier and method of operating the same
KR20230029055A (en) Electronic device and method for providing personalized user context aware service
KR20220151324A (en) Electronic device to improve the visibility of video using local contrast enhancement and the method thereof
KR20220128159A (en) Apparatus and scheduling method for process scheduling
KR20220131023A (en) Electronic device including multi processor and operating method thereof
KR20230091750A (en) Electronic apparatus and operating method thereof
KR20240030857A (en) Apparatus and method for optimizing performance of application
KR20220142886A (en) Electronic device processing touch input data and controlling method thereof