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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session 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
본 개시의 다양한 실시예들은 전자 장치에서 어플리케이션 실행 성능 최적화 방법에 관한 것이다.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
도 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
프로세서(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
보조 프로세서(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
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The
통신 모듈(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
무선 통신 모듈(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
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
The
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, 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
전자 장치(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
도 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
일 실시예에 따른 프로세서(220)는 통신 모듈(290)을 이용하여 서버(208)(예: 도 1의 서버(108))로부터 어플리케이션을 다운로드 받아 설치 및 실행하거나 기 다운로드된 어플리케이션을 실행할 수 있다. The
일 실시예에 따른 프로세서(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
일 실시예에 따르면 세션 기반 로우 데이터는 어플리케이션 화면이 디스플레이(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
일 실시예에 따른 프로세서(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
일 실시예에 따른 App runner(221)는 어플리케이션 실행 요청에 기반하여 설정된 성능 설정값(제1 성능 설정값)에 기반하여 어플리케이션을 실행할 수 있다. The
일 실시예에 따른 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
일 실시예에 따른 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
일 실시예에 따른 메모리(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
일 실시예에 따른 디스플레이(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
일 실시예에 따른 오디오 모듈(270)은 프로세서(220)의 제어에 기반하여 각종 정보를 표시할 수 있다. 예를 들면, 오디오 모듈(270)은 어플리케이션 실행과 연관된 오디오 신호를 스피커를 통해 출력하거나, 마이크를 통해 어플리케이션 실행과 연관된 오디오 신호를 입력 받을 수 있다.The
일 실시예에 따른 통신 모듈(290)은 네트워크(299)를 통해 서버(208)와 통신할 수 있다. 예를 들어, 통신 모듈(290)은 서버(208)로부터 분류기를 수신할 수 있고, 최적 성능 파라미터 값을 수신할 수 있다. 일 실시예에 따르면, 통신 모듈(290)은 셀룰러 모듈, Wi-Fi(wireless-fidelity) 모듈, 블루투스 모듈 또는 NFC(near field communication) 모듈을 포함할 수 있다. 이 외에 서버(208)와 통신 가능한 다른 모듈을 더 포함할 수 있다.
일 실시예에 따르면, 전자 장치(201)는 도 2에 도시된 구성에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성될 수 있다. 일 실시예에 따르면, 전자 장치(201)는 이미지 처리 모듈(미도시)을 더 포함할 수 있다. 이미지 처리 모듈은 프로세서(220)의 제어에 기반하여 2D 또는 3D 이미지 처리 및/또는 렌더링 동작을 수행할 수 있다. According to an embodiment, the
일 실시예에 따른 서버(208)(예: 도 1의 서버(108))는 적어도 하나의 프로세서(이하, 프로세서라고도 함)(20), 메모리(30), 통신 모듈(90)을 포함하여 구성될 수 있다. 서버(208)는 이에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성 또는 상기 구성들 중 일부를 제외하여 구성될 수 있다. The server 208 (eg, the
일 실시예에 따른 프로세서(20)는 통신 모듈(90)을 통한 전자 장치(201)로부터 지정된 어플리케이션 여부 문의에 기반하여 지정된 어플리케이션에 대응된 분류기를 제공할 수 있다. 예를 들면, 분류기는 지정된 어플리케이션에 대응하여 미리 생성되거나 결정된 분류기일 수 있다. 일 실시예에 따른 프로세서(20)는 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고 세션별 세그먼트들 각각의 특징값들을 비지도 방법으로 학습하여 군집화하고, 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득한 후 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다. 일 실시예에 따른 프로세서(20)는 전자 장치(201)에 분류기 제공 후, 전자 장치(201)로부터 분류기를 이용하여 획득된 지정된 조건의 세션별 세그먼트 기반 데이터를 수신할 수 있다. 일 실시예에 따른 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석하여 지정된 어플리케이션에 대한 최적 성능 파라미터를 획득하고 획득된 최적 성능 파라미터를 전자 장치(201)에 전송할 수 있다.The
일 실시예에 따른 프로세서(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
일 실시예에 따른 메타 데이터 크롤러(21)는 외부의 서버(예: 앱 스토어)로부터 어플리케이션(예: 게임 어플리케이션)의 정보를 수집 및 분석하여 적어도 하나의 어플리케이션의 정보(예: 메타 데이터)를 메모리(30)(예: matadata database(메타데이터 데이터베이스))에 저장할 수 있다. 예를 들면, 메타 데이터는 "apk 이름", "게임 여부" 및/또는 "게임이름"을 포함할 수 있다. 일 실시예에 따른 메타 데이터 크롤러(21)는 저장된 적어도 하나의 어플리케이션의 정보(메타 데이터)를 기반으로 전자 장치(201)에 포함된(저장된 또는 설치된) 어플리케이션의 정보를 비교하여 전자 장치(201)에 포함된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인지 여부를 식별하거나, 전자 장치(201)에 포함된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인지 여부에 관한 정보를 제공할 수 있다. The
일 실시예에 따른 성능 데이터 수집기(22)는 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능값으로 지정된 어플리케이션을 실행할 경우의 로우 데이터를 수집하고, 수집된 로우 데이터를 메모리(30)(예: performance database(성능 데이터베이스))에 저장할 수 있다. 일 실시예에 따른 로우 데이터는 분류기 생성기(23)에 의한 학습에 이용될 수 있다.The
일 실시예에 따른 분류기 생성기(23)는 수집된 로우 데이터를 세션별 세그멘테이션하여 세션별 세그먼트들 각각의 로우 데이터 기반의 특징값들을 식별하고 세션별 세그먼트들 각각의 특징값들을 비지도 방법으로 학습하여 군집화하고, 군집화 결과에 대한 지도 학습을 수행하여 분류 모델을 획득한 후 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다. 일 실시예에 따르면 생성된 분류기는 크롤링된 메타 데이터와 동일 수준의 객체로 메타 데이터 데이터베이스에 저장될 수 있다. 예를 들면, 분류기가 존재하는 경우 메타 데이터는 "apk 이름", "게임 여부" 및/또는 "게임이름"과 함께 "분류기"를 더 포함할 수 있다. The
일 실시예에 따른 분류기 생성기(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
일 실시예에 따른 성능 분석기(25)는 전자 장치(201)로부터 상기 생성된 분류기를 이용하여 획득된 지정된 조건의 세션별 세그먼트 기반 데이터를 수신하여 분석하고 지정된 어플리케이션에 대한 최적 성능 파라미터를 획득하고, 획득된 최적 성능 파라미터를 전자 장치(201)에 전송할 수 있다.The
일 실시예에 따른 메모리(30)는 메타데이터 데이터베이스를 포함할 수 있고, 다수의 전자 장치들로부터 수집된 로우 데이터들 및 로우 데이터들을 기반으로 획득된 분류기를 저장할 수 있다. 예를 들어, 메모리(30)는 적어도 하나 이상의 분류기를 저장할 수 있으며, 지정된 어플리케이션에 대응된 지정된 분류기를 저장할 수 있다. The
일 실시예에 따른 통신 모듈(90)은 네트워크(299)를 통해 전자 장치(201)와 통신할 수 있다. 예를 들어, 통신 모듈(90)은 전자 장치(201)에 분류기를 전송할 수 있고, 전자 장치(201)로부터 로우 데이터 및/또는 지정된 조건의 세션별 세그먼트 데이터를 수신할 수 있다. The
상술한 일 실시예에서는 상기 도 2의 전자 장치(201) 및 서버(208)를 통해 주요 구성 요소에 대해 설명하였다. 그러나 다양한 실시예에서는 상기 도 2를 통해 도시된 구성 요소가 모두 필수 구성 요소인 것은 아니며, 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(201) 및/또는 서버(208)가 구현될 수도 있고, 그 보다 적은 구성 요소에 의해 전자 장치(201) 및/또는 서버(208)가 구현될 수도 있다.In the above-described embodiment, the main components have been described through the
다양한 실시예에 따르면, 전자 장치(예: 도 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
다양한 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하고, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하고, 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하도록 설정될 수 있다.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,
다양한 실시예에 따르면, 상기 서버의 상기 적어도 하나의 프로세서는, 상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하도록 더 설정될 수 있다.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
312 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In
314 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청에 응답하여 통신 모듈(290)을 통해 서버(208)에 실행 요청된 어플리케이션이 지정된 어플리케이션인지 여부를 문의할 수 있다. In
316 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 어플리케이션 여부 문의에 응답할 수 있다. 예를 들면 서버(208)는 문의된 어플리케이션이 최적 성능값 설정이 요구되는 지정된 어플리케이션인지 식별(또는 확인)하고, 최적 성능갑 설정이 요구되는 지정된 어플리케이션임을 응답할 수 있다. 예를 들면 최적 성능값 설정이 요구되는 지정된 어플리케이션은 게임 어플리케이션일 수 있다. In
318 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)인 응답을 수신한 것에 대응하여 지정된 성능 설정값(예: 제1 성능 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In
320 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 세션 기반 데이터를 획득할 수 있다. 예를 들면, 어플리케이션은 전자 장치(201)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 세션 기반 데이터로서 획득할 수 있다. In
322 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 세션 기반 데이터를 통신 모듈(290)을 통해 서버(208)에 전송할 수 있다.In
324 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 전자 장치(201)로부터 수신된 세션 기반 데이터를 분석할 수 있다. 예를 들면, 프로세서(20)는 각 세션에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 평균값, 및/또는 복수의 요소들 각각의 k분위)를 분석하여 전자 장치(201)의 어플리케이션 실행 성능을 더 높이거나 낮출 수 있는지 식별할 수 있다.In
326 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 세션 기반 데이터 분석 결과 기반으로 최적 성능 파라미터를 획득(또는 식별)할 수 있다. 예를 들면, 프로세서(20)는 전자 장치(201)의 세션 기반 데이터에 따라 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 또는 GPU 클럭 값을 식별할 수 있다.In
328 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 최적 성능 파라미터를 통신 모듈(90)을 통해 전자 장치(201)에 전송할 수 있다. 예를 들면, 최적 성능 파라미터는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 포함할 수 있다.In
330 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 최적 성능 파라미터에 기반하여 제2 성능 설정값을 식별할 수 있다. 예를 들면, 프로세서(220)는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 기반으로 프로세서(220)에서 설정될 CPU 클럭 값 또는 GPU 클럭 값을 식별할 수 있다.In
332 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 제2 성능 설정값에 기반하여 어플리케이션을 실행할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 성능 설정값에 기반하여 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션이 실행되도록 제어할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 CPU 클럭 값 또는 제1 GPU 클럭 값에 기반하여 어플리케이션 실행 중 CPU 클럭 값 또는 GPU 클럭 값을 제2 CPU 클럭 값 또는 제2 GPU 클럭 값으로 변경할 수 있다.In
상기 도 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
일 실시예에 따르면, 서버(208)는 로우 데이터 중 어플리케이션 실행 시 최적 성능 측정에 불필요한 로우 데이터를 배제할 수 있는 분류기를 생성하여 전자 장치(201)에 제공할 수 있고, 전자 장치(201)는 분류기를 이용하여 어플리케이션 실행 시 최적 성능 측정에 불필요한 로우 데이터는 배제하고 어플리케이션 실행 시 최적 성능 측정에 필요한 로우 데이터를 수집하여 서버(208)로 제공할 수 있다. According to an embodiment, the
도 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
412 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In
414 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청에 응답하여 통신 모듈(290)을 통해 서버(208)에 실행 요청된 어플리케이션이 지정된 어플리케이션인지 여부를 문의할 수 있다. In
416 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 어플리케이션 여부 문의에 응답하여 지정된 어플리케이션인 경우 분류기를 제공할 수 있다. 예를 들면 서버(208)는 문의된 어플리케이션이 최적 성능값 설정이 요구되는 지정된 어플리케이션인지 식별(또는 확인)하고, 최적 성능갑 설정이 요구되는 지정된 어플리케이션인 경우 분류기를 제공할 수 있다. 다른 실시예에 따르면 분류기는 전자 장치(201)에 구비되고 서버(208)는 분류기를 이용하도록 하는 정보를 제공할 수도 있다. 예를 들면, 분류기는 서버(208)(또는 다른 전자 장치)에 의해 학습을 통해 생성된 분류 모델에 기반한 소프트웨어 모듈일 수 있다. 서버(208)의 분류기 생성 동작에 대해서는 후술된 도 6의 설명을 참조할 수 있다. In
418 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)이고 분류기를 제공받거나 분류기를 이용하도록 하는 정보를 수신한 것에 대응하여 지정된 성능 설정값(예: 제1 성능 설정값 또는 제1 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In
420 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 세션별 세그먼테이션을 수행할 수 있다. 예를 들면, 어플리케이션은 전자 장치(201)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 일 실시예에 따른 프로세서(220)는 각 세션을 지정된 시간단위(예: 1초 또는 수초)로 세그멘테이션할 수 있다.In
422 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용하여 세션별 세그먼트들을 분류할 수 있다. 예를 들면, 프로세서(220)는 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 예를 들면, 지정된 조건은 미리 학습을 통해 생성된 분류 모델에 기반한 조건일 수 있다.In
424 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용한 분류 결과, 세션별 세그먼트 데이터들 중 지정된 조건을 만족하는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 획득할 수 있다.In
426 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 통신 모듈(290)을 통해 서버(208)에 전송할 수 있다.In
428 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석할 수 있다. 예를 들면, 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터를 분석하여 전자 장치(201)의 어플리케이션 실행 성능을 더 높이거나 낮출 수 있는지 식별할 수 있다.In
430 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과 기반으로 최적 성능 파라미터를 획득(또는 식별)할 수 있다. 예를 들면, 프로세서(20)는 전자 장치(201)로부터의 지정된 조건의 세션별 세그먼트 기반 데이터에 따라 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 또는 GPU 클럭 값을 식별할 수 있다.In
432 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 최적 성능 파라미터를 통신 모듈(90)을 통해 전자 장치(201)에 전송할 수 있다. 예를 들면, 최적 성능 파라미터는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 포함할 수 있다.In
434 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 최적 성능 파라미터에 기반하여 제2 성능 설정값(또는 제2 설정값)을 식별할 수 있다. 예를 들면, 프로세서(220)는 어플리케이션 실행 성능을 최적화 하기 위한 CPU 클럭 값 또는 GPU 클럭 값을 기반으로 프로세서(220)에서 설정될 CPU 클럭 값 또는 GPU 클럭 값을 식별할 수 있다.In
436 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 제2 성능 설정값(또는 제2 설정값)에 기반하여 어플리케이션을 실행할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 성능 설정값에 기반하여 어플리케이션 실행 중 제2 성능 설정값 식별 시 제2 성능 설정값으로 어플리케이션이 실행되도록 제어할 수 있다. 예를 들면, 전자 장치(201)의 프로세서(220)는 제1 CPU 클럭 값 또는 제1 GPU 클럭 값에 기반하여 어플리케이션 실행 중 CPU 클럭 값 또는 GPU 클럭 값을 제2 CPU 클럭 값 또는 제2 GPU 클럭 값으로 변경할 수 있다.In
다양한 실시예에 따르면, 전자 장치(예: 도 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
다양한 실시예에 따르면, 상기 방법은 상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하는 동작, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하는 동작, 및 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작을 더 포함할 수 있다.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,
510 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 어플리케이션 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들면, 어플리케이션은 게임 어플리케이션일 수 있다.In
520 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션인 것에 기반하여 분류기를 획득하거나 식별할 수 있다. 예를 들면, 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션인지 서버(208)에 문의하거나, 자체적으로 지정된 어플리케이션인지 식별할 수 있다. 예를 들면, 프로세서(220)는 지정된 어플리케이션에 대응된 분류기를 서버(208)로부터 수신하거나 메모리(230)에 미리 저장된 분류기를 식별할 수 있다.In
530 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 실행 요청된 어플리케이션이 지정된 어플리케이션(예: 게임 어플리케이션)이고 분류기를 제공받거나 식별한 것에 응답하여 지정된 성능 설정값(예: 제1 성능 설정값 또는 제1 설정값)에 기반하여 어플리케이션을 실행하고 어플리케이션 실행과 연관된 로우 데이터를 획득할 수 있다. 예를 들면, 어플리케이션 실행과 연관된 로우 데이터는 어플리케이션 실행과 연관된 복수의 요소들에 대한 로우 데이터를 포함할 수 있다. 복수의 요소들은 어플리케이션 화면이 디스플레이(260)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 어플리케이션의 FPS(frame per second), 전자 장치(201)의 온도(또는 표면 온도) 데이터, 프로세서(220)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(260)의 해상도, 디스플레이(260)의 주사율, 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(201)가 접속중인 네트워크 종류 중 적어도 하나를 포함할 수 있다. In
540 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 획득된 어플리케이션 실행과 연관된 로우 데이터를 기반으로 분류기를 이용하여 세션별 세그먼테이션을 수행하고 세션별 세그먼트들 중 지정된 조건의 세그먼트들을 식별할 수 있다. 예를 들면, 프로세서(220)는 각 세션을 지정된 시간단위(예: 1초 또는 수초)로 세그멘테이션할 수 있고, 분류기를 이용하여 세션별 세그먼트들의 데이터를 지정된 조건을 만족하는 세그먼트들의 데이터(예: 인 게임 데이터)와 지정된 조건을 만족하지 않는 세그먼트들의 데이터(예: 낫 인게임 데이터)로 분류할 수 있다. 예를 들면, 지정된 조건은 미리 학습을 통해 생성된 분류 모델에 기반한 조건일 수 있다.In
550 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 분류기를 이용한 분류 결과, 세션별 세그먼트 데이터들 중 지정된 조건을 만족하는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)를 획득할 수 있다.In
560 동작에서, 일 실시예에 따른 전자 장치(201)의 프로세서(220)는 지정된 조건의 세션별 세그먼트 기반 데이터(예: 인 게임 데이터)에 대응된 성능 파라미터(또는 최적 성능 파라미터)를 획득하거나 식별할 수 있다. 예를 들면, 프로세서(220)는 서버(208)에 지정된 조건의 세션별 세그먼트 기반 데이터를 전송하고, 서버(208)로부터 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과로 최적 성능 파라미터를 수신할 수 있다. 다른 예에 따르면, 프로세서(220)는 자체적으로 지정된 조건의 세션별 세그먼트 기반 데이터 분석 결과로 최적 성능 파라미터를 획득할 수도 있다.In
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
도 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
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
620 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 수집된 로우 데이터들에 대해 세션별 세그멘테이션을 수행할 수 있다. 예를 들면, 프로세서(20)는 각 세션을 지정된 시간(예: 1초, 또는 수초)단위로 세그멘테이션하여 세션 세그먼트를 획득할 수 있다. In
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
640 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 세션별 세그먼트들 각각의 특징값들을 비지도 학습(unsupervised running) 방법으로 학습하여 군집화할 수 있다. In
650 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 상기 군집화 결과에 대한 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있다.In
660 동작에서, 일 실시예에 따른 서버(208)의 프로세서(20)는 분류기 생성기(23)를 통해 분류 모델 기반의 분류기를 생성 및 메모리(30)에 저장할 수 있다 In
도 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
일 실시예에 따르면, 프로세서(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
도 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
일 실시예에 따른 서버(208)의 프로세서(20)는 상기 수집된 로우 데이터들에 대해 게임 세션별 세그멘테이션을 수행할 수 있다(820). 예를 들면, 프로세서(20)는 각 게임 세션을 지정된 시간(예: 1초, 또는 수초)단위로 세그멘테이션하여 게임 세션 세그먼트를 획득할 수 있다(820). The
일 실시예에 따른 서버(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
일 실시예에 따른 서버(208)의 프로세서(20)는 군집화 결과를 기반으로 로우 데이터와 레이블링된 특징값을 이용하여 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 식별(evaluating clusters)할 수 있다(840).Based on the clustering result, the
일 실시예에 따른 서버(208)의 프로세서(20)는 로우 데이터로부터 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있고, 분류 모델 기반의 분류기를 생성 및/또는 저장할 수 있다(850).The
도 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
일 실시예에 따른 전자 장치(201)에서 어플리케이션이 실행됨에 따라 세션별 로우 데이터들이 시간 순서대로(또는 실시간으로) 서버(208)에 전송되어 수집될 수 있고, 서버(208)는 수집된 세션별 로우 데이터들에 대해 세션별 세그멘테이션을 수행하여 복수의 세션 세그먼트들(911 내지 981)을 획득할 수 있다. 일 실시예에 따른 서버(208)는 복수의 세션 세그먼트들 각각의 로우 데이터들 중 적어도 일부 로우 데이터(예: fps값과 전자 장치의 온도값)을 식별할 수 있다. 예를 들면, 참조번호 902는 세션 세그먼트 각각에 포함된 fps값을 나타낼 수 있고, 참조번호 903은 세션 세그먼트 각각에 포함된 온도값을 나타낼 수 있다. 도 9에서는 fps값과 전자 장치의 온도값을 예를 들어 설명하였지만, 서버(208)는 fps값 또는 전자 장치의 온도값 외에 다른 값을 더 식별할 수 있다.As an application is executed in the
일 실시예에 따른 서버(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
도 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
일 실시예에 따른 서버(208)는 상기 특징값들 각각에 대해 비지도 학습(unsupervised running)하여 세션 세그먼트들을 복수의 클러스터로 군집화할 수 있다. 일 실시예에 따른 서버(208)는 군집화 결과 세션 세그먼트들 클러스터 각각을 레이블링(예: 인게임 또는 낫인게임 또는 다른 식별 레이블)할 수 있다. 일 실시예에 따른 서버(208)는 로우 데이터와 레이블링된 특징값을 이용하여 지도 학습(supervised running)을 수행하여 성능 측정에 불필요한 세그먼트 군을 제외하기 위한 분류 모델을 획득할 수 있고, 분류 모델 기반의 분류기를 생성 및/또는 저장할 수 있다.The
도 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
도 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
본 문서에 개시된 다양한 실시예에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 개시의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.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,
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예에 따른 방법은 컴퓨터 프로그램 제품(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.
상기 적어도 하나의 프로세서는,
상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하고, 세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하고, 상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하도록 설정된 전자 장치.
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.
상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 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.
상기 어플리케이션은 게임 어플리케이션인 전자 장치.
According to claim 1,
The electronic device wherein the application is a game application.
상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함하는 전자 장치.
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 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.
상기 어플리케이션 실행과 연관된 세션들 각각에 대해 세그멘테이션을 수행하는 동작;
세션별 세그먼트들 각각의 로우 데이터들로부터 상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터와 최적 성능 파라미터 획득에 불필요한 세션별 세그먼트 데이터를 분류하는 동작; 및
상기 최적 성능 파라미터 획득에 필요한 세션별 세그먼트 데이터를 기반으로 최적 성능 파라미터를 획득하는 동작을 더 포함하는 방법.
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.
상기 어플리케이션 실행과 연관된 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 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.
상기 어플리케이션은 게임 어플리케이션인 방법.
According to claim 7,
The method of claim 1, wherein the application is a game application.
상기 어플리케이션의 최적 성능 파라미터 획득에 필요한 데이터는 인 게임 데이터를 포함하고, 상기 최적 성능 파라미터 획득에 불필요한 데이터는 낫인 게임 데이터를 포함하는 방법.
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.
상기 제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.
상기 적어도 하나의 프로세서는,
상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하도록 더 설정된 서버.
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.
상기 지정된 어플리케이션은 게임 어플리케이션을 포함하는 서버.
According to claim 14,
The designated application is a server including a game application.
상기 어플리케이션을 실행할 경우의 로우 데이터는 복수의 요소들에 대한 로우 데이터를 포함하고, 상기 복수의 요소들은 어플리케이션 화면이 상기 디스플레이에 노출되는 동안의 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.
상기 분류기를 상기 통신 모듈을 통해 상기 전자 장치에 전송하는 동작을 더 포함하는 방법.
According to claim 18,
The method further comprising transmitting the classifier to the electronic device through the communication module.
상기 지정된 어플리케이션은 게임 어플리케이션을 포함하는 방법.According to claim 18,
The designated application includes a game application.
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)
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 |
-
2021
- 2021-10-22 KR KR1020210141980A patent/KR20230057786A/en unknown
-
2022
- 2022-08-19 WO PCT/KR2022/012418 patent/WO2023068518A1/en unknown
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 |