WO2023085628A1 - Electronic device for improving application execution performance, and operation method thereof - Google Patents

Electronic device for improving application execution performance, and operation method thereof Download PDF

Info

Publication number
WO2023085628A1
WO2023085628A1 PCT/KR2022/015820 KR2022015820W WO2023085628A1 WO 2023085628 A1 WO2023085628 A1 WO 2023085628A1 KR 2022015820 W KR2022015820 W KR 2022015820W WO 2023085628 A1 WO2023085628 A1 WO 2023085628A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
performance
electronic device
performance data
processor
Prior art date
Application number
PCT/KR2022/015820
Other languages
French (fr)
Korean (ko)
Inventor
김중섭
허태명
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020210159283A external-priority patent/KR20230070984A/en
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of WO2023085628A1 publication Critical patent/WO2023085628A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • Embodiments of the present disclosure relate to a method of improving execution performance of an application in an electronic device.
  • 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.
  • 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.
  • performance may need to be improved when the application is executed.
  • 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
  • the throughput load can cause problems, for example heat generation. Finding optimal performance parameters on the electronic device for the application may be important to enable the application to run smoothly on the electronic device.
  • Embodiments of the present disclosure may obtain a performance parameter for smooth execution of an application, provide an electronic device capable of executing the application based on the performance parameter, and improve execution performance of the application in the electronic device. .
  • Embodiments of the present disclosure can perform more accurate performance improvement and more accurately optimized performance by identifying an in-play section in which the game is actually played when a game application is executed and collecting performance data necessary for optimizing performance parameters in the in-play section.
  • An electronic device capable of executing an application based on a parameter may be provided, and execution performance of the application may be improved in the electronic device.
  • An electronic device may include a communication module, a display, a memory, and at least one processor operatively connected to the communication module, the display, and the memory.
  • the at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request.
  • the at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed.
  • the at least one processor may be configured to report the performance data to a server through the communication module.
  • the at least one processor may be configured to receive a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data from the server through the communication module.
  • the at least one processor may be configured to execute the application based on the second performance parameter.
  • a server may include a communication module, a memory, and at least one processor operatively connected to the communication module and the memory.
  • the at least one processor may be configured to receive a metadata request of an application from an electronic device through the communication module.
  • the at least one processor may be configured to transmit metadata including a first performance parameter for the application to the electronic device through the communication module.
  • the at least one processor may be configured to receive performance data related to execution of the application through the communication module while the application is being executed in the electronic device.
  • the at least one processor may be configured to identify the in-play section based on feature values related to the in-play section of the application extracted from the performance data.
  • the at least one processor may be configured to calculate a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period.
  • the at least one processor may be configured to transmit the second performance parameter to the electronic device through the communication module.
  • An electronic device may include a communication module, a display, a memory, and at least one processor operatively connected to the communication module, the display, and the memory.
  • the at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request.
  • the at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed.
  • the at least one processor may be configured to determine the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data.
  • the at least one processor may be configured to obtain a second performance parameter for improving performance of the application based on the performance data and/or the characteristic values.
  • the at least one processor may be configured to execute the application based on the second performance parameter.
  • An operating method of an electronic device may include executing the application based on a first performance parameter in response to a request for executing the application.
  • the method may include an operation of collecting performance data related to the execution of the application while the application is being executed.
  • the method may include reporting the performance data to a server.
  • the method may include receiving, from the server, a second performance parameter generated based on in-play data corresponding to an in-play period of the application among the performance data.
  • the method may include an operation of executing the application based on the second performance parameter.
  • a method of operating a server may include receiving a metadata request of an application from an electronic device.
  • the method may include transmitting metadata including a first performance parameter for the application to the electronic device.
  • the method may include receiving, from the electronic device, performance data associated with execution of the application while the application is being executed in the electronic device.
  • the method may include an operation of identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data.
  • the method may include an operation of calculating a second performance parameter for improving the performance of the application based on the performance data and/or the feature values corresponding to the identified in-play period.
  • the method may include transmitting the second performance parameter to the electronic device.
  • An operating method of an electronic device may include executing the application based on a first performance parameter in response to a request for executing the application.
  • the method may include an operation of collecting performance data related to the execution of the application while the application is being executed.
  • the method may include an operation of determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data.
  • the method may include obtaining a second performance parameter for improving the performance of the application based on the performance data and/or the feature values.
  • the method may include an operation of executing the application based on the second performance parameter.
  • FIG. 1 is a diagram illustrating a network environment according to an exemplary embodiment.
  • FIG. 2 is a block diagram illustrating configurations of an electronic device and a server according to an exemplary embodiment.
  • FIG. 3 illustrate execution screens of game applications.
  • FIG. 4 is a diagram for explaining changes in performance data collected during execution of a game application.
  • 5 is a diagram for comparing stability of performance data collected during execution of a game application.
  • FIG. 6 is a diagram for explaining data flow between an electronic device 200 and a server 230 according to an exemplary embodiment.
  • FIG. 7 is a signal flow diagram illustrating a procedure for improving the performance of the electronic device 200 according to an embodiment.
  • FIG. 8 is a flowchart illustrating a procedure for reporting performance data in the electronic device 200 according to an exemplary embodiment.
  • FIG. 9 is a flowchart illustrating a procedure of identifying an in-play section in the server 230 according to an embodiment.
  • FIG. 10 is a flowchart illustrating a procedure of identifying an in-play section in the electronic device 200 according to an embodiment.
  • FIG. 11 illustrates a distribution of feature values related to uploaded data according to an embodiment.
  • FIG. 12 illustrates a distribution of feature values related to a battery percentage according to an exemplary embodiment.
  • FIG. 13 illustrates a distribution of feature values related to surface temperature according to an exemplary embodiment.
  • FIG. 14 illustrates a distribution of feature values related to FPS according to an embodiment.
  • 15 illustrates a distribution of feature values related to game play time according to an embodiment.
  • 16 illustrates a distribution of feature values related to changes in surface temperature according to an exemplary embodiment.
  • 17 illustrates a distribution of feature values related to a battery percentage according to an embodiment.
  • 19 illustrates a distribution of feature values related to processor frequency according to an embodiment.
  • FIG. 20 illustrates a distribution of feature values related to processor usage according to an embodiment.
  • 21 illustrates a distribution of feature values related to asymmetry of surface temperature according to an embodiment.
  • FIG. 22 illustrates a distribution of feature values related to FPS stability according to an embodiment.
  • 25A and 25B are charts showing feature values related to FPS data in chronological order according to an embodiment.
  • 26 illustrates importance of feature values related to determining an in-play section according to an embodiment.
  • FIG. 27 illustrates a heatmap showing correlation of feature values related to determining an in-play section according to an embodiment.
  • the term user used in embodiments of the present disclosure may refer to a person using an electronic device or a device (eg, an artificial intelligence electronic device) using an electronic device.
  • a device eg, an artificial intelligence electronic device
  • FIG. 1 is a block diagram of an electronic device 101 within a network environment 100 according to an embodiment.
  • an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included.
  • at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added.
  • some of these components eg, sensor module 176, camera module 180, or antenna module 197) are integrated into a single component (eg, display module 160). It can be.
  • the processor 120 for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • software eg, the program 140
  • processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • the processor 120 includes a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor).
  • a main processor 121 eg, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor.
  • NPU neural network processing unit
  • the secondary processor 123 may use less power than the main processor 121 or be set to be specialized for a designated function.
  • the secondary processor 123 may be implemented separately from or as part of the main processor 121 .
  • the secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, running an application). ) state, together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states.
  • the auxiliary processor 123 eg, an image signal processor or a communication processor
  • the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
  • AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
  • the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 .
  • the data may include, for example, input data or output data for software (eg, program 140) and commands related thereto.
  • the memory 130 may include volatile memory 132 or non-volatile memory 134 .
  • the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
  • the input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user).
  • the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 155 may output sound signals to the outside of the electronic device 101 .
  • the sound output module 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 may visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 170 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card interface
  • audio interface audio interface
  • connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user may perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101 .
  • the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101 .
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported.
  • the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 190 may be a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, a : a local area network (LAN) communication module or a power line communication module).
  • a wireless communication module 192 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 194 eg, a : a local area network (LAN) communication module or a power line communication module.
  • a corresponding communication module is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, a LAN or a WAN).
  • a telecommunications network such as a computer network (eg, a LAN or a WAN).
  • These various types of communication modules may be integrated as one component (eg, a single chip) or implemented as a plurality of separate components (eg, multiple chips).
  • the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 101 may be identified or authenticated.
  • the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology).
  • NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low latency
  • -latency communications can be supported.
  • the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • the wireless communication module 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported.
  • the wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199).
  • the wireless communication module 192 is configured to achieve peak data rate (eg, 20 Gbps or more) for realizing 1eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency (for realizing URLLC).
  • peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC.
  • DL downlink
  • UL uplink each of 0.5 ms or less, or round trip 1 ms or less
  • the antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. can be chosen A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC) may be additionally formed as a part of the antenna module 197 in addition to the radiator.
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
  • Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
  • all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 .
  • the electronic device 101 when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself.
  • one or more external electronic devices may be requested to perform the function or at least part of the service.
  • One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 101 .
  • the electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an internet of things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 104 or server 108 may be included in the second network 199 .
  • the electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • FIG. 2 is a block diagram illustrating configurations of an electronic device and a server according to an exemplary embodiment.
  • an electronic device 200 (eg, the electronic device 101 of FIG. 1 ) includes at least one processor (hereinafter referred to as a processor) 210, a memory 206, a display 202, and an audio device. module 204 , and/or communication module 208 .
  • the electronic device 200 is not limited thereto and may be configured to further include various elements or be configured to exclude some of the above elements.
  • the electronic device 200 according to an embodiment may include all or part of the electronic device 101 shown in FIG. 1 .
  • the processor 210 downloads an execution package of an application from the server 230 (eg, the server 108 of FIG. 1) using the communication module 208 and installs and executes the application, or previously downloaded or electronic device 200. ) can run pre-stored applications.
  • the server 230 eg, the server 108 of FIG. 1
  • the processor 210 downloads an execution package of an application from the server 230 (eg, the server 108 of FIG. 1) using the communication module 208 and installs and executes the application, or previously downloaded or electronic device 200. ) can run pre-stored applications.
  • the processor 210 may inquire of the server 230 whether the application is of a designated type based on an application execution request (eg, a user input or an automatic execution request according to a designated condition).
  • the designated type may be an application requiring optimization of performance parameters.
  • the designated type may be a game application or an application requiring high performance.
  • the processor 210 can confirm that the execution-requested application is the designated type (eg, a game application, an application requiring performance optimization, or an application requiring high performance) based on the metadata provided from the server 230, Raw data associated with the execution of the application may be acquired.
  • the processor 210 may obtain performance data based on raw data associated with the execution of an application.
  • the performance data may include a plurality of elements related to the execution of the application.
  • the plurality of elements are the FPS (frame per second) of the application while the execution data (eg, execution screen) of the application is exposed on the display 202 (eg, during the foreground), the electronic device 200 ) temperature (eg central processing unit (CPU) temperature, graphic processing unit (GPU) temperature and/or surface temperature), load of the processor 210 (eg CPU or GPU), network input/output (I /O), the resolution of the display 202, the scan rate or refresh rate of the display 202, the screen brightness of the display 260, and/or the network the electronic device 200 is connected to (e.g. : mobile network).
  • FPS frame per second
  • the execution data eg, execution screen
  • the electronic device 200 eg, during the foreground
  • temperature eg central processing unit (CPU) temperature, graphic processing unit (GPU) temperature and/or surface temperature
  • load of the processor 210 eg CPU or GPU
  • an application may be in a foreground state or a background state when executed in the electronic device 200, and a session may mean a foreground state.
  • a session may mean a foreground state.
  • the first foreground period may be the first session
  • the first foreground period may be the first session.
  • 2 Foreground periods may be the second session.
  • the processor 210 includes summary (or processed) information (eg, statistical values of each of a plurality of elements, and/or a partial value of each of a plurality of elements) may be obtained as performance data.
  • the processor 210 may transmit the performance data related to the execution of the application to the server 230, and at least one performance parameter based on analysis of the performance data from the server 230 (for example, Clock and/or usage limits of the CPU/GPU may be received.
  • the processor 210 may directly calculate at least one performance parameter by analyzing the performance data, or may receive analysis information based on the analysis of the performance data from the server 230 and use the analysis information to perform performance. parameters can be calculated. Acquisition of performance parameters in the present disclosure may include reception from the server 230 and/or calculation in the electronic device 200 .
  • the processor 210 may execute the application based on the performance parameter.
  • the processor 210 may execute the application based on the second performance parameter.
  • the processor 220 may execute the application based on the third performance parameter when acquiring the third performance parameter while executing the application based on the second performance parameter.
  • the processor 210 may include an application launcher 212 , a performance tuner 214 , and/or an agent 216 .
  • application launcher 212 , performance tuner 214 , and/or agent 216 may be software or firmware executed by processor 210 .
  • the application launcher 212 , performance tuner 214 , and/or agent 216 may be included in the processor 210 or may be independent hardware modules.
  • the agent 216 may determine whether an application newly installed in the electronic device 200 is a designated type (eg, a game application, an application requiring performance optimization, or an application requiring high performance). If the type of application cannot be identified, the agent 216 queries the server 230 through a metadata request to receive information (for example, metadata) on whether the application is of the designated type, and the metadata Based on, it can be confirmed that the application is of the designated type.
  • a designated type eg, a game application, an application requiring performance optimization, or an application requiring high performance.
  • the application launcher 212 may execute the application based on a given performance parameter (eg, a first performance parameter or a second performance parameter) based on an application execution request. In one embodiment, the application launcher 212 may apply performance parameters provided from the performance tuner 214 to the execution of the application.
  • a given performance parameter eg, a first performance parameter or a second performance parameter
  • the performance tuner 214 collects and stores performance data associated with the execution of the application while the application is running (e.g., during an entire gaming session, or while execution data of the application is exposed on the display 202) and stores it in the memory 206 ( For example, it may be stored in the performance database (database: DB) 218) or transmitted to the agent 216.
  • performance data may include a plurality of elements related to the execution of an application.
  • the plurality of elements are the FPS of the application while the execution screen of the application is exposed on the display 202 (eg, during the foreground), the temperature of the electronic device 201 (eg, CPU/GPU temperature or surface temperature), the load of the processor 210 (eg, CPU or GPU), network input/output (I/O), the resolution of the display 202, the refresh rate or refresh rate of the display 222, the screen brightness of the display 202, and / or at least one of the types of networks to which the electronic device 200 is connected.
  • the temperature of the electronic device 201 eg, CPU/GPU temperature or surface temperature
  • the load of the processor 210 eg, CPU or GPU
  • network input/output I/O
  • Performance tuner 214 receives at least one performance parameter from server 230 via agent 216 in response to delivery of performance data associated with the execution of the application, for example, processor 210 (eg, CPU or GPU). Can receive a clock or usage limit of The performance tuner 214 according to an embodiment may provide the performance parameter to the application launcher 212 to execute the application based on the received performance parameter.
  • processor 210 eg, CPU or GPU
  • Can receive a clock or usage limit of The performance tuner 214 may provide the performance parameter to the application launcher 212 to execute the application based on the received performance parameter.
  • the agent 216 may periodically transmit performance data related to the running application to the server 230 through the communication module 208 .
  • the agent 216 periodically reads performance data from the memory 206 (for example, the performance database 218) according to a given period and sends the performance data to the server 230 through the communication module 208. can be reported as
  • the agent 216 receives, from the server 230, a performance parameter calculated through analysis of performance data corresponding to an in-play section in which the application is actually played by a user, and the performance Parameters can be passed to the performance tuner 214.
  • the performance parameter 230 may be calculated by the server 230 to improve execution performance of an application in the electronic device 200 through analysis of the performance data.
  • agent 216 divides performance data collected by performance tuner 214 into data corresponding to an in-play period (eg, in-play data) and data not corresponding to an in-play period (eg, in-play data). : not-in-play data). Among the entire time intervals in which the session related to the application is progressing, the remaining time intervals other than the in-play intervals may be referred to as not-in-play intervals.
  • the agent 216 may report in-play data that satisfies a specified condition to the server 230 as a result of the classification.
  • the agent 216 may receive a performance parameter obtained based on the analysis of in-play data from the server 230 and transmit it to the performance tuner 214 .
  • Agent 216 may analyze in-play data to obtain performance parameters and transmit the performance parameters to performance tuner 214 .
  • the memory 206 may store an application package and may store data and/or information related to execution of the application.
  • the application package may be downloaded from the server 230 or another server through the communication module 220 and installed in the electronic device 200 and/or stored in the memory 206 .
  • the memory 206 may include a performance database 218 , and the performance database 218 receives and stores performance data collected by the performance tuner 214 in association with the execution of the application, provided from the performance tuner 214 .
  • performance database 218 may be included in internal memory (not shown) of processor 210 .
  • the memory 230 may store various data generated during execution of the program 140 as well as programs used for functional operations (eg, the program 140 of FIG. 1 ).
  • the memory 230 may largely include a program area 140 and a data area (not shown).
  • the program area 140 may store program information related to driving the electronic device 200, such as an operating system (OS) for booting the electronic device 200 (eg, the operating system 142 of FIG. 1).
  • the data area (not shown) may store transmitted and/or received data and generated data according to embodiments of the present disclosure.
  • the memory 206 may be a flash memory, a hard disk, or a multimedia card micro type memory (eg, secure digital (SD) or extreme digital (XD) memory).
  • RAM (RAM) may be configured to include at least one storage medium of ROM (ROM).
  • the display 202 may display various data and/or information based on the control of the processor 210 .
  • the display 202 may display a user interface including execution data (eg, an execution screen) of an application, a home screen, and/or screens related to various functions or operations of the electronic device 200.
  • execution data eg, an execution screen
  • the display 202 may be implemented in the form of a touch screen.
  • the display 202 may display various information generated according to a user's touch operation.
  • the display 202 is a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), an active matrix organic LED (AMOLED), It may be composed of at least one or more of a micro LED, a mini LED, a flexible display, and a 3D display. Also, some of these displays may be of a transparent type or a light transmission type so that the outside can be seen through them. This may be configured in the form of a transparent display including a transparent OLED (TOLED). According to another embodiment, the electronic device 200 may further include other mounted display modules (eg, extended displays or flexible displays) in addition to the display 202 .
  • LCD liquid crystal display
  • TFT-LCD thin film transistor LCD
  • OLED organic light emitting diodes
  • LED light emitting diode
  • AMOLED active matrix organic LED
  • the electronic device 200 may further include other mounted display modules (eg, extended displays or flexible displays) in addition to the display 202
  • the audio module 204 may display various data and/or information based on the control of the processor 210 .
  • the audio module 204 may output an audio signal related to application execution through a speaker or receive an audio signal related to application execution through a microphone.
  • Communication module 208 may communicate with server 230 over network 220 .
  • the communication module 208 may receive metadata related to an application from the server 230 and may receive performance parameters.
  • the communication module 208 may include a cellular module, a wireless-fidelity (Wi-Fi) module, a Bluetooth module, or a near field communication (NFC) module.
  • Wi-Fi wireless-fidelity
  • NFC near field communication
  • other modules capable of communicating with the server 230 may be further included.
  • the electronic device 200 is not limited to the configuration shown in FIG. 2 and may further include various components. According to an embodiment, the electronic device 200 may further include an image processing module (not shown). The image processing module may perform 2D or 3D image processing and/or rendering operations under the control of the processor 210 .
  • the server 230 (eg, the server 108 of FIG. 1 ) according to an embodiment includes at least one processor (hereinafter referred to as a processor) 234, a memory 242, and a communication module 232. can be configured.
  • the server 230 is not limited thereto and may further include various elements or may be configured except for some of the above elements.
  • the processor 234 may provide metadata corresponding to a designated application based on an application inquiry from the electronic device 200 through the communication module 232 .
  • the processor 234 collects performance data when a designated application is executed from a plurality of electronic devices, and segments the collected performance data by session (eg, a first session, a second session, or another session) to segment each session.
  • Performance data may be analyzed by extracting feature values of each segment and learning feature values of each segment for each session using a machine learning model.
  • the processor 234 extracts summary (or processed) information (eg, a statistical value of each of a plurality of elements and/or a partial value of each of a plurality of elements) of the performance data related to the performance data. can be obtained as a value.
  • the processor 234 may receive performance data under a specified condition (eg, within an in-play period) from the electronic device 200 .
  • the processor 234 may obtain a performance parameter for a specified application by analyzing performance data under a specified condition, and may provide the performance parameter to the electronic device 200 through the communication module 232 .
  • the processor 234 may include a performance data collector module 236, a data classifier module 238, and/or a performance analyzer module 240.
  • performance data collection module 236 , data classification module 238 , and/or performance analysis module 240 may be software or firmware executed by processor 234 .
  • the performance data collection module 236 , data classification module 238 , and/or performance analysis module 240 may be included in the processor 234 or may be independent hardware.
  • the performance data collection module 236 collects performance data when a specified application is executed with a specified performance parameter from a specified number of electronic devices during a specified collection period, and stores the collected performance data in the memory 242. (e.g. performance database 246).
  • the performance data may be used for machine learning by data classification module 238 .
  • performance database 246 may store performance data labeled with scene information. The scene information may be included in game source code.
  • the data classification module 238 reads performance data (eg, performance data labeled with scene information) from the performance database 246, identifies characteristic values of the performance data for each session, and identifies the performance data for each session. Characteristic values are learned by a machine learning model to determine whether or not each performance data is collected in an in-play section in which an application is actually played by a user in the electronic device 200, and the performance data is converted into in-play data related to the in-play section. and not-in-play data that are not related to the in-play section.
  • performance data eg, performance data labeled with scene information
  • the performance analysis module 240 analyzes the in-play data collected from the electronic device 200 and classified by the data classification module 238 to improve the performance of the electronic device 200 for a designated application. Possible performance parameters may be calculated, and the calculated performance parameters may be stored in the parameter database 248 or transmitted to the electronic device 200 through the communication module 232 .
  • the memory 242 may include a metadata database 244, a performance database 246, and a parameter database 248, based on performance data and performance data collected from a plurality of electronic devices.
  • the acquired performance parameters may be stored.
  • the metadata database 244 includes at least one application information (eg, App Store TM or Play Store TM ) generated based on application (eg, game application) information collected from an external server (eg, App Store TM or Play Store TM ).
  • application eg, game application
  • metadata can be stored.
  • metadata may include "apk name", "game status", and/or "game name”.
  • metadata may include default values of performance parameters specified for the application.
  • the server 230 checks application information included (stored or installed) in the electronic device 200 based on application information (eg, metadata) stored in the metadata database 244, and Identifies whether the application included in the device 200 is a designated type (eg, a game application), and if the application is the designated type, information indicating that the application included in the electronic device 200 is a designated type (eg, a game application)
  • application information eg, metadata
  • the metadata including may be provided to the electronic device 200 through the communication module 232.
  • At least one of metadata database 244 , performance database 246 , or parameter database 248 may be included in internal memory (not shown) of processor 234 .
  • the server 230 communicates the performance parameters stored in the parameter database 244 according to a request of the electronic device 200 or according to a specified condition (eg, installation or execution of an application, or a given period). It can be transmitted to the electronic device 200 through the module 232 .
  • a specified condition eg, installation or execution of an application, or a given period.
  • the communication module 232 may communicate with the electronic device 200 through the network 220 .
  • the communication module 232 may transmit metadata to the electronic device 200 and may receive performance data and/or performance data (eg, in-play data) under a specified condition from the electronic device 200 . there is.
  • main components have been described through the electronic device 200 and the server 230 of FIG. 2 .
  • the electronic device 200 and/or the server 230 may be implemented with more components than the illustrated components, and fewer components than those shown.
  • the electronic device 200 and/or the server 230 may be implemented by elements.
  • the performance data collected by the electronic device 200 is a specified time unit (eg, 1 second unit) for all the time that the execution data (eg, execution screen) of the application is exposed on the display 202. Collected data may be included. Such performance data may include data unnecessary for optimizing performance parameters of the application (for example, performance data collected outside the in-play period).
  • FIG. 3 illustrate various execution screens of a game application.
  • the first screen 302 shown in FIG. 3A may include scenes displayed while an application (eg, game) is being loaded in the electronic device 200 and may be referred to as a loading screen hereinafter.
  • the second screen 304 shown in FIG. 3B may include scenes provided for a tutorial while an application is running, and may be referred to as a tutorial screen below.
  • the third screen 306 shown in FIG. 3C may provide scenes representing a waiting room before a game play (eg, battle) starts within an application, and may be referred to as a waiting room screen hereinafter.
  • the fourth screen 308 shown in FIG. 3D may include scenes provided when a battle starts while an application is running, and may be referred to as a start battle screen hereinafter.
  • the sixth screen 312 shown in FIG. 3F may include scenes provided when a battle ends while an application is running, and may be referred to as an end battle screen hereinafter.
  • performance data on not-in-play screens requires relatively low performance of the processor 210, It may be unnecessary for measuring the performance of the application, or may be relatively less important than in-play screens (eg, the battle start screen 308, the battle screen 310, and/or the battle end screen 312).
  • performance data during not-in-play screens may act as an obstacle to improving the execution performance of applications on the electronic device 200, and thus the server 230 or the electronic device 200 may perform optimally. Parameters may not be found or wrong performance parameters may be determined.
  • FIG. 4 is a diagram for explaining changes in performance data collected during execution of a game application.
  • reference number 404 indicates a change in FPS, which is one of performance data measured during execution of a game application
  • reference number 404 indicates a target FPS designated for the game application
  • reference number 406 indicates a game application. It shows PST (predicted surface temperature), one of the performance data measured during the execution of
  • 5 is a diagram for comparing stability of performance data collected during execution of a game application.
  • reference number 502 compares the average FPS of the entire game session (“Total avg FPS”) and the average FPS in the in-play section (“In play Avg FPS”), and reference number 504 represents the entire game session. Comparison of FPS stability ("Total FPS stability”) and FPS stability in the in-play section (“In play FPS stability”), and reference number 506 indicates the target FPS stability of the entire game session (“Total target FPS stability") and This is a comparison of target FPS stability ("In play target FPS stability”) in the in-play section.
  • the target FPS 404 is 40, and about half of the time during the game session in which the game application is in progress has elapsed on the waiting screen (for example, the waiting room screen 306). It can be seen that the FPS 402 is relatively stable in the shaded in-play section (for example, the screen 310 during battle). According to reference number 504, the FPS stability (total target FPS stability") of the entire game session is 52.8%, indicating that there is a problem with game performance, but the FPS stability of the in-play section (In play target FPS stability) is 52.8%. At 96.68%, it can be seen that there is no problem with actual game performance.
  • Embodiments to be described below classify performance data necessary for measuring the performance of an application into data collected during actual play of the application (ie, in-play data) and remaining data (ie, not-in-play data), and analyze the in-play data to more effectively implement the application. You can determine performance parameters to run.
  • FIG. 6 is a diagram for explaining data flow between an electronic device 200 and a server 230 according to an exemplary embodiment.
  • the processor 210 of the electronic device 200 and the processor 234 of the server 230 may be configured to execute at least one of the operations described below.
  • the processor 210 of the electronic device 200 may identify the application using the source code of the application (eg, game application) and obtain scene information included in the source code.
  • the scene information may represent the meaning of each scene of an application, and the scene information includes current execution data (eg, an execution screen) of an application being executed in the electronic device 200, an in-play screen (eg, a battle start screen ( 308), to identify whether it corresponds to the in-battle screen 310 or the battle end screen 312) or to a sickle-in-play screen (eg, a loading screen 302, a tutorial screen 304, or a waiting room screen) can be used
  • current execution data eg, an execution screen
  • an in-play screen eg, a battle start screen ( 308), to identify whether it corresponds to the in-battle screen 310 or the battle end screen 312
  • a sickle-in-play screen eg, a loading screen 302, a tutorial screen 304, or a waiting room screen
  • the scene information may include a scene identifier (scene_id) as shown in Table 1 below.
  • the processor 210 (for example, the agent 216) transmits a metadata request for the application to the server 230 and the metadata for the application from the metadata database 244 of the server 230.
  • the metadata may include whether or not the application is a game, and a default value of a performance parameter (eg, a first performance parameter).
  • the processor 210 transfers the first performance parameter obtained from the metadata to the performance tuner 214, so that the performance tuner 214 determines the first performance parameter. It can be applied to the execution of the application.
  • the processor 210 eg, the performance tuner 214) determines performance related to execution of the application while the application is running (eg, while a session of the application is maintained) based on the first performance parameter. Data may be collected periodically (eg, every second) and stored in a storage (eg, performance database 218 ) within the electronic device 200 .
  • the performance data is the FPS of the application, surface temperature (eg, predicted surface temperature (PST)), GPU load, CPU load, network I/O, display resolution, refresh rate or refresh rate, screen brightness, or mobile It may include at least one of the types of networks.
  • surface temperature eg, predicted surface temperature (PST)
  • GPU load e.g, GPU load
  • CPU load e.g, CPU load
  • network I/O display resolution, refresh rate or refresh rate, screen brightness, or mobile It may include at least one of the types of networks.
  • the processor 210 may collect segmented performance data (eg, segment data) for each session in which the application is executed. In one embodiment, the processor 210 ) (eg, the performance tuner 214) may tune the performance of the electronic device 200 according to the performance data while the application is being executed in the electronic device 200 .
  • the processor 210 transmits the performance data (eg, segment data) to the server 230 through the agent 216.
  • the performance data is transmitted to the server ( may be received by the processor 234 (eg, performance data collection module 236) of 230.
  • the processor 234 eg, performance data collection module 236) sends the performance data to a server.
  • memory 242 e.g., performance database 246) of 230.
  • processor 234 may be used by multiple electronic devices (e.g., electronic device 200) running the same application. ) and other electronic devices) may be stored in the performance database 246.
  • a plurality of electronic devices periodically (eg, It can be reported to the server 230 in units of seconds).
  • Table 2 below shows examples of performance data stored in the performance database 246 of the server 230 .
  • the performance data includes a universally unique identifier (Uuid) for identifying an electronic device (for example, the electronic device 200) or a user, reporting_time indicating reporting time, duration indicating a data collection period, and execution of an application. It may include a plurality of elements associated with.
  • Uuid universally unique identifier
  • the elements may include at least one of the following values and may further include various values not mentioned in this document.
  • processor 234 may read performance data from performance database 246.
  • the processor 234 eg, data classification module 238) classifies the performance data according to given conditions (eg, periodicity, user/operator request, or application installation/running/exit). When it is determined necessary, the performance data related to the application may be read.
  • processor 234 eg, data classification module 238) determines whether the performance data corresponds to an in-play interval in electronic device 200, and if so, in-play It can be determined by data, and if not, it can be determined by not-in-play data.
  • Table 3 below shows examples of performance data reported from a user (eg, the electronic device 200) among performance data stored in the performance database 246 of the server 230.
  • the performance data reported by the electronic device 200 may be stored in the performance database 246 using at least one of Uuid, reporting_time, and scene_id as a key.
  • processor 234 may classify in-play data or not-in-play data based on each feature value (eg, scene_id or scene_original_data) of the performance data. . Exemplary embodiments of data classification by processor 234 (eg, data classification module 238) will be described below with reference to FIGS. 11-27.
  • the data classification module 238 may include a feature value extraction module 620 and a classification module 622 .
  • the processor 234 eg, the feature value extraction module 238
  • the feature values may be obtained from a plurality of elements included in the performance data, and may be, for example, summary (or processed) information on at least one of the elements.
  • the processor 234 eg, the classification module 622 may interpret the feature values by a machine learning model and determine whether the performance data corresponds to an in-play section based on the feature values.
  • the processor 234 may read performance data from the performance database 246.
  • the processor 234 eg, data classification module 238, analyzes and analyzes performance data according to given conditions (eg, periodic, user/operator request, or execution/update/termination of the application). / Or the performance data related to the application may be read when it is determined that optimization of performance parameters is required.
  • the processor 234 may transfer performance data (for example, in-play data) corresponding to the in-play section determined as a result of the classification operation to the performance analysis module 240.
  • the processor 234 eg, the performance analysis module 240
  • the processor 234 may perform in-play data provided from the data classification module 238 and/or the performance database 246 according to given conditions (eg, periodic or requested by a user/operator). ) may be analyzed and performance parameters optimized for the electronic device 200 may be calculated.
  • the performance analysis module 240 may include an analysis module 624 and a parameter generation module 626 .
  • the processor 234 eg, the analysis module 624) may analyze the in-play data and/or performance data corresponding to each session of the application, and the processor 234 (eg, the parameter generation module 626) may calculate a performance parameter (eg, a second performance parameter) having a value capable of increasing execution performance of an application in the electronic device 200 .
  • the processor 234 eg, the parameter generation module 626) includes a CPU clock or GPU clock value and/or processor usage limit that can increase the execution performance of the application according to data analysis. performance parameters can be determined.
  • the processor 234 (eg, the parameter generation module 626 ) may store the determined second performance parameter in the parameter database 248 .
  • the processor 234 performs performance parameters stored in the parameter database 248 (eg, installation/execution/termination of an application in the electronic device 200, user/operator's request, or periodicity) under given conditions (eg, the electronic device 200).
  • the second performance parameter may be provided (eg, distributed) to the electronic device 200 .
  • the processor 210 eg, the performance tuner 214 of the electronic device 200 receives the second performance parameter from the server 230 and applies the second performance parameter to the execution of the application. can do.
  • the processor 210 eg, the performance tuner 214) may operate according to a clock and/or usage limit specified by the second performance parameter while the application is running.
  • FIG. 7 is a signal flow diagram illustrating a procedure for improving the performance of the electronic device 200 according to an embodiment.
  • a signal flow between modules included in the processor 210 of the electronic device 200 and the processor 234 of the server 230 is illustrated.
  • the processor 210 for example, the performance tuner 214) of the electronic device 200 installs an application (eg, a game application) and extracts scene information included in the source code of the application. can be obtained.
  • the processor 210 for example, the agent 216) transmits a metadata request to the server 230 in order to query the installed application, and in response to the query, the server 230 (for example, the agent 216)
  • metadata related to the application may be received from the metadata database 244 .
  • the metadata includes information indicating that data collection is necessary to improve execution performance of the application (eg, information indicating that it is a game), and default values of performance parameters to be applied to execution of the application (eg, 1 performance parameters).
  • the processor 210 transfers the first performance parameter to the performance tuner 214 so that it can be applied to execution of the application.
  • the processor 210 may execute the application by applying the first performance parameter.
  • processor 210 instead of obtaining the first performance parameter from metadata, processor 210 (e.g., agent 216) obtains the first performance parameter from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from server 230 (e.g., performance database 246) prior to execution of the
  • the processor 210 may collect performance data related to execution of the application while the application is being executed based on the first performance parameter.
  • the processor 210 eg, the performance tuner 216 collects raw data related to the execution of the application while the application is running, and summarizes or processes the raw data to obtain the performance data. can be configured.
  • the performance data may be collected periodically, for example.
  • the processor 210 eg, performance tuner 2114 may report the performance data (eg, first performance data) to the server 230 through the agent 216.
  • Processor 234 eg, performance data collection module 236 ) of server 230 may store the performance data in performance database 246 .
  • the processor 210 may collect performance data related to execution of the application while the application is being executed based on the first performance parameter.
  • the processor 210 eg, performance tuner 2114 may report the performance data (eg, second performance data) to the server 230 through the agent 216.
  • the collection and reporting of the performance data according to operations 708a and 710a and/or operations 708b and 710b may be repeated periodically while the application is running (eg, while a session of the application is maintained).
  • processor 234 eg, data classification module 238 of server 230 may read performance data from performance database 246 .
  • the processor 234 eg, the data classification module 2348 may determine whether the performance data corresponds to an in-play section based on the performance data.
  • the processor 234 extracts feature values to be used for determining an in-play section from the performance data, and the performance data is converted to the in-play section based on the feature values. It can be determined whether it is in-play data corresponding to . Examples of the feature values will be described later with reference to FIGS. 11 to 27 .
  • the processor 234 may read the performance data stored in the performance database 246 to perform an analysis operation to improve the performance of the application.
  • performance data provided from the performance database 246 may be collected during an entire section of a session in which the application is executed in the electronic device 200 .
  • the processor 234 may receive the in-play data determined by the data classification module 238 to perform an analysis operation for improving the performance of the application.
  • the in-play data may correspond to data collected during a section (in-play section) in which an application is actually played in the electronic device 200 .
  • the processor 234 (eg, the performance analysis module 240) performs an analysis operation based on the performance data of operation 716 and/or the in-play data of operation 718 so that the application in the electronic device 200
  • a performance parameter eg, a second performance parameter capable of improving execution performance of may be calculated and generated.
  • the processor 234 (eg, the performance analysis module 240) may store the second performance parameter in the memory 242 (eg, the parameter database 248).
  • the processor 234 may read the second performance parameter from the memory 242 (eg, the parameter database 248) and transmit it to the electronic device 200.
  • the second performance parameter may be provided to the performance tuner 214 through the agent 216 of the electronic device 200, and the processor 210 (eg, the performance tuner 214) may set the second performance parameter By applying, the application can be executed.
  • the processor 210 eg, the performance tuner 2114 may apply the second performance parameter to the application currently being executed.
  • FIG. 8 is a flowchart illustrating a procedure for reporting performance data in the electronic device 200 according to an exemplary embodiment. At least one of the operations described below may be executed by the processor 210 of the electronic device 200 .
  • the processor 210 may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition).
  • the application may be a game application or an application requiring performance data collection and performance optimization.
  • the processor 210 requests the server 230 through the communication module 208 for metadata including an inquiry to determine whether the application is of a designated type (eg, a game application). and may receive metadata related to the application from the server 230 according to the metadata request. In one embodiment, the processor 210 may obtain the metadata from the server 230 according to a request for execution of the application or upon installation of the application.
  • a designated type eg, a game application
  • the processor 210 may determine whether the application is a designated type, that is, a game application, based on the metadata. If it is not a game application, in operation 820, the processor 210 may execute the application in a conventional manner. On the other hand, if it is a game application, the processor 210 may proceed to operation 808.
  • the processor 210 may identify a first performance parameter included in the metadata and execute the application based on the first performance parameter.
  • the first performance parameter may include a processor clock (eg, CPU clock and/or GPU clock).
  • the processor 210 may collect performance data related to the execution of the application according to a given condition (eg, periodically) while the application is being executed based on the first performance parameter.
  • the performance data is the FPS of the application, the temperature of the electronic device 201 (eg CPU/GPU temperature or surface temperature), the load of the processor 210 (eg CPU or GPU), network input/output (I/O), It may include at least one of the resolution of the display 202, the refresh rate or refresh rate of the display 222, the screen brightness of the display 202, and/or the type of network to which the electronic device 200 is connected.
  • the processor 210 may report the performance data to the server 230 according to a given condition (eg, periodically). In one embodiment, operations 810 and 812 may be repeatedly performed at least once while the application is running.
  • the processor 210 may obtain a second performance parameter calculated based on performance data (eg, in-play data) of an in-play section among the reported performance data.
  • performance data eg, in-play data
  • the processor 210 may receive the second performance parameter from the server 230 according to a period longer than a period for collecting and reporting the performance data or according to a given condition.
  • the processor 210 may receive the second performance parameter from the server 230 when the application is terminated or executed next.
  • the processor 210 may obtain the second performance parameter directly or with the help of the server 230 based on the performance data reported while the application is running.
  • the processor 210 may execute the application by applying the second performance parameter.
  • the processor 210 may execute the application while operating according to the processor clock (eg, CPU clock and/or GPU clock) included in the second performance parameter.
  • the processor 210 may acquire the second performance parameter and apply the second performance parameter while executing the application.
  • the processor 210 may apply the second performance parameter to the next execution of the application.
  • the processor 210 may determine whether a request to terminate the application (eg, a user input or an automatic termination request according to a specified condition) is received. If the application does not end, the processor 210 may return to operation 810 and repeat subsequent operations (eg, operations 810, 812, 814, and 816). On the other hand, when a request to terminate the application is received, the processor 210 may terminate the execution of the application. In one embodiment, the processor 210 may report performance data according to the second performance parameter to the server 230 when the application is terminated.
  • a request to terminate the application eg, a user input or an automatic termination request according to a specified condition
  • FIG. 9 is a flowchart illustrating a procedure of identifying an in-play section in the server 230 according to an embodiment. At least one of the operations described below may be executed by the processor 234 of the server 230 .
  • the processor 234 may receive a metadata request including a query about an application from the electronic device 200. In response to the metadata request, the processor 234 transmits metadata including information indicating that the application is a game application and default values of performance parameters (eg, a first performance parameter) for the application to the electronic device 200 . can be conveyed
  • the processor 234 may receive performance data related to the execution of the application from the electronic device 200.
  • the performance data may be received from the electronic device 200 periodically (eg, in units of seconds) while the application is executed in the electronic device 200 (eg, while a session of the application is maintained).
  • the processor 234 determines that analysis of performance data and/or optimization of performance parameters is required according to given conditions (eg, periodicity, user/operator request, or execution/update/termination of the application). Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played in the electronic device 200 may be identified based on the characteristic values. The processor 234 may determine performance data (or the feature values) corresponding to the identified in-play section as in-play data.
  • given conditions eg, periodicity, user/operator request, or execution/update/termination of the application.
  • Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played in the electronic device 200 may be identified based on the characteristic values.
  • the processor 234 may determine performance data (or the feature values) corresponding to the identified in-play section as in-play data.
  • the processor 234 determines a time period of a predetermined length after the application (eg, game application) is executed, a not in-play period in which operations such as loading a game and entering a waiting room are performed. play period). In addition, since an operation such as providing an ending screen is performed in a time period of a predetermined length before the game ends, it may be determined as a sickle-in-play period.
  • the processor 234 may determine the performance data as sickle-inplay data when the reporting time of the performance data belongs to the determined sickle-inplay section.
  • the processor 234 may determine performance data collected in the remaining time intervals other than the determined not-in-play interval as in-play data.
  • the processor 234 calculates a statistical value (for example, a minimum value, a maximum value, an average value, a standard deviation, or a degree of asymmetry) of collected values for each element included in the performance data, and calculates the statistical value and the current collection value. Depending on the difference between the collected values, it may be determined whether the currently collected value corresponds to the in-play section. As an example, the processor 234 calculates a feature value representing the difference between the current surface temperature and the minimum surface temperature among the performance data, and converts the feature value to in-play data corresponding to an in-play section when the feature value exceeds a given threshold. can be classified.
  • a statistical value for example, a minimum value, a maximum value, an average value, a standard deviation, or a degree of asymmetry
  • the processor 234 may track time-series data values of the performance data in chronological order, and determine that a transition between an in-play section and a not-in-play section is made at a point in time when the time-series data values are markedly different.
  • the processor 234 may calculate each statistical value for each time window before and after a specific point in time, and compare the statistical values to determine whether a change in data before and after the specific point in time has occurred.
  • the processor 234 may obtain an FPS difference between a specific point in time and 5 seconds later, and calculate a maximum value among 30 FPS difference values within a time window from the current point in time to 30 seconds later. If the maximum value is smaller than the given threshold value, the processor 234 may determine the maximum value of the FPS difference values as in-play data.
  • the processor 234 calculates a second performance parameter for improving execution performance of the application based on the performance data (eg, in-play data) of the identified in-play section and/or feature values related thereto. can do.
  • the performance data eg, in-play data
  • the processor 234 transmits the second performance parameter to the electronic device 200 according to given conditions (eg, installation/execution/termination of an application in the electronic device 200, user/operator request, or periodicity). can be forwarded (e.g. distributed).
  • given conditions eg, installation/execution/termination of an application in the electronic device 200, user/operator request, or periodicity.
  • the electronic device 200 reports performance data and identifies an in-play section in the server 230, but in other embodiments, the electronic device 200 determines an in-play section based on the collected performance data. It can act to identify.
  • FIG. 10 is a flowchart illustrating a procedure of identifying an in-play section in the electronic device 200 according to an embodiment. At least one of the operations described below may be executed by the processor 210 of the electronic device 200 .
  • the processor 210 may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition).
  • an application execution request eg, a user input or an automatic execution request according to a specified condition.
  • the application may be a game application or an application requiring performance data collection and performance optimization.
  • the processor 210 transmits a metadata request for confirming whether the application is a designated type (eg, a game application) to the server 230 through the communication module 208 in response to the execution request, and the Metadata related to the application may be received from the server 230 according to a metadata request.
  • the processor 210 may obtain the metadata from the server 230 according to a request for execution of the application or upon installation of the application.
  • the processor 210 may determine whether the application is a designated type, that is, a game application, based on the metadata. If it is not a game application, in operation 1022, the processor 210 may execute the application in a conventional manner. On the other hand, if it is a game application, the processor 210 may proceed to operation 1008.
  • the processor 210 may identify a first performance parameter included in the metadata and execute the application based on the first performance parameter.
  • the first performance parameter may include a processor clock (eg, CPU clock and/or GPU clock).
  • the processor 210 collects performance data related to the execution of the application according to a given condition (eg, periodically) while the application is being executed based on the first performance parameter.
  • the collected performance data may be stored in the memory 206 (eg, the performance database 218) of the electronic device 200.
  • the processor 210 determines that analysis of performance data and/or optimization of performance parameters is required according to given conditions (eg, periodicity, user/operator request, or execution/update/termination of the application). Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played may be identified based on the characteristic values. In operation 1014, the processor 210 may determine performance data (and/or feature values) corresponding to the identified in-play section as in-play data.
  • given conditions eg, periodicity, user/operator request, or execution/update/termination of the application.
  • Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played may be identified based on the characteristic values.
  • the processor 210 may determine performance data (and/or feature values) corresponding to the identified in-play section as in-play data.
  • the processor 210 may obtain a second performance parameter calculated based on performance data (eg, in-play data) of an in-play section among the reported performance data.
  • the processor 210 may directly calculate the second performance parameter based on performance data (eg, in-play data) of the in-play section selected in operation 1014 .
  • the processor 210 reports the performance data (eg, in-play data) of the selected in-play section in operation 1014 to the server 230, and the second performance parameter calculated based on the in-play data is sent to the server ( 230).
  • the processor 210 may obtain the second performance parameter according to a period longer than a period for collecting and reporting the performance data or according to a given condition while the application is running. In an embodiment, the processor 210 may obtain the second performance parameter when the application is terminated or executed next.
  • the processor 210 may execute the application by applying the second performance parameter.
  • the processor 210 may execute the application while operating according to the processor clock (eg, CPU clock and/or GPU clock) included in the second performance parameter.
  • the processor 210 may acquire the second performance parameter and apply the second performance parameter while executing the application.
  • the processor 210 may apply the second performance parameter to the next execution of the application.
  • the processor 210 may determine whether a request to terminate the application (eg, a user input or an automatic termination request according to a specified condition) is received. If the application does not end, the processor 210 may return to operation 1010 and repeat subsequent operations (eg, operations 1010, 1012, 1014, 1016, and 1018). On the other hand, when a request to terminate the application is received, the processor 210 may terminate the execution of the application. In one embodiment, the processor 210 may report performance data according to the second performance parameter to the server 230 when the application is terminated.
  • a request to terminate the application eg, a user input or an automatic termination request according to a specified condition
  • At least one of the following characteristic values from performance data collected while an application is running in the electronic device 200 is determined by the processor 234 of the server 230 (for example, the data classification module 238). It may be extracted by the feature value extraction module 620).
  • - upload_bytes Represents the amount of data uploaded to the game server over the network (for example, the network 220) while the game session is maintained.
  • - max_battery_pct_minus_battery_pct Indicates the difference between the maximum battery percentage during a gaming session and the battery percentage at a specific point in time (eg the current point in time at which the corresponding performance data (i.e. battery percentage) is collected).
  • - pst_minus_min_pst indicates the difference between the surface temperature of the electronic device 200 at a specific point in time and the minimum surface temperature during the game session.
  • - fps_stability This is the stability of the FPS, indicating how much the FPS varied during the game session. A higher value may mean that the FPS is stable without change. It can be a value between 0 and 100.
  • time_since_played Indicates how long the game application has been played. It can represent the number of seconds since the game session started.
  • - max_pst_minus_pst indicates a percentage difference between the maximum surface temperature during the game session and the surface temperature of the electronic device 200 at a specific point in time.
  • - battery_pct Indicates the battery percentage of the electronic device 200.
  • - pst_agg_skew may indicate skewness of the surface temperature of the electronic device 200 during a game session.
  • - pst_diff_-30 Indicates the difference between the surface temperature at a specific point in time and the surface temperature after 30 seconds.
  • - cur_fps_variability_pct_chg_-5_next_10_max Represents the maximum value among 10 values representing the percentage change value between FPS variability (eg, fps_variability) at a specific point in time and FPS variability after 5 seconds.
  • - fps_pct_chg_-5_next_30_max Indicates the maximum value among 30 values representing the percentage change value between the FPS at a specific point in time and the FPS after 5 seconds.
  • - fps_diff_-5_next_30_max Indicates the maximum value among 30 values representing the difference between the FPS at a specific point in time and the FPS after 5 seconds.
  • cur_fps_variability_pct_chg_-5_next_20_max Indicates the maximum value among 20 values representing the difference between the percentage of FPS volatility at a specific point in time and the percentage of volatility after 5 seconds.
  • - fps_agg_skew Indicates the skewness of FPS during a game session.
  • FIG. 11 illustrates a distribution of feature values related to uploaded data according to an embodiment.
  • the X-axis may represent upload_bytes
  • the Y-axis may represent a distribution (eg, kernel density estimation (KDE)).
  • KDE kernel density estimation
  • performance data values are collected in chronological order (or in real time) during a game session. It may be reported to processor 234 of server 230 (eg, performance data collection module 236).
  • the processor 234 (for example, the data classification module 238) of the server 230 uses the feature values (for example, upload_bytes) extracted from the performance data to generate a distribution map 1102 of the in-play section and not-in-play.
  • a distribution map 1104 of intervals may be obtained, and values of performance data having a distribution diagram 1102 of in-play intervals may be determined to be used for performance analysis.
  • the processor 234 (for example, the data classification module 238) of the server 230 determines that the upload_bytes distribution 1102 of the in-play section has larger values than the not-in-play section from a predetermined point in time after the application starts. can be identified. Therefore, the processor 234 (for example, the data classification module 238) of the server 230 stores the amount of upload data at a specific point in time (for example, the current point in time) as upload_bytes based on the performance data, and the upload_bytes is given When the threshold value is exceeded, the upload_bytes may be classified as data of an in-play section (ie, in-play data).
  • the X-axis may represent max_battery_pct_minus_battery_pct
  • the Y-axis may represent a distribution (for example, KDE).
  • processor 234 eg, performance data collection module 236).
  • the processor 234 uses the feature values (eg, max_battery_pct_minus_battery_pct) extracted from the performance data to obtain a distribution map 1202 of the in-play section and a distribution map 1204 of the not-in-play section. ) may be obtained, and it may be determined to use the performance data values having the distribution 1202 of the in-play section for performance analysis.
  • the processor 234 (eg, the data classification module 238) of the server 230 may identify that the max_battery_pct_minus_battery_pct distribution 1202 of the in-play period has larger values than that of the not-in-play period. Therefore, the processor 234 (for example, the data classification module 238) of the server 230 determines that max_battery_pct_minus_battery_pct calculated based on the performance data at a specific point in time (for example, the current point in time) exceeds a given threshold value. can be classified as in-play data.
  • a specific point in time for example, the current point in time
  • the X-axis may represent pst_minus_min_pst
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 of the server 230 extracts feature values (eg, pst_minus_min_pst) from performance data reported from the electronic device 200. Using this, it can be identified that the pst_minus_min_pst distribution map 1302 of the in-play section has larger values than the distribution map 1304 of the sickle-in-play section.
  • Processor 234 (e.g., data classification module 238) of server 230 determines, based on the performance data, the difference between the surface temperature at a specific point in time (e.g., the current point in time) and the minimum surface temperature during the gaming session.
  • the pst_minus_min_pst may be classified as in-play data.
  • the X-axis may represent fps_stability
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 uses feature values (eg, fps_stability) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the fps_stability distribution 1402 of the in-play section has smaller values than the distribution 1404 of the sickle-in-play section.
  • feature values eg, fps_stability
  • the processor 234 (for example, the data classification module 238) of the server 230 stores the FPS stability at a specific time point (for example, the current time point) as fps_stability based on the performance data, and the fps_stability If is less than a given threshold, the fps_stability may be classified as in-play data.
  • the X-axis may represent time_since_played
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 extracts feature values (eg, time_since_played) from performance data reported from the electronic device 200. Using this, it can be identified that the time_since_played distribution map 1502 of the in-play section has larger values than the distribution map 1504 of the sick-in-play section.
  • the processor 234 eg, the data classification module 238) of the server 230 calculates time_since_played at a specific point in time (eg, the current point in time) based on the performance data, and calculates time_since_played as a threshold given the time_since_played. If the value is exceeded, the specific time point may be classified as an in-play section, and performance data collected at the specific point in time may be determined as in-play data.
  • the X-axis may represent max_pst_minus_pst
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 determines feature values (eg, max_pst_minus_pst) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the max_pst_minus_pst distribution 1602 of the in-play section has substantially smaller values than the distribution 1604 of the sickle-in-play section.
  • feature values eg, max_pst_minus_pst
  • the processor 234 calculates max_pst_minus_pst at a specific time point (eg, the current time point) based on the performance data, and if the max_pst_minus_pst is less than a given threshold, the max_pst_minus_pst may be determined as in-play data.
  • the X-axis may represent battery_pct
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 extracts feature values (eg, battery_pct) from performance data reported from the electronic device 200. Using this, it can be identified that the battery_pct distribution 1702 of the in-play section has generally smaller values than the distribution 1704 of the sickle-in-play section.
  • the processor 234 eg, the data classification module 238) calculates battery_pct at a specific time point (eg, the current time point) based on the performance data, and if the battery_pct is less than a given threshold, the battery_pct may be determined as in-play data.
  • the X-axis may represent reverse_time_since_played
  • the Y-axis may represent a distribution (eg KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 extracts feature values (eg, reverse_time_since_played) from performance data reported from the electronic device 200. Using this, it can be identified that the reverse_time_since_played distribution map 1802 of the in-play section has generally larger values than the distribution map 1804 of the sick-in-play section.
  • feature values eg, reverse_time_since_played
  • the processor 234 calculates reverse_time_since_played at a specific point in time (eg, the current point in time) based on the performance data, and if the reverse_time_since_played is greater than a given threshold, the reverse_time_since_played is greater than a given threshold.
  • a specific point in time may be classified as an in-play section, and performance data collected at the specific point in time may be determined as in-play data.
  • the X-axis may represent cpu_limit_agg_std
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 determines feature values (eg, cpu_limit_agg_std) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the cpu_limit_agg_std distribution map 1902 of the in-play section has generally larger values than the distribution map 1904 of the sickle-in-play section.
  • feature values eg, cpu_limit_agg_std
  • the processor 234 calculates cpu_limit_agg_std at a specific point in time (eg, the current point in time) based on the performance data, and if the cpu_limit_agg_std is greater than a given threshold, the cpu_limit_agg_std can be judged as in-play data.
  • the X-axis may represent cpu_usage
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 extracts feature values (eg, cpu_usage) from performance data reported from the electronic device 200. Using this, it can be identified that the cpu_usage distribution 2002 of the in-play section has substantially larger values than the distribution 2004 of the sick-in-play section.
  • the processor 234 eg, the data classification module 238) obtains cpu_usage at a specific time point (eg, the current time point) based on the performance data, and if the cpu_usage is greater than a given threshold, the cpu_usage can be judged as in-play data.
  • the X-axis may represent pst_agg_skew
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 determines feature values (eg, pst_agg_skew) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the pst_agg_skew distribution map 2102 of the in-play section has generally smaller values than the distribution map 2104 of the sickle-in-play section.
  • feature values eg, pst_agg_skew
  • the processor 234 calculates a pst_agg_skew at a specific point in time (eg, the current point in time) based on the performance data, and if the pst_agg_skew is less than a given threshold, the pst_agg_skew can be judged as in-play data.
  • the X-axis may represent cur_fps_variability_pct_chg_-5_next_10_max
  • the Y-axis may represent a distribution (eg, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 extracts feature values (eg, cur_fps_variability_pct_chg_-5_next_10_max) from performance data reported from the electronic device 200. ), it can be identified that the cur_fps_variability_pct_chg_-5_next_10_max distribution map 2202 of the in-play section has generally smaller values than the distribution map 2204 of the sick-in-play section.
  • feature values eg, cur_fps_variability_pct_chg_-5_next_10_max
  • the processor 234 calculates cur_fps_variability_pct_chg_-5_next_10_max at a specific time point (eg, the current time point) based on the performance data, and the cur_fps_variability_pct_chg_-5_next_10_max is a given threshold value. If it is less than, the cur_fps_variability_pct_chg_-5_next_10_max may be determined as in-play data.
  • the X-axis may represent fps_diff_-5_next_30_max
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 of the server 230 extracts feature values from performance data reported from the electronic device 200 (eg, fps_diff_-5_next_30_max ), it can be identified that the fps_diff_-5_next_30_max distribution map 2302 of the in-play section has substantially smaller values than the distribution map 2304 of the sickle-in-play section.
  • the processor 234 calculates fps_diff_-5_next_30_max at a specific time point (eg, the current time point) based on the performance data, and the fps_diff_-5_next_30_max is a given threshold value If it is smaller than fps_diff_-5_next_30_max, it can be determined as in-play data.
  • the X-axis may represent fps_prev_30_min
  • the Y-axis may represent a distribution (for example, KDE).
  • the processor 234 eg, the data classification module 238) of the server 230 uses feature values (eg, fps_prev_30_min) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the fps_prev_30_min distribution map 2402 of the in-play section has generally larger values than the distribution map 2404 of the sick-in-play section.
  • feature values eg, fps_prev_30_min
  • the processor 234 calculates fps_prev_30_min at a specific time point (eg, the current time point) based on the performance data, and if the fps_prev_30_min is greater than a given threshold value, the fps_prev_30_min may be determined as in-play data.
  • 25A and 25B are charts showing feature values related to FPS data in chronological order according to an embodiment.
  • a chart 2502 shows changes in feature values, eg, fps, fps_next_10_min, and fps_prev_10_min, according to data_timestamp representing reporting time of performance data during a game session.
  • fps denotes an FPS at a specific time point
  • fps_next_10_min denotes a minimum value among 10 subsequent FPS values
  • fps_prev_10_min denotes a minimum value among 10 previous FPS values.
  • the processor 234 (for example, the data classification module 238) of the server 230 tracks changes in the feature values, for example, fps, fps_next_10_min, and fps_prev_10_min, and detects changes in the feature values.
  • the start or end of the in-play section may be determined, and performance data collected within the in-play section may be determined as the in-play data.
  • a chart 2504 shows changes in feature values, eg, fps, fps_diff_5_prev_10_mean, and fps_diff_-5_next_10_mean, according to data_timestamp during a game session.
  • fps_diff_5_prev_10_mean represents the average value of 10 values representing the difference between the FPS at a specific point in time and the FPS 5 seconds before
  • fps_diff_-5_next_10_mean represents the average value of 10 values representing the difference between the FPS at a specific point in time and the FPS 5 seconds later.
  • the processor 234 eg, the data classification module 238, of the server 230 tracks changes in the feature values, eg, fps, fps_diff_5_prev_10_mean, and fps_diff_-5_next_10_mean, so that changes in the feature values are detected It is possible to determine the start or end of the in-play section at the point in time, and determine performance data collected within the in-play section as the in-play data.
  • 26 illustrates importance of feature values related to determining an in-play section according to an embodiment.
  • the processor 234 (for example, the data classification module 238) of the server 230 may analyze the performance data using a boosting tree-based machine learning model capable of producing high performance in tabular format data.
  • a machine learning model based on a boosting tree may calculate the importance of feature values and use the importance to improve modeling performance or may be used for decision making.
  • the processor 234 (eg, the data classification module 238) may identify an in-play section using a predetermined number of feature values having relatively high importance according to the calculated importance.
  • FIG. 27 illustrates a heatmap showing correlation of feature values related to determining an in-play section according to an embodiment.
  • a heat map 2702 is a correlation between feature values that can be extracted for use in determining an in-play section by the processor 234 (eg, the data classification module 238) of the server 230. relationship can be shown.
  • the processor 234 eg, the data classification module 238) determines the characteristic values (eg, upload_bytes, max_battery_pct_minus_battery_pct, or pst_minus_min_pst) that have a positive correlation with in_play, which is a parameter indicating the determination of the in-play section. ) may determine that the higher the value (for example, when it exceeds a given threshold), the higher the probability of being in-play data.
  • the characteristic values eg, upload_bytes, max_battery_pct_minus_battery_pct, or pst_minus_min_pst
  • processor 234 determines that feature values that have a negative correlation with in_play (e.g., fps_stability, max_pst_minus_pst, battery_pct, or pst_agg_skew) are low. It may be determined that there is a high probability that the data is in-play data (for example, if it is smaller than a given threshold value).
  • the processor 234 eg, the data classification module 238) of the server 230 may identify performance data (eg, in-play data) belonging to the in-play section, and the processor 234 may 234 (eg, the performance analysis module 240) may determine performance parameters for the electronic device 200 based on the in-play data.
  • performance data eg, in-play data
  • the processor 234 may 234 (eg, the performance analysis module 240) may determine performance parameters for the electronic device 200 based on the in-play data.
  • the electronic device 200 includes a communication module 208, a display 203, a memory 206, and at least one processor operatively connected to the communication module, the display, and the memory ( 210) may be included.
  • the at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request.
  • the at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed.
  • the at least one processor may be configured to report the performance data to the server 230 through the communication module.
  • the at least one processor may be configured to receive, from the server, a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data.
  • the at least one processor may be configured to execute the application based on the second performance parameter.
  • the performance data includes FPS (frame per second), surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
  • FPS frame per second
  • surface temperature processor load
  • network input/output resolution of the display
  • refresh rate or refresh rate of the display while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
  • the second performance parameter is the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated. It can be generated based on the first element of
  • the second performance parameter is the current value identified as corresponding to the in-play section according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. can be created based on
  • the second performance parameter may be generated based on a fourth element of the performance data identified as corresponding to the in-play section according to a change in the third element of the performance data during a session related to the application. there is.
  • the second performance parameter may be generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
  • the server 230 may include a communication module 232, a memory 242, and at least one processor 234 operatively connected to the communication module and the memory.
  • the at least one processor may be configured to receive a metadata request of an application from an electronic device through the communication module.
  • the at least one processor may be configured to transmit metadata including a first performance parameter for the application to the electronic device through the communication module.
  • the at least one processor may be configured to receive performance data related to execution of the application through the communication module while the application is being executed in the electronic device.
  • the at least one processor may be configured to identify the in-play section based on feature values related to the in-play section of the application extracted from the performance data.
  • the at least one processor may be configured to calculate a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period.
  • the at least one processor may be configured to transmit the second performance parameter to the electronic device through the communication module.
  • the performance data includes frames per second (FPS) related to the application, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic It may include at least one of the types of networks to which the device is connected.
  • FPS frames per second
  • the at least one processor determines a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated as sickle-in-play intervals, and the sickle - A time interval other than the in-play interval may be determined as the in-play interval, and the second performance parameter may be generated based on the first element of the performance data collected in the in-play interval.
  • the at least one processor determines whether the current value belongs to the in-play section according to a difference between a current value of a second element of the performance data and a minimum value of the second element during a session related to the application; , When the current value is identified as corresponding to the in-play section, the second performance parameter may be generated based on the current value.
  • the at least one processor determines the start or end of the in-play section at a time point when a change in the third element of the performance data is detected during a session related to the application, and determines the in-play section according to the determination result. and generate the second performance parameter based on a fourth element of the performance data corresponding to the identified in-play section.
  • the at least one processor determines the amount of upload data when the amount of upload data transmitted through the network from the electronic device at a first point in time during the session of the application among the performance data exceeds a first threshold. It may be configured to determine the in-play data corresponding to the in-play section.
  • the at least one processor when a difference between a maximum battery percentage of the electronic device during the session and a current battery percentage at a second time point exceeds a second threshold value, corresponds to the current battery percentage to the in-play period. It can be configured to determine the in-play data to be.
  • the at least one processor when a difference between a minimum surface temperature of the electronic device and a current surface temperature at a third time point during the session exceeds a third threshold, corresponds to the current surface temperature as the in-play section. It can be configured to determine the in-play data to be.
  • the at least one processor may be configured to determine the FPS as in-play data corresponding to the in-play section when a frame per second (FPS) of a fourth time point during the session is less than a fourth threshold value.
  • FPS frame per second
  • the electronic device 200 includes a communication module 208, a display 203, a memory 206, and at least one processor operatively connected to the communication module, the display, and the memory ( 210) may be included.
  • the at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request.
  • the at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed.
  • the at least one processor may be configured to determine the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data.
  • the at least one processor may be configured to obtain a second performance parameter for improving performance of the application based on the performance data and/or the characteristic values.
  • the at least one processor may be configured to execute the application based on the second performance parameter.
  • An operating method of an electronic device may include an operation 808 of executing the application based on a first performance parameter in response to a request for executing the application.
  • the method may include an operation 810 of collecting performance data related to the execution of the application while the application is being executed.
  • the method may include an act 812 of reporting the performance data to a server.
  • the method may include an operation 814 of receiving a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data from the server through the communication module.
  • the method may include an operation 816 of executing the application based on the second performance parameter.
  • the performance data includes FPS (frame per second), surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
  • FPS frame per second
  • surface temperature processor load
  • network input/output resolution of the display
  • refresh rate or refresh rate of the display while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
  • the second performance parameter is the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated. It can be generated based on the first element of
  • the second performance parameter is the current value identified as corresponding to the in-play section according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. can be created based on
  • the second performance parameter may be generated based on a fourth element of the performance data identified as corresponding to the in-play section according to a change in the third element of the performance data during a session related to the application. there is.
  • the second performance parameter may be generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
  • a method of operating the server 230 may include an operation 902 of receiving a metadata request of an application from an electronic device.
  • the method may include an operation 902 of transmitting metadata including a first performance parameter for the application to the electronic device.
  • the method may include an operation 904 of receiving performance data associated with execution of the application from the electronic device while the application is being executed in the electronic device.
  • the method may include an operation 906 of identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data.
  • the method may include an operation 908 of calculating a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period.
  • the method may include an operation 910 of transmitting the second performance parameter to the electronic device.
  • the performance data includes frames per second (FPS) related to the application, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic It may include at least one of the types of networks to which the device is connected.
  • FPS frames per second
  • the operation of calculating the second performance parameter determines a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated as a sickle-in-play interval.
  • an operation of determining a time interval other than the sickle-in-play interval as the in-play interval, and an operation of generating the second performance parameter based on the first element of the performance data collected in the in-play interval. can include
  • the operation of calculating the second performance parameter may include setting the current value in the in-play period according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. It may include an operation of determining whether it belongs, and an operation of generating the second performance parameter based on the current value when it is identified that the current value corresponds to the in-play section.
  • the calculating of the second performance parameter may include determining the start or end of the in-play section at a point in time when a change in the third element of the performance data is sensed during a session related to the application; and generating the second performance parameter based on a fourth element of the performance data corresponding to the in-play section identified according to a result.
  • the operation of calculating the second performance parameter may include, when an amount of upload data transmitted through a network from the electronic device at a first point in time during a session of the application among the performance data exceeds a first threshold value An operation of determining the amount of uploaded data as in-play data corresponding to the in-play section may be included.
  • the calculating of the second performance parameter may include calculating the current battery percentage when a difference between the maximum battery percentage of the electronic device during the session and the current battery percentage at a second time point exceeds a second threshold value.
  • An operation of determining the in-play data corresponding to the in-play section may be included.
  • the calculating of the second performance parameter may include setting the current surface temperature as the current surface temperature when a difference between the minimum surface temperature of the electronic device during the session and the current surface temperature at a third time point exceeds a third threshold value.
  • An operation of determining the in-play data corresponding to the in-play section may be included.
  • the operation of calculating the second performance parameter may include determining the FPS as in-play data corresponding to the in-play section when a frame per second (FPS) of a fourth time point during the session is smaller than a fourth threshold value. Actions may be included.
  • FPS frame per second
  • An operating method of the electronic device 200 may include an operation 1008 of executing the application based on a first performance parameter in response to a request for executing the application.
  • the method may include an operation 1010 of collecting performance data related to the execution of the application while the application is being executed.
  • the method may include operations 1012 and 1014 of determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data. there is.
  • the method may include an operation 1016 of obtaining a second performance parameter for improving the performance of the application based on the performance data and/or the feature values.
  • the method may include an operation 1018 of executing the application based on the second performance parameter.
  • An electronic device may obtain performance parameters for smooth execution of an application and execute the application based on the performance parameters, thereby improving perceived execution performance of the application.
  • more accurate performance parameters can be obtained by collecting data necessary for improving execution performance in an in-play section where a game is actually played, and based on the more accurate performance parameters, the application , it is possible to reduce performance deterioration or generation of heat due to inaccurate performance parameters.
  • Electronic devices 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.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • 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.”
  • the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • 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.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a storage medium eg, internal memory 136 or external memory 138
  • a machine eg, electronic device 101
  • a processor eg, the processor 120
  • a device eg, the electronic device 101
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • Device-readable storage media may be provided in the form of non-transitory storage media.
  • 'non-temporary' only means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
  • signals e.g., electromagnetic waves
  • the method according to the example 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 StoreTM) or on two user devices (e.g. It can be distributed (eg downloaded or uploaded) online, directly between smartphones.
  • a device-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • an application store e.g. Play StoreTM
  • It can be distributed (eg downloaded or uploaded) online, directly between smartphones.
  • 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.
  • each component eg, module or program of the above-described components may include a single entity or a plurality of entities.
  • 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.
  • a plurality of components eg modules or programs
  • 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. .
  • 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.
  • a non-volatile storage medium storing instructions
  • the instructions when executed by at least one processor, cause the at least one processor to perform at least one operation according to the embodiments described in the present disclosure. It may be set to perform.

Abstract

Disclosed is a server comprising: a communication module; a memory; and a processor. The processor may be configured to: receive a request for metadata of an application from an electronic device; transmit the metadata including a first performance parameter for the application to the electronic device; receive performance data related to execution of the application while the application is running on the electronic device; identify an in-play section on the basis of feature values related to the in-play section of the application extracted from the performance data; calculate a second performance parameter for improving application performance on the basis of the performance data and/or the feature values corresponding to the identified in-play section; and transmit the second performance parameter to the electronic device.

Description

어플리케이션의 실행 성능을 개선하는 전자 장치 및 그 동작 방법Electronic device for improving application execution performance and its operating method
본 개시의 실시예들은 전자 장치에서 어플리케이션의 실행 성능을 개선하는 방법에 관한 것이다.Embodiments of the present disclosure relate to a method of improving execution performance of an application 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 on which the application is to be executed is low, performance may need to be improved 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 The throughput load can cause problems, for example heat generation. Finding optimal performance parameters on the electronic device for the application may be important to enable the application to run smoothly on the electronic device.
본 개시의 실시예들은, 어플리케이션의 원활한 실행을 위한 성능 파라미터를 획득하고, 상기 성능 파라미터에 기반하여 어플리케이션을 실행할 수 있는 전자 장치를 제공할 수 있고 및 전자 장치에서 어플리케이션의 실행 성능을 개선할 수 있다.Embodiments of the present disclosure may obtain a performance parameter for smooth execution of an application, provide an electronic device capable of executing the application based on the performance parameter, and improve execution performance of the application in the electronic device. .
본 개시의 실시예들은, 게임 어플리케이션 실행 시 게임이 실제로 플레이되는 인플레이 구간을 식별하고 인플레이 구간에서 성능 파라미터의 최적화에 필요한 성능 데이터를 수집함으로써 보다 정확한 성능 개선을 수행할 수 있고, 보다 정확하게 최적화된 성능 파라미터에 기반하여 어플리케이션을 실행할 수 있는 전자 장치를 제공할 수 있고 전자 장치에서 어플리케이션의 실행 성능을 개선할 수 있다. Embodiments of the present disclosure can perform more accurate performance improvement and more accurately optimized performance by identifying an in-play section in which the game is actually played when a game application is executed and collecting performance data necessary for optimizing performance parameters in the in-play section. An electronic device capable of executing an application based on a parameter may be provided, and execution performance of the application may be improved in the electronic device.
일 실시예에 따른 전자 장치는 통신 모듈, 디스플레이, 메모리, 및 상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터를 상기 통신 모듈을 통해 서버로 보고하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 서버로부터 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다.An electronic device according to an embodiment may include a communication module, a display, a memory, and at least one processor operatively connected to the communication module, the display, and the memory. The at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request. The at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed. The at least one processor may be configured to report the performance data to a server through the communication module. The at least one processor may be configured to receive a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data from the server through the communication module. The at least one processor may be configured to execute the application based on the second performance parameter.
일 실시예에 따른 서버는, 통신 모듈, 메모리, 및 상기 통신 모듈 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 상기 통신 모듈을 통해 전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 통신 모듈을 통해 상기 어플리케이션의 실행과 연관된 성능 데이터를 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하도록 구성될 수 있다.A server according to an embodiment may include a communication module, a memory, and at least one processor operatively connected to the communication module and the memory. The at least one processor may be configured to receive a metadata request of an application from an electronic device through the communication module. The at least one processor may be configured to transmit metadata including a first performance parameter for the application to the electronic device through the communication module. The at least one processor may be configured to receive performance data related to execution of the application through the communication module while the application is being executed in the electronic device. The at least one processor may be configured to identify the in-play section based on feature values related to the in-play section of the application extracted from the performance data. The at least one processor may be configured to calculate a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period. The at least one processor may be configured to transmit the second performance parameter to the electronic device through the communication module.
일 실시예에 따른 전자 장치는, 통신 모듈, 디스플레이, 메모리, 및 상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다.An electronic device according to an embodiment may include a communication module, a display, a memory, and at least one processor operatively connected to the communication module, the display, and the memory. The at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request. The at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed. The at least one processor may be configured to determine the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data. The at least one processor may be configured to obtain a second performance parameter for improving performance of the application based on the performance data and/or the characteristic values. The at least one processor may be configured to execute the application based on the second performance parameter.
일 실시예에 따른 전자 장치의 동작 방법은, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작을 포함할 수 있다. 상기 방법은 상기 성능 데이터를 서버로 보고하는 동작을 포함할 수 있다. 상기 방법은 상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 서버로부터 수신하는 동작을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함할 수 있다.An operating method of an electronic device according to an embodiment may include executing the application based on a first performance parameter in response to a request for executing the application. The method may include an operation of collecting performance data related to the execution of the application while the application is being executed. The method may include reporting the performance data to a server. The method may include receiving, from the server, a second performance parameter generated based on in-play data corresponding to an in-play period of the application among the performance data. The method may include an operation of executing the application based on the second performance parameter.
일 실시예에 따른 서버의 동작 방법은, 전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하는 동작을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 전자 장치로 전송하는 동작을 포함할 수 있다. 상기 방법은 상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 상기 전자 장치로부터 수신하는 동작을 포함할 수 있다. 상기 방법은 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하는 동작을 포함할 수 있다. 상기 방법은 상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하는 동작을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터를 상기 전자 장치로 전송하는 동작을 포함할 수 있다.A method of operating a server according to an embodiment may include receiving a metadata request of an application from an electronic device. The method may include transmitting metadata including a first performance parameter for the application to the electronic device. The method may include receiving, from the electronic device, performance data associated with execution of the application while the application is being executed in the electronic device. The method may include an operation of identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data. The method may include an operation of calculating a second performance parameter for improving the performance of the application based on the performance data and/or the feature values corresponding to the identified in-play period. The method may include transmitting the second performance parameter to the electronic device.
일 실시예에 따른 전자 장치의 동작 방법은, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작을 포함할 수 있다. 상기 방법은 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하는 동작을 포함할 수 있다. 상기 방법은 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하는 동작을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함할 수 있다.An operating method of an electronic device according to an embodiment may include executing the application based on a first performance parameter in response to a request for executing the application. The method may include an operation of collecting performance data related to the execution of the application while the application is being executed. The method may include an operation of determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data. The method may include obtaining a second performance parameter for improving the performance of the application based on the performance data and/or the feature values. The method may include an operation of executing the application based on the second performance parameter.
도 1은 일 실시예에 따른 네트워크 환경을 나타내는 도면이다.1 is a diagram illustrating a network environment according to an exemplary embodiment.
도 2는 일 실시예에 따른 전자 장치와 서버의 구성을 설명하기 위한 블록도이다.2 is a block diagram illustrating configurations of an electronic device and a server according to an exemplary embodiment.
도 3a, 도 3b, 도 3c, 도 3d, 도 3e, 및 도 3f(이하 도 3이라 통칭함)는 게임 어플레이션의 실행 화면들을 예시한 것이다.3a, 3b, 3c, 3d, 3e, and 3f (hereinafter collectively referred to as FIG. 3) illustrate execution screens of game applications.
도 4는 게임 어플리케이션의 실행 도중에 수집된 성능 데이터의 변화를 설명하기 위한 도면이다.4 is a diagram for explaining changes in performance data collected during execution of a game application.
도 5는 게임 어플리케이션의 실행 도중에 수집된 성능 데이터의 안정도를 비교하기 위한 도면이다.5 is a diagram for comparing stability of performance data collected during execution of a game application.
도 6은 일 실시예에 따른 전자 장치(200)와 서버(230) 간의 데이터 흐름을 설명하기 위한 도면이다.6 is a diagram for explaining data flow between an electronic device 200 and a server 230 according to an exemplary embodiment.
도 7은 일 실시예에 따라 전자 장치(200)의 성능 개선을 위한 절차를 설명하기 위한 신호 흐름도이다.7 is a signal flow diagram illustrating a procedure for improving the performance of the electronic device 200 according to an embodiment.
도 8은 일 실시예에 따라 전자 장치(200)에서 성능 데이터를 보고하는 절차를 설명하기 위한 흐름도이다.8 is a flowchart illustrating a procedure for reporting performance data in the electronic device 200 according to an exemplary embodiment.
도 9는 일 실시예에 따라 서버(230)에서 인플레이 구간을 식별하는 절차를 설명하기 위한 흐름도이다.9 is a flowchart illustrating a procedure of identifying an in-play section in the server 230 according to an embodiment.
도 10은 일 실시예에 따라 전자 장치(200)에서 인플레이 구간을 식별하는 절차를 설명하기 위한 흐름도이다.10 is a flowchart illustrating a procedure of identifying an in-play section in the electronic device 200 according to an embodiment.
도 11은 일 실시예에 따라 업로드 데이터와 관련된 특징값의 분포를 나타낸 것이다.11 illustrates a distribution of feature values related to uploaded data according to an embodiment.
도 12는 일 실시예에 따라 배터리 퍼센트와 관련된 특징값의 분포를 나타낸 것이다.12 illustrates a distribution of feature values related to a battery percentage according to an exemplary embodiment.
도 13은 일 실시예에 따라 표면 온도와 관련된 특징값의 분포를 나타낸 것이다.13 illustrates a distribution of feature values related to surface temperature according to an exemplary embodiment.
도 14는 일 실시예에 따라 FPS와 관련된 특징값의 분포를 나타낸 것이다.14 illustrates a distribution of feature values related to FPS according to an embodiment.
도 15는 일 실시예에 따라 게임 플레이 시간과 관련된 특징값의 분포를 나타낸 것이다.15 illustrates a distribution of feature values related to game play time according to an embodiment.
도 16은 일 실시예에 따라 표면 온도의 변화와 관련된 특징값의 분포를 나타낸 것이다.16 illustrates a distribution of feature values related to changes in surface temperature according to an exemplary embodiment.
도 17은 일 실시예에 따라 배터리 퍼센트와 관련된 특징값의 분포를 나타낸 것이다.17 illustrates a distribution of feature values related to a battery percentage according to an embodiment.
도 18은 일 실시예에 따라 게임 플레이 시간과 관련된 특징값의 분포를 나타낸 것이다.18 illustrates a distribution of feature values related to game play time according to an embodiment.
도 19는 일 실시예에 따라 프로세서 주파수와 관련된 특징값의 분포를 나타낸 것이다.19 illustrates a distribution of feature values related to processor frequency according to an embodiment.
도 20은 일 실시예에 따라 프로세서 사용량과 관련된 특징값의 분포를 나타낸 것이다.20 illustrates a distribution of feature values related to processor usage according to an embodiment.
도 21은 일 실시예에 따라 표면 온도의 비대칭도와 관련된 특징값의 분포를 나타낸 것이다.21 illustrates a distribution of feature values related to asymmetry of surface temperature according to an embodiment.
도 22는 일 실시예에 따라 FPS 안정도와 관련된 특징값의 분포를 나타낸 것이다.22 illustrates a distribution of feature values related to FPS stability according to an embodiment.
도 23은 일 실시예에 따라 FPS 변화와 관련된 특징값의 분포를 나타낸 것이다.23 illustrates a distribution of feature values related to FPS change according to an embodiment.
도 24는 일 실시예에 따라 FPS와 관련된 특징값의 분포를 나타낸 것이다.24 illustrates a distribution of feature values related to FPS according to an embodiment.
도 25a 및 도 25b는 일 실시예에 따라 FPS 데이터와 관련된 특징값들을 시간 순서대로 나타낸 차트들이다.25A and 25B are charts showing feature values related to FPS data in chronological order according to an embodiment.
도 26은 일 실시예에 따라 인플레이 구간의 판단과 관련되는 특징값들의 중요도를 나타낸 것이다.26 illustrates importance of feature values related to determining an in-play section according to an embodiment.
도 27은 일 실시예에 따라 인플레이 구간의 판단과 관련되는 특징값들의 상관관계(correlation)를 나타내는 열지도(heatmap)를 도시한 것이다.27 illustrates a heatmap showing correlation of feature values related to determining an in-play section 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 embodiments will be described with reference to the accompanying drawings. The term user used in embodiments of the present disclosure may refer to a person using an electronic device or a device (eg, an artificial intelligence electronic device) using an electronic device.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 발명의 실시예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the art of the present invention. Terms defined in commonly used dictionaries may be interpreted as having the same or similar meanings as those in the context of the related art, and unless explicitly defined in this document, they are not interpreted in ideal or excessively formal meanings. . In some cases, even terms defined in this document cannot be interpreted to exclude embodiments of the present invention.
도 1은 일 실시예에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 1 is a block diagram of an electronic device 101 within a network environment 100 according to an embodiment.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.Referring to FIG. 1 , in a network environment 100, an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 . According to an embodiment, the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included. In some embodiments, in the electronic device 101, at least one of these components (eg, the connection terminal 178) may be omitted or one or more other components may be added. In some embodiments, some of these components (eg, sensor module 176, camera module 180, or antenna module 197) are integrated into a single component (eg, display module 160). It can be.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 120, for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 . According to one embodiment, the processor 120 includes a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor). For example, when the electronic device 101 includes the main processor 121 and the auxiliary processor 123, the auxiliary processor 123 may use less power than the main processor 121 or be set to be specialized for a designated function. can The secondary processor 123 may be implemented separately from or as part of the main processor 121 .
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다. The secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, running an application). ) state, together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states. According to one embodiment, the auxiliary processor 123 (eg, an image signal processor or a communication processor) may be implemented as part of other functionally related components (eg, the camera module 180 or the communication module 190). there is. According to an embodiment, the auxiliary processor 123 (eg, a neural network processing device) may include a hardware structure specialized for processing an artificial intelligence model. AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited. The artificial intelligence model may include a plurality of artificial neural network layers. Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples. The artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 . The data may include, for example, input data or output data for software (eg, program 140) and commands related thereto. The memory 130 may include volatile memory 132 or non-volatile memory 134 .
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user). The input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The sound output module 155 may output sound signals to the outside of the electronic device 101 . The sound output module 155 may include, for example, a speaker or a receiver. The speaker can be used for general purposes such as multimedia playback or recording playback. A receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module 160 may visually provide information to the outside of the electronic device 101 (eg, a user). The display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device. According to an embodiment, the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module 170 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do. According to one embodiment, the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102). According to one embodiment, the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102). According to one embodiment, the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user may perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module 188 may manage power supplied to the electronic device 101 . According to one embodiment, the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery 189 may supply power to at least one component of the electronic device 101 . According to one embodiment, the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. The communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported. The communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication. According to one embodiment, the communication module 190 may be a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, a : a local area network (LAN) communication module or a power line communication module). Among these communication modules, a corresponding communication module is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, legacy It may communicate with the external electronic device 104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a telecommunications network such as a computer network (eg, a LAN or a WAN). These various types of communication modules may be integrated as one component (eg, a single chip) or implemented as a plurality of separate components (eg, multiple chips). The wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199. The electronic device 101 may be identified or authenticated.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 1eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology). NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)). -latency communications)) can be supported. The wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example. The wireless communication module 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported. The wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199). According to an embodiment, the wireless communication module 192 is configured to achieve peak data rate (eg, 20 Gbps or more) for realizing 1eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency (for realizing URLLC). Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) may be supported.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다. The antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device). According to an embodiment, the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB). According to one embodiment, the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. can be chosen A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna. According to some embodiments, other components (eg, a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module 197 in addition to the radiator.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module 197 may form a mmWave antenna module. According to one embodiment, the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( e.g. commands or data) can be exchanged with each other.
일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. According to an embodiment, commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 . Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 . According to an embodiment, all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 . For example, when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself. Alternatively or additionally, one or more external electronic devices may be requested to perform the function or at least part of the service. One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 101 . The electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed. To this end, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.The electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device 104 may include an internet of things (IoT) device. Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199 . The electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
도 2는 일 실시예에 따른 전자 장치와 서버의 구성을 설명하기 위한 블록도이다. 2 is a block diagram illustrating configurations of an electronic device and a server according to an exemplary embodiment.
도 2를 참조하면, 전자 장치(200)(예: 도 1의 전자 장치(101))는 적어도 하나의 프로세서(이하, 프로세서라고도 함)(210), 메모리(206), 디스플레이(202), 오디오 모듈(204), 및/또는 통신 모듈(208)을 포함하여 구성될 수 있다. 전자 장치(200)는 이에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성되거나 또는 상기 구성들 중 일부를 제외하여 구성될 수 있다. 일 실시예에 따른 전자 장치(200)는 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다.Referring to FIG. 2 , an electronic device 200 (eg, the electronic device 101 of FIG. 1 ) includes at least one processor (hereinafter referred to as a processor) 210, a memory 206, a display 202, and an audio device. module 204 , and/or communication module 208 . The electronic device 200 is not limited thereto and may be configured to further include various elements or be configured to exclude some of the above elements. The electronic device 200 according to an embodiment may include all or part of the electronic device 101 shown in FIG. 1 .
프로세서(210)는 통신 모듈(208)을 이용하여 서버(230)(예: 도 1의 서버(108))로부터 어플리케이션의 실행 패키지를 다운로드 받아 상기 어플리케이션을 설치 및 실행하거나 기 다운로드되거나 전자 장치(200)에 기 저장된 어플리케이션을 실행할 수 있다. The processor 210 downloads an execution package of an application from the server 230 (eg, the server 108 of FIG. 1) using the communication module 208 and installs and executes the application, or previously downloaded or electronic device 200. ) can run pre-stored applications.
프로세서(210)는 어플리케이션에 대한 실행 요청(예: 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)에 기반하여 서버(230)에게, 상기 어플리케이션이 지정된 종류인지 여부를 문의할 수 있다. 예를 들면, 상기 지정된 종류는 성능 파라미터들의 최적화가 요구되는 어플리케이션일 수 있다. 예를 들면 상기 지정된 종류는 게임 어플리케이션 또는 고성능이 요구되는 어플리케이션일 수 있다. 프로세서(210)는 서버(230)로부터 제공된 메타데이터를 기반으로 상기 실행 요청된 어플리케이션이 상기 지정된 종류(예: 게임 어플리케이션, 또는 성능 최적화가 필요한 어플리케이션, 또는 고성능이 요구되는 어플리케이션)임을 확인할 수 있고, 상기 어플리케이션의 실행과 연관된 로우 데이터(raw data)를 획득할 수 있다. 일 실시예에서 프로세서(210)는 어플리케이션의 실행과 연관된 로우 데이터를 기반으로 성능 데이터(performance data)를 획득할 수 있다.The processor 210 may inquire of the server 230 whether the application is of a designated type based on an application execution request (eg, a user input or an automatic execution request according to a designated condition). For example, the designated type may be an application requiring optimization of performance parameters. For example, the designated type may be a game application or an application requiring high performance. The processor 210 can confirm that the execution-requested application is the designated type (eg, a game application, an application requiring performance optimization, or an application requiring high performance) based on the metadata provided from the server 230, Raw data associated with the execution of the application may be acquired. In one embodiment, the processor 210 may obtain performance data based on raw data associated with the execution of an application.
일 실시예에서, 상기 성능 데이터는 어플리케이션의 실행과 연관된 복수의 요소들을 포함할 수 있다. 상기 복수의 요소들은 어플리케이션의 실행 데이터(예를 들어 실행 화면)가 디스플레이(202)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 상기 어플리케이션의 FPS(frame per second), 전자 장치(200)의 온도(예: CPU(central processing unit) 온도, GPU(graphic processing unit) 온도 및/또는 표면 온도), 프로세서(210)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(input/output: I/O), 디스플레이(202)의 해상도, 디스플레이(202)의 주사율(scan rate) 또는 재생율(refresh rate), 디스플레이(260)의 화면 밝기, 및/또는 전자 장치(200)가 접속중인 네트워크(예: 모바일 네트워크)의 종류 중 적어도 하나를 포함할 수 있다. In one embodiment, the performance data may include a plurality of elements related to the execution of the application. The plurality of elements are the FPS (frame per second) of the application while the execution data (eg, execution screen) of the application is exposed on the display 202 (eg, during the foreground), the electronic device 200 ) temperature (eg central processing unit (CPU) temperature, graphic processing unit (GPU) temperature and/or surface temperature), load of the processor 210 (eg CPU or GPU), network input/output (I /O), the resolution of the display 202, the scan rate or refresh rate of the display 202, the screen brightness of the display 260, and/or the network the electronic device 200 is connected to (e.g. : mobile network).
예를 들면, 어플리케이션은 전자 장치(200)에서 실행 시 포그라운드 상태이거나 백그라운드 상태일 수 있으며, 세션은 포그라운드 상태를 의미할 수 있다. 예를 들면, 어플리케이션이 포그라운드(예: 제1 포그라운드)에서 백그라운드로 실행되다가 다시 포그라운드(예: 제2 포그라운드)로 실행되는 경우 제1 포그라운드 기간이 제1 세션일 수 있고, 제2 포그라운드 기간이 제2 세션일 수 있다. 일 실시예에 따른 프로세서(210)는 각 세션(예: 제1 세션, 제2 세션 또는 다른 세션)에 대응된 로우 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 통계값, 및/또는 복수의 요소들 각각의 부분값)를 성능 데이터로서 획득할 수 있다. For example, an application may be in a foreground state or a background state when executed in the electronic device 200, and a session may mean a foreground state. For example, when an application is executed in the background in the foreground (eg, the first foreground) and then again in the foreground (eg, the second foreground), the first foreground period may be the first session, and the first foreground period may be the first session. 2 Foreground periods may be the second session. The processor 210 according to an embodiment includes summary (or processed) information (eg, statistical values of each of a plurality of elements, and/or a partial value of each of a plurality of elements) may be obtained as performance data.
일 실시예에 따른 프로세서(210)는 상기 어플리케이션의 실행에 관련된 상기 성능 데이터를 서버(230)에 전송할 수 있고, 서버(230)로부터 상기 성능 데이터의 분석에 기반한 적어도 하나의 성능 파라미터(예를 들어 CPU/GPU의 클럭 및/또는 사용량 제한(usage limit))를 수신할 수 있다. 일 실시예에 따른 프로세서(210)는 상기 성능 데이터를 분석하여 적어도 하나의 성능 파라미터를 직접 산출하거나, 상기 성능 데이터의 분석에 기반한 분석 정보를 서버(230)로부터 수신하고 상기 분석 정보를 이용하여 성능 파라미터를 산출할 수 있다. 본 개시에서 성능 파라미터의 획득이라 함은 서버(230)로부터의 수신 및/또는 전자 장치(200)에서의 계산을 포함할 수 있다. 프로세서(210)는 상기 성능 파라미터에 기반하여 상기 어플리케이션을 실행할 수 있다. 예를 들어 프로세서(210)는 지정된 성능 파라미터(예를 들어 제1 성능 파라미터)에 기반하여 어플리케이션을 실행하는 도중 제2 성능 파라미터의 획득 시 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행할 수 있다. 예를 들어 프로세서(220)는 제2 성능 파라미터에 기반하여 어플리케이션을 실행하는 도중 제3 성능 파라미터의 획득 시 제3 성능 파라미터에 기반하여 상기 어플리케이션을 실행할 수 있다. The processor 210 according to an embodiment may transmit the performance data related to the execution of the application to the server 230, and at least one performance parameter based on analysis of the performance data from the server 230 (for example, Clock and/or usage limits of the CPU/GPU may be received. The processor 210 according to an embodiment may directly calculate at least one performance parameter by analyzing the performance data, or may receive analysis information based on the analysis of the performance data from the server 230 and use the analysis information to perform performance. parameters can be calculated. Acquisition of performance parameters in the present disclosure may include reception from the server 230 and/or calculation in the electronic device 200 . The processor 210 may execute the application based on the performance parameter. For example, when obtaining a second performance parameter while executing an application based on a designated performance parameter (eg, a first performance parameter), the processor 210 may execute the application based on the second performance parameter. For example, the processor 220 may execute the application based on the third performance parameter when acquiring the third performance parameter while executing the application based on the second performance parameter.
일 실시예에서 프로세서(210)는 어플리케이션 런처(application launcher) (212), 성능 튜너(performance tuner)(214), 및/또는 에이전트(216)를 포함할 수 있다. 예를 들어, 어플리케이션 런처(212), 성능 튜너(214), 및/또는 에이전트(216)는 프로세서(210)에 의해 실행되는 소프트웨어 또는 펌웨어일 수 있다. 또는, 어플리케이션 런처(212), 성능 튜너(214), 및/또는 에이전트(216)는 프로세서(210)에 포함되거나 또는 독립적으로 존재하는 하드웨어 모듈일 수 있다.In one embodiment, the processor 210 may include an application launcher 212 , a performance tuner 214 , and/or an agent 216 . For example, application launcher 212 , performance tuner 214 , and/or agent 216 may be software or firmware executed by processor 210 . Alternatively, the application launcher 212 , performance tuner 214 , and/or agent 216 may be included in the processor 210 or may be independent hardware modules.
에이전트(216)는 전자 장치(200)에 신규로 설치되는 어플리케이션이 지정된 종류(예를 들어 게임 어플리케이션, 성능 최적화가 필요한 어플리케이션, 또는 고성능이 요구되는 어플리케이션))인지를 판단할 수 있다. 상기 어플리케이션의 종류를 식별할 수 없다면 에이전트(216)는 메타데이터 요청을 통해 서버(230)에 질의하여 상기 어플리케이션이 상기 지정된 종류인지에 대한 정보(예를 들어 메타데이터)를 수신하고, 상기 메타데이터를 기반으로 상기 어플리케이션이 상기 지정된 종류임을 확인할 수 있다.The agent 216 may determine whether an application newly installed in the electronic device 200 is a designated type (eg, a game application, an application requiring performance optimization, or an application requiring high performance). If the type of application cannot be identified, the agent 216 queries the server 230 through a metadata request to receive information (for example, metadata) on whether the application is of the designated type, and the metadata Based on, it can be confirmed that the application is of the designated type.
어플리케이션 런처(212)는 어플리케이션의 실행 요청에 기반하여, 주어진 성능 파라미터(예를 들어 제1 성능 파라미터 또는 제2 성능 파라미터)에 기반하여 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 어플리케이션 런처(212)는 성능 튜너(214)로부터 제공받은 성능 파라미터를 상기 어플리케이션의 실행에 적용할 수 있다.The application launcher 212 may execute the application based on a given performance parameter (eg, a first performance parameter or a second performance parameter) based on an application execution request. In one embodiment, the application launcher 212 may apply performance parameters provided from the performance tuner 214 to the execution of the application.
성능 튜너(214)는 어플리케이션이 실행중인 동안(예를 들어 전체 게임 세션 동안, 또는 어플리케이션의 실행 데이터가 디스플레이(202)에 노출되는 동안) 어플리케이션의 실행과 연관된 성능 데이터를 수집하여 메모리(206)(예를 들어 성능 데이터베이스(database: DB)(218))에 저장하거나, 에이전트(216)에 전달할 수 있다. 예를 들면, 성능 데이터는 어플리케이션의 실행과 관련된 복수의 요소들을 포함할 수 있다. 상기 복수의 요소들은 어플리케이션의 실행 화면이 디스플레이(202)에 노출되는 동안(예: 포그라운드(foreground) 동안)의 상기 어플리케이션의 FPS, 전자 장치(201)의 온도(예: CPU/GPU 온도 또는 표면 온도), 프로세서(210)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(202)의 해상도, 디스플레이(222)의 주사율 또는 재생율, 디스플레이(202)의 화면 밝기, 및/또는 전자 장치(200)가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다. The performance tuner 214 collects and stores performance data associated with the execution of the application while the application is running (e.g., during an entire gaming session, or while execution data of the application is exposed on the display 202) and stores it in the memory 206 ( For example, it may be stored in the performance database (database: DB) 218) or transmitted to the agent 216. For example, performance data may include a plurality of elements related to the execution of an application. The plurality of elements are the FPS of the application while the execution screen of the application is exposed on the display 202 (eg, during the foreground), the temperature of the electronic device 201 (eg, CPU/GPU temperature or surface temperature), the load of the processor 210 (eg, CPU or GPU), network input/output (I/O), the resolution of the display 202, the refresh rate or refresh rate of the display 222, the screen brightness of the display 202, and / or at least one of the types of networks to which the electronic device 200 is connected.
성능 튜너(214)는 어플리케이션의 실행과 연관된 성능 데이터의 전달에 대한 응답으로 에이전트(216)를 통해 서버(230)로부터 적어도 하나의 성능 파라미터, 예를 들어 프로세서(210)(예: CPU 또는 GPU)의 클럭 또는 사용량 제한을 수신할 수 있다. 일 실시예에 따른 성능 튜너(214)는 상기 수신된 성능 파라미터에 기반하여 상기 어플리케이션이 실행되도록 어플리케이션 런처(212)로 상기 성능 파라미터를 제공할 수 있다. Performance tuner 214 receives at least one performance parameter from server 230 via agent 216 in response to delivery of performance data associated with the execution of the application, for example, processor 210 (eg, CPU or GPU). Can receive a clock or usage limit of The performance tuner 214 according to an embodiment may provide the performance parameter to the application launcher 212 to execute the application based on the received performance parameter.
에이전트(216)는 실행중인 어플리케이션에 관련된 성능 데이터를 통신 모듈(208)을 통해 주기적으로 서버(230)로 전달할 수 있다. 일 실시예에서 에이전트(216)는 주어진 주기에 따라 주기적으로 메모리(206)(예를 들어 성능 데이터베이스(218))로부터 성능 데이터를 읽어내고 상기 성능 데이터를 통신 모듈(208)을 통해 서버(230)로 보고할 수 있다. 일 실시예에서 에이전트(216)는 상기 어플리케이션이 사용자에 의해 실제로 플레이되고 있는 인플레이(in-play) 구간에 대응하는 성능 데이터의 분석을 통해 산출된 성능 파라미터를 서버(230)로부터 수신하고, 상기 성능 파라미터를 성능 튜너(214)로 전달할 수 있다. 상기 성능 파라미터(230)는 상기 성능 데이터의 분석을 통해 전자 장치(200)에서의 어플리케이션의 실행 성능을 개선하도록 서버(230)에 의해 산출된 것일 수 있다.The agent 216 may periodically transmit performance data related to the running application to the server 230 through the communication module 208 . In one embodiment, the agent 216 periodically reads performance data from the memory 206 (for example, the performance database 218) according to a given period and sends the performance data to the server 230 through the communication module 208. can be reported as In one embodiment, the agent 216 receives, from the server 230, a performance parameter calculated through analysis of performance data corresponding to an in-play section in which the application is actually played by a user, and the performance Parameters can be passed to the performance tuner 214. The performance parameter 230 may be calculated by the server 230 to improve execution performance of an application in the electronic device 200 through analysis of the performance data.
일 실시예에서 에이전트(216)는 성능 튜너(214)에 의해 수집된 성능 데이터를, 인플레이 구간(in-play period)에 대응하는 데이터(예: 인플레이 데이터)와 인플레이 구간에 대응하지 않는 데이터(예: 낫-인플레이 데이터)로 분류할 수 있다. 상기 어플리케이션과 관련된 세션이 진행되는 전체 시간 구간 중 인플레이 구간이 아닌 나머지 시간 구간은 낫-인플레이 구간이라 칭할 수 있다. 일 실시예에 따른 에이전트(216)는 분류 결과 지정된 조건을 만족하는 인플레이 데이터를 서버(230)로 보고할 수 있다. 일 실시예에 따른 에이전트(216)는 서버(230)로부터 인플레이 데이터의 분석을 기반으로 획득된 성능 파라미터를 수신하여 성능 튜너(214)에 전달할 수 있다. 일 실시예에 따른 에이전트(216)는 인플레이 데이터를 분석하여 성능 파라미터를 획득하고 상기 성능 파라미터를 성능 튜너(214)에게 전달할 수 있다.In one embodiment, agent 216 divides performance data collected by performance tuner 214 into data corresponding to an in-play period (eg, in-play data) and data not corresponding to an in-play period (eg, in-play data). : not-in-play data). Among the entire time intervals in which the session related to the application is progressing, the remaining time intervals other than the in-play intervals may be referred to as not-in-play intervals. The agent 216 according to an embodiment may report in-play data that satisfies a specified condition to the server 230 as a result of the classification. The agent 216 according to an embodiment may receive a performance parameter obtained based on the analysis of in-play data from the server 230 and transmit it to the performance tuner 214 . Agent 216 according to an embodiment may analyze in-play data to obtain performance parameters and transmit the performance parameters to performance tuner 214 .
일 실시예에 따른 메모리(206)는 어플리케이션 패키지를 저장할 수 있고, 상기 어플리케이션의 실행과 연관된 데이터 및/또는 정보를 저장할 수 있다. 예를 들면, 어플리케이션 패키지는 통신 모듈(220)을 통해 서버(230) 또는 다른 서버로부터 다운로드되고 전자 장치(200)에 설치 및/또는 메모리(206)에 저장될 수 있다. 메모리(206)는 성능 데이터베이스(218)를 포함할 수 있고, 성능 데이터베이스(218)는 상기 어플리케이션의 실행과 연관되어 성능 튜너(214)에 의해 수집되는 성능 데이터를 성능 튜너(214)로부터 제공받아 저장할 수 있다. 일 실시예에서 성능 데이터베이스(218)는 프로세서(210)의 내부 메모리(도시하지 않음)에 포함될 수 있다.The memory 206 according to an embodiment may store an application package and may store data and/or information related to execution of the application. For example, the application package may be downloaded from the server 230 or another server through the communication module 220 and installed in the electronic device 200 and/or stored in the memory 206 . The memory 206 may include a performance database 218 , and the performance database 218 receives and stores performance data collected by the performance tuner 214 in association with the execution of the application, provided from the performance tuner 214 . can In one embodiment, performance database 218 may be included in internal memory (not shown) of processor 210 .
메모리(230)는 기능 동작에 사용되는 프로그램(예: 도 1의 프로그램(140))을 비롯하여, 프로그램(140)의 실행 중에 발생되는 다양한 데이터를 저장할 수 있다. 메모리(230)는 크게 프로그램 영역(140)과 데이터 영역(미도시)을 포함할 수 있다. 상기 프로그램 영역(140)은 전자 장치(200)를 부팅시키는 운영체제(OS)(예: 도 1의 운영 체제(142))와 같은 전자 장치(200)의 구동을 위한 관련된 프로그램 정보들을 저장할 수 있다. 상기 데이터 영역(미도시)은 본 개시의 실시예들에 따라 송신 및/또는 수신된 데이터 및 생성된 데이터를 저장할 수 있다. 또한, 메모리(206)는 플래시 메모리(flash memory), 하드디스크(hard disk), 멀티미디어 카드 마이크로(multimedia card micro) 타입의 메모리(예를 들어, secure digital(SD) 또는 extreme digital(XD) 메모리), 램(RAM), 롬(ROM) 중의 적어도 하나의 저장매체를 포함하여 구성될 수 있다. The memory 230 may store various data generated during execution of the program 140 as well as programs used for functional operations (eg, the program 140 of FIG. 1 ). The memory 230 may largely include a program area 140 and a data area (not shown). The program area 140 may store program information related to driving the electronic device 200, such as an operating system (OS) for booting the electronic device 200 (eg, the operating system 142 of FIG. 1). The data area (not shown) may store transmitted and/or received data and generated data according to embodiments of the present disclosure. In addition, the memory 206 may be a flash memory, a hard disk, or a multimedia card micro type memory (eg, secure digital (SD) or extreme digital (XD) memory). , RAM (RAM), may be configured to include at least one storage medium of ROM (ROM).
일 실시예에 따른 디스플레이(202)는 프로세서(210)의 제어에 기반하여 각종 데이터 및/또는 정보를 표시할 수 있다. 예를 들면, 디스플레이(202)는 어플리케이션의 실행 데이터(예를 들어 실행 화면), 홈 화면, 및/또는 전자 장치(200)의 각종 기능 또는 동작과 연관된 화면을 포함하는 사용자 인터페이스를 표시할 수 있다. 일 실시예에 따르면, 디스플레이(202)는 터치 스크린의 형태로 구현될 수 있다. 디스플레이(202)는 터치 스크린 형태로 입력 모듈과 함께 구현되는 경우, 사용자의 터치 동작에 따라 발생되는 다양한 정보들을 표시할 수 있다. 일 실시예에 따르면, 디스플레이(202)는 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)를 포함하는 투명 디스플레이 형태로 구성될 수 있다. 다른 실시예에 따르면, 전자 장치(200)는 디스플레이(202) 외에 장착된 다른 디스플레이 모듈(예를 들어, 확장 디스플레이 또는 플렉시블 디스플레이)을 더 포함할 수 있다.The display 202 according to an embodiment may display various data and/or information based on the control of the processor 210 . For example, the display 202 may display a user interface including execution data (eg, an execution screen) of an application, a home screen, and/or screens related to various functions or operations of the electronic device 200. . According to one embodiment, the display 202 may be implemented in the form of a touch screen. When implemented together with an input module in the form of a touch screen, the display 202 may display various information generated according to a user's touch operation. According to one embodiment, the display 202 is a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), an active matrix organic LED (AMOLED), It may be composed of at least one or more of a micro LED, a mini LED, a flexible display, and a 3D display. Also, some of these displays may be of a transparent type or a light transmission type so that the outside can be seen through them. This may be configured in the form of a transparent display including a transparent OLED (TOLED). According to another embodiment, the electronic device 200 may further include other mounted display modules (eg, extended displays or flexible displays) in addition to the display 202 .
일 실시예에 따른 오디오 모듈(204)은 프로세서(210)의 제어에 기반하여 각종 데이터 및/또는 정보를 표시할 수 있다. 예를 들면, 오디오 모듈(204)은 어플리케이션의 실행과 연관된 오디오 신호를 스피커를 통해 출력하거나, 마이크를 통해 어플리케이션 실행과 연관된 오디오 신호를 입력 받을 수 있다.The audio module 204 according to an embodiment may display various data and/or information based on the control of the processor 210 . For example, the audio module 204 may output an audio signal related to application execution through a speaker or receive an audio signal related to application execution through a microphone.
일 실시예에 따른 통신 모듈(208)은 네트워크(220)를 통해 서버(230)와 통신할 수 있다. 예를 들어, 통신 모듈(208)은 서버(230)로부터 어플리케이션과 관련된 메타데이터를 수신할 수 있고, 성능 파라미터를 수신할 수 있다. 일 실시예에 따르면, 통신 모듈(208)은 셀룰러 모듈, Wi-Fi(wireless-fidelity) 모듈, 블루투스 모듈 또는 NFC(near field communication) 모듈을 포함할 수 있다. 이 외에 서버(230)와 통신 가능한 다른 모듈을 더 포함할 수 있다. Communication module 208 according to one embodiment may communicate with server 230 over network 220 . For example, the communication module 208 may receive metadata related to an application from the server 230 and may receive performance parameters. According to one embodiment, the communication module 208 may include a cellular module, a wireless-fidelity (Wi-Fi) module, a Bluetooth module, or a near field communication (NFC) module. In addition to this, other modules capable of communicating with the server 230 may be further included.
일 실시예에 따르면, 전자 장치(200)는 도 2에 도시된 구성에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성될 수 있다. 일 실시예에 따르면, 전자 장치(200)는 이미지 처리 모듈(미도시)을 더 포함할 수 있다. 이미지 처리 모듈은 프로세서(210)의 제어에 기반하여 2D 또는 3D 이미지 처리 및/또는 렌더링 동작을 수행할 수 있다. According to an embodiment, the electronic device 200 is not limited to the configuration shown in FIG. 2 and may further include various components. According to an embodiment, the electronic device 200 may further include an image processing module (not shown). The image processing module may perform 2D or 3D image processing and/or rendering operations under the control of the processor 210 .
일 실시예에 따른 서버(230)(예: 도 1의 서버(108))는 적어도 하나의 프로세서(이하, 프로세서라고도 함)(234), 메모리(242), 및 통신 모듈(232)을 포함하여 구성될 수 있다. 서버(230)는 이에 한정되지 않고 다양한 구성 요소들을 더 포함하여 구성 또는 상기 구성들 중 일부를 제외하여 구성될 수 있다. The server 230 (eg, the server 108 of FIG. 1 ) according to an embodiment includes at least one processor (hereinafter referred to as a processor) 234, a memory 242, and a communication module 232. can be configured. The server 230 is not limited thereto and may further include various elements or may be configured except for some of the above elements.
프로세서(234)는 통신 모듈(232)을 통한 전자 장치(200)로부터 어플리케이션의 여부 문의에 기반하여 지정된 어플리케이션에 대응된 메타데이터를 제공할 수 있다. 프로세서(234)는 다수의 전자 장치들로부터 지정된 어플리케이션을 실행할 경우의 성능 데이터를 수집하고, 수집된 성능 데이터를 세션(예를 들어 제1 세션, 제2 세션 또는 다른 세션)별로 세그멘테이션하여 세션별 세그먼트들 각각의 특징값들을 추출하고 세션별 세그먼트들 각각의 특징값들을 기계 학습(machine learning) 모델에 의해 학습하여 성능 데이터를 분석할 수 있다. 일 실시예에 따른 프로세서(234)는 성능 데이터의 요약(또는 가공) 정보(예: 복수의 요소들 각각의 통계값, 및/또는 복수의 요소들 각각의 부분값)를 상기 성능 데이터와 관련된 추출값으로서 획득할 수 있다.The processor 234 may provide metadata corresponding to a designated application based on an application inquiry from the electronic device 200 through the communication module 232 . The processor 234 collects performance data when a designated application is executed from a plurality of electronic devices, and segments the collected performance data by session (eg, a first session, a second session, or another session) to segment each session. Performance data may be analyzed by extracting feature values of each segment and learning feature values of each segment for each session using a machine learning model. The processor 234 according to an embodiment extracts summary (or processed) information (eg, a statistical value of each of a plurality of elements and/or a partial value of each of a plurality of elements) of the performance data related to the performance data. can be obtained as a value.
일 실시예에 따른 프로세서(234)는 전자 장치(200)로부터 지정된 조건(예를 들어 인플레이 구간 내)의 성능 데이터를 수신할 수 있다. 일 실시예에 따른 프로세서(234)는 지정된 조건의 성능 데이터를 분석하여 지정된 어플리케이션에 대한 성능 파라미터를 획득하고 상기 성능 파라미터를 통신 모듈(232)을 통해 전자 장치(200)에 제공할 수 있다.The processor 234 according to an embodiment may receive performance data under a specified condition (eg, within an in-play period) from the electronic device 200 . The processor 234 according to an embodiment may obtain a performance parameter for a specified application by analyzing performance data under a specified condition, and may provide the performance parameter to the electronic device 200 through the communication module 232 .
일 실시예에 따른 프로세서(234)는 성능 데이터 수집(performance data collector) 모듈(236), 데이터 분류(data classifier) 모듈(238), 및/또는 성능 분석(performance analyzer) 모듈(240)을 포함할 수 있다. 예를 들어, 성능 데이터 수집 모듈(236), 데이터 분류 모듈(238), 및/또는 성능 분석 모듈(240)은 프로세서(234)에 의해 실행되는 소프트웨어 또는 펌웨어일 수 있다. 또는, 성능 데이터 수집 모듈(236), 데이터 분류 모듈(238), 및/또는 성능 분석 모듈(240)은 프로세서(234)에 포함되거나 또는 독립적으로 존재하는 하드웨어일 수 있다.The processor 234 according to one embodiment may include a performance data collector module 236, a data classifier module 238, and/or a performance analyzer module 240. can For example, performance data collection module 236 , data classification module 238 , and/or performance analysis module 240 may be software or firmware executed by processor 234 . Alternatively, the performance data collection module 236 , data classification module 238 , and/or performance analysis module 240 may be included in the processor 234 or may be independent hardware.
일 실시예에 따른 성능 데이터 수집 모듈(236)은 지정된 수집 기간 동안 지정된 다수의 전자 장치들로부터 지정된 성능 파라미터로 지정된 어플리케이션을 실행할 경우의 성능 데이터를 수집하고, 상기 수집된 성능 데이터를 메모리(242)(예를 들어 성능 데이터베이스(246))에 저장할 수 있다. 일 실시예에 따른 상기 성능 데이터는 데이터 분류 모듈(238)에 의한 기계 학습에 이용될 수 있다. 일 실시예에서 성능 데이터베이스(246)는 장면(scene) 정보가 라벨링된 성능 데이터를 저장할 수 있다. 상기 장면 정보는 게임 소스 코드에 포함되어 있을 수 있다.The performance data collection module 236 according to an embodiment collects performance data when a specified application is executed with a specified performance parameter from a specified number of electronic devices during a specified collection period, and stores the collected performance data in the memory 242. (e.g. performance database 246). According to one embodiment, the performance data may be used for machine learning by data classification module 238 . In one embodiment, performance database 246 may store performance data labeled with scene information. The scene information may be included in game source code.
일 실시예에 따른 데이터 분류 모듈(238)은 성능 데이터베이스(246)로부터 성능 데이터(예를 들어 장면 정보가 라벨링된 성능 데이터)를 읽어내어 상기 성능 데이터의 세션별 특징값들을 식별하고, 상기 세션별 특징값들을 기계 학습 모델에 의해 학습하여 각 성능 데이터가 전자 장치(200)에서 어플리케이션이 실제로 사용자에 의해 플레이되는 인플레이 구간에서 수집된 것인지의 여부를 판별하고, 상기 성능 데이터를 인플레이 구간에 관련된 인플레이 데이터와 인플레이 구간에 관련되지 않는 낫-인플레이 데이터로 분류할 수 있다.The data classification module 238 according to an embodiment reads performance data (eg, performance data labeled with scene information) from the performance database 246, identifies characteristic values of the performance data for each session, and identifies the performance data for each session. Characteristic values are learned by a machine learning model to determine whether or not each performance data is collected in an in-play section in which an application is actually played by a user in the electronic device 200, and the performance data is converted into in-play data related to the in-play section. and not-in-play data that are not related to the in-play section.
일 실시예에 따른 성능 분석 모듈(240)은 전자 장치(200)로부터 수집되고 데이터 분류 모듈(238)에 의해 분류된 상기 인플레이 데이터를 분석하여, 지정된 어플리케이션에 대해 전자 장치(200)의 성능을 개선할 수 있는 성능 파라미터를 산출하고, 상기 산출된 성능 파라미터를 파라미터 데이터베이스(248)에 저장하거나 또는 통신 모듈(232)을 통해 전자 장치(200)에 전송할 수 있다.The performance analysis module 240 according to an embodiment analyzes the in-play data collected from the electronic device 200 and classified by the data classification module 238 to improve the performance of the electronic device 200 for a designated application. Possible performance parameters may be calculated, and the calculated performance parameters may be stored in the parameter database 248 or transmitted to the electronic device 200 through the communication module 232 .
일 실시예에 따른 메모리(242)는 메타데이터 데이터베이스(244), 성능 데이터베이스(246) 및 파라미터 데이터베이스(248)를 포함할 수 있고, 다수의 전자 장치들로부터 수집된 성능 데이터 및 성능 데이터들을 기반으로 획득된 성능 파라미터들을 저장할 수 있다. The memory 242 according to an embodiment may include a metadata database 244, a performance database 246, and a parameter database 248, based on performance data and performance data collected from a plurality of electronic devices. The acquired performance parameters may be stored.
일 실시예에 따른 메타데이터 데이터베이스(244)는 외부의 서버(예: 앱 스토어TM 또는 플레이 스토어TM)로부터 수집된 어플리케이션(예: 게임 어플리케이션)의 정보를 기반으로 생성되는 적어도 하나의 어플리케이션 정보(예: 메타데이터)를 저장할 수 있다. 예를 들면, 메타데이터는 "apk 이름", "게임여부" 및/또는 "게임이름"을 포함할 수 있다. 예를 들면, 메타데이터는 상기 어플리케이션에 대해 지정된 성능 파라미터의 기본값(default values)을 포함할 수 있다.The metadata database 244 according to an embodiment includes at least one application information (eg, App Store TM or Play Store TM ) generated based on application (eg, game application) information collected from an external server (eg, App Store TM or Play Store TM ). : metadata) can be stored. For example, metadata may include "apk name", "game status", and/or "game name". For example, metadata may include default values of performance parameters specified for the application.
일 실시예에 따른 서버(230)는 메타데이터 데이터베이스(244)에 저장된 어플리케이션 정보(예: 메타데이터)를 기반으로 전자 장치(200)에 포함된(저장된 또는 설치된) 어플리케이션의 정보를 확인하여, 전자 장치(200)에 포함된 어플리케이션이 지정된 종류(예: 게임 어플리케이션)인지 여부를 식별하며, 만일 상기 지정된 종류인 경우 전자 장치(200)에 포함된 어플리케이션이 지정된 종류(예: 게임 어플리케이션)임을 나타내는 정보를 포함하는 상기 메타데이터를 통신 모듈(232)을 통해 전자 장치(200)에게 제공할 수 있다. The server 230 according to an embodiment checks application information included (stored or installed) in the electronic device 200 based on application information (eg, metadata) stored in the metadata database 244, and Identifies whether the application included in the device 200 is a designated type (eg, a game application), and if the application is the designated type, information indicating that the application included in the electronic device 200 is a designated type (eg, a game application) The metadata including may be provided to the electronic device 200 through the communication module 232.
일 실시예에서 메타데이터 데이터베이스(244), 성능 데이터베이스(246), 또는 파라미터 데이터베이스(248) 중 적어도 하나는 프로세서(234)의 내부 메모리(도시하지 않음)에 포함될 수 있다.In one embodiment, at least one of metadata database 244 , performance database 246 , or parameter database 248 may be included in internal memory (not shown) of processor 234 .
일 실시예에 따른 서버(230)는 파라미터 데이터베이스(244)에 저장된 성능 파라미터를 전자 장치(200)의 요청에 따라, 또는 지정된 조건(예를 들어 어플리케이션의 설치 또는 실행, 또는 주어진 주기)에 따라 통신 모듈(232)을 통해 전자 장치(200)에게 전달할 수 있다.The server 230 according to an embodiment communicates the performance parameters stored in the parameter database 244 according to a request of the electronic device 200 or according to a specified condition (eg, installation or execution of an application, or a given period). It can be transmitted to the electronic device 200 through the module 232 .
일 실시예에 따른 통신 모듈(232)은 네트워크(220)를 통해 전자 장치(200)와 통신할 수 있다. 예를 들어, 통신 모듈(232)은 전자 장치(200)에 메타데이터를 전송할 수 있고, 전자 장치(200)로부터 성능 데이터 및/또는 지정된 조건의 성능 데이터(예를 들어 인플레이 데이터)를 수신할 수 있다. The communication module 232 according to an embodiment may communicate with the electronic device 200 through the network 220 . For example, the communication module 232 may transmit metadata to the electronic device 200 and may receive performance data and/or performance data (eg, in-play data) under a specified condition from the electronic device 200 . there is.
상술한 실시예들에서는 도 2의 전자 장치(200) 및 서버(230)를 통해 주요 구성 요소에 대해 설명하였다. 그러나 도 2를 통해 도시된 구성 요소가 모두 필수 구성 요소인 것은 아니며, 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(200) 및/또는 서버(230)가 구현될 수도 있고, 그 보다 적은 구성 요소에 의해 전자 장치(200) 및/또는 서버(230)가 구현될 수도 있다.In the above-described embodiments, main components have been described through the electronic device 200 and the server 230 of FIG. 2 . However, not all of the components shown in FIG. 2 are essential components, and the electronic device 200 and/or the server 230 may be implemented with more components than the illustrated components, and fewer components than those shown. The electronic device 200 and/or the server 230 may be implemented by elements.
일 실시예에 따르면 전자 장치(200)에 의해 수집되는 성능 데이터는 어플리케이션의 실행 데이터(예를 들어 실행 화면)가 디스플레이(202)에 노출되는 모든 시간 동안 지정된 시간 단위(예: 1초 단위)로 수집된 데이터를 포함할 수 있다. 이러한 성능 데이터는 어플리케이션의 성능 파라미터를 최적화 하는데 불필요한 데이터(예를 들어 인플레이 구간 이외에서 수집된 성능 데이터)를 포함할 수 있다. According to an embodiment, the performance data collected by the electronic device 200 is a specified time unit (eg, 1 second unit) for all the time that the execution data (eg, execution screen) of the application is exposed on the display 202. Collected data may be included. Such performance data may include data unnecessary for optimizing performance parameters of the application (for example, performance data collected outside the in-play period).
도 3a, 도 3b, 도 3c, 도 3d, 도 3e, 및 도 3f(이하 도 3이라 통칭함)는 게임 어플레이션의 다양한 실행 화면들을 예시한 것이다.3a, 3b, 3c, 3d, 3e, and 3f (hereinafter collectively referred to as FIG. 3) illustrate various execution screens of a game application.
도 3a에 도시된 제1 화면(302)은 전자 장치(200)에서 어플리케이션(예: 게임)이 로딩되고 있는 도중에 표시되는 장면들을 포함할 수 있으며 이하 로딩 화면이라 칭할 수 있다. 도 3b에 도시된 제2 화면(304)은 어플리케이션의 실행 중 튜토리얼(tutorial)을 위해 제공되는 장면들을 포함할 수 있으며, 이하 튜토리얼 화면이라 칭할 수 있다. 도 3c에 도시된 제3 화면(306)은 어플리케이션 내에서 게임 플레이(예를 들어 전투)가 시작되기 전 대기실을 나타내는 장면들을 제공할 수 있으며 이하 대기실 화면이라 칭할 수 있다. 도 3d에 도시된 제4 화면(308)은 어플리케이션의 실행 중 전투가 시작될 때 제공되는 장면들을 포함할 수 있으며 이하 전투 시작(start battle) 화면이라 칭할 수 있다. 도 3e에 도시된 제5 화면(310)은 어플리케이션의 실행 중 전투가 진행중일 때 제공되는 장면들을 포함할 수 있으며 이하 전투 중(in battle) 화면이라 칭할 수 있다. 도 3f에 도시된 제6 화면(312)은 어플리케이션의 실행 중 전투가 종료될 때 제공되는 장면들을 포함할 수 있으며 이하 대결 종료(end battle) 화면이라 칭할 수 있다.The first screen 302 shown in FIG. 3A may include scenes displayed while an application (eg, game) is being loaded in the electronic device 200 and may be referred to as a loading screen hereinafter. The second screen 304 shown in FIG. 3B may include scenes provided for a tutorial while an application is running, and may be referred to as a tutorial screen below. The third screen 306 shown in FIG. 3C may provide scenes representing a waiting room before a game play (eg, battle) starts within an application, and may be referred to as a waiting room screen hereinafter. The fourth screen 308 shown in FIG. 3D may include scenes provided when a battle starts while an application is running, and may be referred to as a start battle screen hereinafter. The fifth screen 310 shown in FIG. 3E may include scenes provided when a battle is in progress while an application is running, and may be referred to as an in battle screen hereinafter. The sixth screen 312 shown in FIG. 3F may include scenes provided when a battle ends while an application is running, and may be referred to as an end battle screen hereinafter.
도 3을 참조하면, 낫-인플레이 화면들(예를 들어 로딩 화면(302), 튜토리얼 화면(304), 및/또는 대기실 화면)에서의 성능 데이터는 프로세서(210)의 비교적 낮은 성능을 요구하며, 어플리케이션의 성능 측정에 불필요하거나, 인플레이 화면들(예를 들어 전투 시작 화면(308), 전투중 화면(310) 및/또는 전투 종료 화면(312))에 비해 상대적으로 덜 중요할 수 있다. Referring to FIG. 3, performance data on not-in-play screens (eg, loading screen 302, tutorial screen 304, and/or waiting room screen) requires relatively low performance of the processor 210, It may be unnecessary for measuring the performance of the application, or may be relatively less important than in-play screens (eg, the battle start screen 308, the battle screen 310, and/or the battle end screen 312).
일 실시예에서 낫-인플레이 화면들 동안의 성능 데이터는 전자 장치(200)에서 어플리케이션의 실행 성능을 개선하는데 방해 요소로 작용할 수 있고, 이로 인해 서버(230) 또는 전자 장치(200)는 최적의 성능 파라미터를 찾지 못하거나 혹은 잘못된 성능 파라미터를 결정하게 될 수 있다. In one embodiment, performance data during not-in-play screens may act as an obstacle to improving the execution performance of applications on the electronic device 200, and thus the server 230 or the electronic device 200 may perform optimally. Parameters may not be found or wrong performance parameters may be determined.
도 4는 게임 어플리케이션의 실행 도중에 수집된 성능 데이터의 변화를 설명하기 위한 도면이다.4 is a diagram for explaining changes in performance data collected during execution of a game application.
도 4를 참조하면, 참조번호 404는 게임 어플리케이션의 실행 도중에 측정된 성능 데이터의 하나인 FPS의 변화를 나타낸 것이며, 참조번호 404는 게임 어플리케이션에 대해 지정된 타겟 FPS를 나타낸 것이고, 참조번호 406은 게임 어플리케이션의 실행 도중에 측정된 성능 데이터의 하나인 PST(predicted surface temperature)를 나타낸 것이다. Referring to FIG. 4 , reference number 404 indicates a change in FPS, which is one of performance data measured during execution of a game application, reference number 404 indicates a target FPS designated for the game application, and reference number 406 indicates a game application. It shows PST (predicted surface temperature), one of the performance data measured during the execution of
도 5는 게임 어플리케이션의 실행 도중에 수집된 성능 데이터의 안정도를 비교하기 위한 도면이다.5 is a diagram for comparing stability of performance data collected during execution of a game application.
도 5를 참조하면, 참조번호 502는 전체 게임 세션의 평균 FPS("Total avg FPS")와 인플레이 구간에서의 평균 FPS("In play Avg FPS")를 비교한 것이며, 참조번호 504는 전체 게임 세션의 FPS 안정도("Total FPS stability")와 인플레이 구간에서의 FPS 안정도("In play FPS stability")를 비교한 것이고, 참조번호 506은 전체 게임 세션의 타겟 FPS 안정도("Total target FPS stability")와 인플레이 구간에서의 타겟 FPS 안정도("In play target FPS stability")를 비교한 것이다.Referring to FIG. 5 , reference number 502 compares the average FPS of the entire game session (“Total avg FPS”) and the average FPS in the in-play section (“In play Avg FPS”), and reference number 504 represents the entire game session. Comparison of FPS stability ("Total FPS stability") and FPS stability in the in-play section ("In play FPS stability"), and reference number 506 indicates the target FPS stability of the entire game session ("Total target FPS stability") and This is a comparison of target FPS stability ("In play target FPS stability") in the in-play section.
도 4 및 도 5를 참조하면 타겟 FPS(404)는 40이고, 게임 어플리케이션이 진행중인 게임 세션 중의 절반 정도의 시간은 대기 화면(예를 들어 대기실 화면(306))에서 경과되었다. FPS(402)는 음영으로 표시된 인플레이 구간(예를 들어 전투 중 화면(310))에서 비교적 안정적임임을 알 수 있다. 참조번호 504에 따르면, 전체 게임 세션의 FPS 안정도(stability)(total target FPS stability")는 52.8%로, 게임 성능에 문제가 있는 것을 나타내지만, 인플레이 구간의 FPS 안정도(In play target FPS stability)는 96.68%로 실제 게임 성능은 문제가 없는 것을 알 수 있다.Referring to FIGS. 4 and 5 , the target FPS 404 is 40, and about half of the time during the game session in which the game application is in progress has elapsed on the waiting screen (for example, the waiting room screen 306). It can be seen that the FPS 402 is relatively stable in the shaded in-play section (for example, the screen 310 during battle). According to reference number 504, the FPS stability (total target FPS stability") of the entire game session is 52.8%, indicating that there is a problem with game performance, but the FPS stability of the in-play section (In play target FPS stability) is 52.8%. At 96.68%, it can be seen that there is no problem with actual game performance.
후술되는 실시예들은 어플리케이션의 성능 측정에 필요한 성능 데이터를 어플리케이션의 실제 플레이 도중에 수집된 데이터(즉 인플레이 데이터)와 나머지 데이터(즉 낫-인플레이 데이터)로 분류하고, 인플레이 데이터를 분석하여 보다 효과적으로 어플리케이션을 실행하기 위한 성능 파라미터를 결정할 수 있다.Embodiments to be described below classify performance data necessary for measuring the performance of an application into data collected during actual play of the application (ie, in-play data) and remaining data (ie, not-in-play data), and analyze the in-play data to more effectively implement the application. You can determine performance parameters to run.
도 6은 일 실시예에 따른 전자 장치(200)와 서버(230) 간의 데이터 흐름을 설명하기 위한 도면이다. 일 실시예에서 전자 장치(200)의 프로세서(210)와 서버(230)의 프로세서(234)는 후술되는 동작들 중 적어도 하나를 실행하도록 구성될 수 있다.6 is a diagram for explaining data flow between an electronic device 200 and a server 230 according to an exemplary embodiment. In one embodiment, the processor 210 of the electronic device 200 and the processor 234 of the server 230 may be configured to execute at least one of the operations described below.
도 6을 참조하면, 동작 602에서 전자 장치(200)의 프로세서(210)는 어플리케이션(예: 게임 어플리케이션)의 소스 코드를 이용하여 어플리케이션을 식별하고, 상기 소스 코드에 포함된 장면 정보를 획득할 수 있다. 장면 정보는 어플리케이션의 각 장면에 대한 의미를 나타낼 수 있으며, 상기 장면 정보는 전자 장치(200)에서 실행중인 어플리케이션의 현재 실행 데이터(예를 들어 실행 화면)가 인플레이 화면(예를 들어 전투 시작 화면(308), 전투중 화면(310) 또는 전투 종료 화면(312))에 대응하는지 혹은 낫-인플레이 화면(예를 들어 로딩 화면(302), 튜토리얼 화면(304), 또는 대기실 화면)에 대응하는지를 식별하는데 사용될 수 있다.Referring to FIG. 6 , in operation 602, the processor 210 of the electronic device 200 may identify the application using the source code of the application (eg, game application) and obtain scene information included in the source code. there is. The scene information may represent the meaning of each scene of an application, and the scene information includes current execution data (eg, an execution screen) of an application being executed in the electronic device 200, an in-play screen (eg, a battle start screen ( 308), to identify whether it corresponds to the in-battle screen 310 or the battle end screen 312) or to a sickle-in-play screen (eg, a loading screen 302, a tutorial screen 304, or a waiting room screen) can be used
일 실시예에서 장면 정보는 하기의 <표 1>과 같은 장면 식별자(scene_id)를 포함할 수 있다.In one embodiment, the scene information may include a scene identifier (scene_id) as shown in Table 1 below.
Scene_Id Scene_Id MeaningMeaning
00 Default sceneDefault scene
1One Game is startingGame is starting
22 Game is updatingGame is updating
33 User is signing inUser is signing in
44 Game is in roomGame is in room
55 Game scene is loading(User is loading)Game scene is loading (User is loading)
66 Game scene is loading(Other user is loading)Game scene is loading (Other user is loading)
70017001 Game is playing (Scene No 1. Talk with NPCs while performing quests )Game is playing (Scene No 1. Talk with NPCs while performing quests )
70027002 Game is playing (Scene No 2. The ongoing battle with the henchmen )Game is playing (Scene No 2. The ongoing battle with the henchmen)
70037003 Game is playing (Scene No 3. Battle with monsters in dungeons )Game is playing (Scene No 3. Battle with monsters in dungeons )
...... ......
88 Game is in watching modeGame is in watching mode
99 End of the gameEnd of the game
일 실시예에서 scene_id=0~6은 로딩 화면(302)을 의미할 수 있다. 일 실시예에서 scene_id=7xxx는 인플레이 화면들(예를 들어 전투 시작 화면(308), 전투중 화면(310) 및/또는 전투 종료 화면(312))을 의미할 수 있다. 동작 604에서 프로세서(210)(예를 들어 에이전트(216))는 서버(230)에게 상기 어플리케이션에 대한 메타데이터 요청을 전송하고 서버(230)의 메타데이터 데이터베이스(244)로부터 상기 어플리케이션에 대한 메타데이터를 수신할 수 있다. 상기 메타데이터는 상기 어플리케이션의 게임여부, 및 성능 파라미터의 기본값(예를 들어 제1 성능 파라미터)을 포함할 수 있다. In one embodiment, scene_id=0 to 6 may mean a loading screen 302 . In one embodiment, scene_id=7xxx may mean in-play screens (eg, a battle start screen 308, a battle screen 310, and/or a battle end screen 312). In operation 604, the processor 210 (for example, the agent 216) transmits a metadata request for the application to the server 230 and the metadata for the application from the metadata database 244 of the server 230. can receive The metadata may include whether or not the application is a game, and a default value of a performance parameter (eg, a first performance parameter).
동작 606에서 프로세서(210)(예를 들어 에이전트(216))는 상기 메타데이터로부터 획득한 제1 성능 파라미터를 성능 튜너(214)에게 전달함으로써, 성능 튜너(214)가 상기 제1 성능 파라미터를 상기 어플리케이션의 실행에 적용할 수 있도록 한다. 프로세서(210)(예를 들어 성능 튜너(214))는 상기 제1 성능 파라미터를 기반으로 상기 어플리케이션이 실행되는 동안(예를 들어 상기 어플리케이션의 세션이 유지되는 동안), 상기 어플리케이션의 실행과 관련된 성능 데이터를 주기적으로(예를 들어 초단위) 수집하여 전자 장치(200) 내의 저장소(예를 들어 성능 데이터베이스(218))에 저장할 수 있다. 일 실시예에서 상기 성능 데이터는 상기 어플리케이션의 FPS, 표면 온도(예를 들어 PST(predicted surface temperature)), GPU 부하, CPU 부하, 네트워크 I/O, 디스플레이 해상도, 주사율 또는 재생율, 화면 밝기, 또는 모바일 네트워크의 종류 중 적어도 하나를 포함할 수 있다. In operation 606, the processor 210 (for example, the agent 216) transfers the first performance parameter obtained from the metadata to the performance tuner 214, so that the performance tuner 214 determines the first performance parameter. It can be applied to the execution of the application. The processor 210 (eg, the performance tuner 214) determines performance related to execution of the application while the application is running (eg, while a session of the application is maintained) based on the first performance parameter. Data may be collected periodically (eg, every second) and stored in a storage (eg, performance database 218 ) within the electronic device 200 . In one embodiment, the performance data is the FPS of the application, surface temperature (eg, predicted surface temperature (PST)), GPU load, CPU load, network I/O, display resolution, refresh rate or refresh rate, screen brightness, or mobile It may include at least one of the types of networks.
일 실시예에서 프로세서(210)(예를 들어 성능 튜너(214)는 상기 어플리케이션이 실행되고 있는 세션별로 세그멘테이션된 성능 데이터(예를 들어 세그먼트 데이터)를 수집할 수 있다. 일 실시예에서 프로세서(210)(예를 들어 성능 튜너(214))는 전자 장치(200)에서 상기 어플리케이션이 실행되는 동안 상기 성능 데이터에 따라 전자 장치(200)의 성능을 조정(tune)할 수 있다.In one embodiment, the processor 210 (eg, performance tuner 214) may collect segmented performance data (eg, segment data) for each session in which the application is executed. In one embodiment, the processor 210 ) (eg, the performance tuner 214) may tune the performance of the electronic device 200 according to the performance data while the application is being executed in the electronic device 200 .
동작 608a에서 프로세서(210)(예를 들어 성능 튜너(214)는 에이전트(216)를 통해 서버(230)에게, 상기 성능 데이터(예를 들어 세그먼트 데이터)를 전송할 수 있다. 상기 성능 데이터는 서버(230)의 프로세서(234)(예를 들어 성능 데이터 수집 모듈(236))에 의해 수신될 수 있다. 동작 608b에서 프로세서(234)(예를 들어 성능 데이터 수집 모듈(236)은 상기 성능 데이터를 서버(230)의 메모리(242)(예를 들어 성능 데이터베이스(246))에 저장할 수 있다. 일 실시예에서 프로세서(234)는 동일한 어플리케이션을 실행하는 다수의 전자 장치들(예를 들어 전자 장치(200) 및 다른 전자 장치를 포함함)로부터 수신되는 성능 데이터를 성능 데이터베이스(246)에 저장할 수 있다. 일 실시예에서 다수의 전자 장치들은 상기 어플리케이션을 실행하는 동안 수집된 성능 데이터를 주기적(예를 들어 초단위)으로 서버(230)에게 보고할 수 있다.In operation 608a, the processor 210 (eg, the performance tuner 214) transmits the performance data (eg, segment data) to the server 230 through the agent 216. The performance data is transmitted to the server ( may be received by the processor 234 (eg, performance data collection module 236) of 230. In operation 608b, the processor 234 (eg, performance data collection module 236) sends the performance data to a server. memory 242 (e.g., performance database 246) of 230. In one embodiment, processor 234 may be used by multiple electronic devices (e.g., electronic device 200) running the same application. ) and other electronic devices) may be stored in the performance database 246. In one embodiment, a plurality of electronic devices periodically (eg, It can be reported to the server 230 in units of seconds).
하기 <표 2>는 서버(230)의 성능 데이터베이스(246)에 저장되는 성능 데이터의 예시를 나타낸 것이다.Table 2 below shows examples of performance data stored in the performance database 246 of the server 230 .
No.No. UuidUuid reporting_
time
reporting_
time
durationduration avg_
fps
avg_
fps
median_fpsmedian_fps fps_
stability
fps_
stability
target_
fps_
stability
target_
fps_
stability
play_
avg_
fps
play_
avg_
fps
play_
median_
fps
play_
median_
fps
play_
fps_
stability
play_
fps_
stability
00 ~5d12e4e~5d12e4e ~775628~775628 833833 51.8451.84 6060 76.5976.59 86.8886.88 58.558.5 6060 96.2296.22
1One ~150da6a~150da6a ~868974~868974 643643 52.5252.52 5959 81.7581.75 80.7580.75 47.8647.86 59.559.5 64.4464.44
22 ~be64e44~be64e44 ~156586~156586 22072207 31.3731.37 3030 84.0184.01 84.0484.04 30.330.3 3030 99.8599.85
33 ~d618a9a~d618a9a ~584764~584764 897897 27.0327.03 3030 85.8385.83 85.9285.92 30.2730.27 3030 99.7999.79
44 ~f55a3d0~f55a3d0 ~046929~046929 10511051 26.7126.71 3030 87.4587.45 87.5887.58 30.2930.29 3030 99.7499.74
55 ~72c7f5d~72c7f5d ~003475~003475 887887 30.2230.22 3030 90.4390.43 90.5290.52 30.2730.27 3030 99.8199.81
66 ~485e6cc~485e6cc ~610497~610497 14391439 28.728.7 3030 91.9391.93 92.0692.06 29.6629.66 3030 96.4496.44
77 ~f5f3756~f5f3756 ~053984~053984 911911 28.4928.49 3030 91.9991.99 92.0792.07 30.2930.29 3030 99.6999.69
88 ~5f5df53~5f5df53 ~619821~619821 779779 56.0456.04 6060 92.0392.03 92.6392.63 58.7258.72 6060 98.2498.24
99 ~deab9ba~deab9ba ~852920~852920 19991999 5757 6060 92.292.2 92.2992.29 59.7359.73 6060 99.7999.79
<표 2>의 예에서 성능 데이터는 전자 장치(예를 들어 전자 장치(200)) 또는 사용자를 식별하는 Uuid(universally unique identifier), 보고 시간을 나타내는 reporting_time, 데이터 수집 기간을 나타내는 duration 및 어플리케이션의 실행과 연관된 복수의 요소들을 포함할 수 있다. In the example of <Table 2>, the performance data includes a universally unique identifier (Uuid) for identifying an electronic device (for example, the electronic device 200) or a user, reporting_time indicating reporting time, duration indicating a data collection period, and execution of an application. It may include a plurality of elements associated with.
일 실시예에서 상기 요소들은 하기의 값들 중 적어도 하나를 포함할 수 있으며 본 문서에 언급되지 않은 다양한 값들을 더 포함할 수 있다.In one embodiment, the elements may include at least one of the following values and may further include various values not mentioned in this document.
- duration: 데이터 수집 기간- duration: data collection period
- avg_fps: 평균 FPS- avg_fps: Average FPS
- median_fps: FPS의 중위값- median_fps: median of FPS
- fps_stability: FPS 안정도- fps_stability: FPS stability
- target_fps_stability: FPS 안정도에 대한 타겟값- target_fps_stability: Target value for FPS stability
- play_avg_fps: 플레이되는 동안의 평균 FPS- play_avg_fps: Average FPS while being played
- play_median_fps: 플레이되는 동안의 FPS 중위값- play_median_fps: Median FPS during play
- play_fps_stability : 플레이되는 동안의 FPS 안정도- play_fps_stability : FPS stability while playing
- play_target_fps_stability: 플레이되는 동안의 FPS 안정도에 대한 타겟값- play_target_fps_stability: Target value for FPS stability during play
동작 610에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터베이스(246)로부터 성능 데이터를 읽어낼 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 주어진 조건(예를 들어 주기적, 사용자/운영자의 요청, 또는 어플리케이션의 설치/실행/종료)에 따라 성능 데이터의 분류가 필요하다고 판단되는 시점에서 상기 어플리케이션과 관련된 상기 성능 데이터를 읽어낼 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 성능 데이터가 전자 장치(200)에서의 인플레이 구간에 대응하는지의 여부를 판단하고, 만일 인플레이 구간에 대응하는 경우 인플레이 데이터로 판별하고, 그렇지 않은 경우 낫-인플레이 데이터로 판별할 수 있다.At operation 610, processor 234 (eg, data classification module 238) may read performance data from performance database 246. In one embodiment, the processor 234 (eg, data classification module 238) classifies the performance data according to given conditions (eg, periodicity, user/operator request, or application installation/running/exit). When it is determined necessary, the performance data related to the application may be read. In one embodiment, processor 234 (eg, data classification module 238) determines whether the performance data corresponds to an in-play interval in electronic device 200, and if so, in-play It can be determined by data, and if not, it can be determined by not-in-play data.
하기의 <표 3>은 서버(230)의 성능 데이터베이스(246)에 저장되는 성능 데이터 중 사용자(예를 들어 전자 장치(200))로부터 보고된 성능 데이터의 예시를 나타낸 것이다.Table 3 below shows examples of performance data reported from a user (eg, the electronic device 200) among performance data stored in the performance database 246 of the server 230.
No.No. UuidUuid scene_
target_
fps
scene_
target_
fps
scene_
id
scene_
id
scene_
desc
scene_
desc
scene_original_datascene_original_data
00 ~be64e44~be64e44 NaNNaN NaNNaN NaNNaN ~41792:initSdk()~41792:initSdk()
1One ~be64e44~be64e44 NaNNaN 1One game is startinggame is starting ~42412:updateGameInfo(){"sceneId":1, "fps":29, "0":"0"}~42412:updateGameInfo(){"sceneId":1, "fps":29, "0":"0"}
22 ~be64e44~be64e44 NaNNaN NaNNaN NaNNaN ~42429:SsrmControl.setPerformanceLevel(){"perfLevel":3}~42429:SsrmControl.setPerformanceLevel(){"perfLevel":3}
33 ~be64e44~be64e44 NaNNaN 22 game is updatinggame is updating ~44454:updateGameInfo(){"sceneId":2}~44454:updateGameInfo(){"sceneId":2}
44 ~be64e44~be64e44 NaNNaN 33 game landing and loadinggame landing and loading ~49291:updateGameInfo(){"sceneId":3}~49291:updateGameInfo(){"sceneId":3}
55 ~be64e44~be64e44 6060 NaNNaN NaNNaN ~54970:updateGameInfo(){"7":"60"}~54970:updateGameInfo(){"7":"60"}
66 ~be64e44~be64e44 NaNNaN 44 game hallgame hall ~55976:updateGameInfo(){"1":"1.35.1","2":"11","sceneId":4,"8":"9","9":"2","51":"19939", ...}~55976:updateGameInfo(){"1":"1.35.1","2":"11","sceneId":4,"8":"9","9":"2","51" :"19939", ...}
77 ~be64e44~be64e44 NaNNaN NaNNaN NaNNaN ~59295:SsrmControl.setPerformanceLevel(){"perfLevel":3}~59295:SsrmControl.setPerformanceLevel(){"perfLevel":3}
88 ~be64e44~be64e44 NaNNaN 55 scene loading (own player side)scene loading (own player side) ~66680:updateGameInfo(){sceneId":5}~66680:updateGameInfo(){sceneId":5}
99 ~be64e44~be64e44 NaNNaN NaNNaN NaNNaN ~66692:SsrmControl.setPerformanceLevel(){"perfLevel":3}~66692:SsrmControl.setPerformanceLevel(){"perfLevel":3}
1010 ~be64e44~be64e44 NaNNaN NaNNaN NaNNaN ~76682:SsrmControl.setPerformanceLevel(){"perfLevel":3}~76682:SsrmControl.setPerformanceLevel(){"perfLevel":3}
1111 ~be64e44~be64e44 NaNNaN 66 scene loading (waiting other player side)scene loading (waiting other player side) ~89276:updateGameInfo(){sceneId":6}~89276:updateGameInfo(){sceneId":6}
1212 ~be64e44~be64e44 NaNNaN 77 playing gameplaying game ~16477:updateGameInfo(){sceneId":7}~16477:updateGameInfo(){sceneId":7}
여기서 NaN은 숫자가 아님(Not a Number)을 의미한다. 일 실시예에서 전자 장치(200)에 의해 보고된 성능 데이터는 Uuid, reporting_time, 또는 scene_id 중 적어도 하나를 키(key)로 사용하여 성능 데이터베이스(246)에 저장될 수 있다.Here, NaN means Not a Number. In an embodiment, the performance data reported by the electronic device 200 may be stored in the performance database 246 using at least one of Uuid, reporting_time, and scene_id as a key.
일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터의 각 특징값(예를 들어 scene_id, 또는 scene_original_data)을 기반으로 인플레이 데이터 또는 낫-인플레이 데이터를 분류할 수 있다. 프로세서(234)(예를 들어 데이터 분류 모듈(238))의 데이터 분류에 대한 예시적인 실시예들은 도 11 내지 도 27을 참조하여 후술될 것이다.In one embodiment, processor 234 (eg, data classification module 238) may classify in-play data or not-in-play data based on each feature value (eg, scene_id or scene_original_data) of the performance data. . Exemplary embodiments of data classification by processor 234 (eg, data classification module 238) will be described below with reference to FIGS. 11-27.
일 실시예에서 데이터 분류 모듈(238)은 특징값 추출 모듈(620)과 분류 모듈(622)을 포함할 수 있다. 프로세서(234)(예를 들어 특징값 추출 모듈(238))는 성능 데이터베이스(246)로부터 읽어낸 성능 데이터로부터 인플레이 구간의 식별에 필요한 특징값들을 추출할 수 있다. 상기 특징값들은 성능 데이터에 포함되는 복수의 요소들로부터 얻어낼 수 있는 것으로서, 일 예로 상기 요소들 중 적어도 하나에 대한 요약(또는 가공) 정보일 수 있다. 프로세서(234)(예를 들어 분류 모듈(622))은 기계 학습 모델에 의해 상기 특징값들을 해석하고 상기 특징값들에 근거하여 상기 성능 데이터가 인플레이 구간에 대응하는지의 여부를 판단할 수 있다.In one embodiment, the data classification module 238 may include a feature value extraction module 620 and a classification module 622 . The processor 234 (eg, the feature value extraction module 238 ) may extract feature values necessary for identifying an in-play section from performance data read from the performance database 246 . The feature values may be obtained from a plurality of elements included in the performance data, and may be, for example, summary (or processed) information on at least one of the elements. The processor 234 (eg, the classification module 622) may interpret the feature values by a machine learning model and determine whether the performance data corresponds to an in-play section based on the feature values.
동작 612에서 프로세서(234)(예를 들어 성능 분석 모듈(240))은 성능 데이터베이스(246)로부터 성능 데이터를 읽어낼 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 주어진 조건(예를 들어 주기적, 사용자/운영자의 요청 또는 상기 어플리케이션의 실행/업데이트/종료)에 따라 성능 데이터의 분석 및/또는 성능 파라미터의 최적화가 요구된다고 판단되는 시점에서 상기 어플리케이션과 관련된 상기 성능 데이터를 읽어낼 수 있다. In operation 612, the processor 234 (eg, the performance analysis module 240) may read performance data from the performance database 246. In one embodiment, the processor 234 (eg, data classification module 238) analyzes and analyzes performance data according to given conditions (eg, periodic, user/operator request, or execution/update/termination of the application). / Or the performance data related to the application may be read when it is determined that optimization of performance parameters is required.
동작 614에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 분류 동작의 결과 판별된 인플레이 구간에 대응하는 성능 데이터(예를 들어 인플레이 데이터)를 성능 분석 모듈(240)로 전달할 수 있다. 프로세서(234)(예를 들어 성능 분석 모듈(240))는 주어진 조건(예를 들어 주기적 또는 사용자/운영자의 요청)에 따라, 데이터 분류 모듈(238)로부터 제공된 인플레이 데이터 및/또는 성능 데이터베이스(246)로부터 읽어낸 전체 성능 데이터를 분석하고 전자 장치(200)를 위해 최적화된 성능 파라미터를 산출할 수 있다.In operation 614, the processor 234 (for example, the data classification module 238) may transfer performance data (for example, in-play data) corresponding to the in-play section determined as a result of the classification operation to the performance analysis module 240. there is. The processor 234 (eg, the performance analysis module 240) may perform in-play data provided from the data classification module 238 and/or the performance database 246 according to given conditions (eg, periodic or requested by a user/operator). ) may be analyzed and performance parameters optimized for the electronic device 200 may be calculated.
일 실시예에서 성능 분석 모듈(240)은 분석 모듈(624) 및 파라미터 생성 모듈(626)을 포함할 수 있다. 프로세서(234)(예를 들어 분석 모듈(624))은 어플리케이션의 각 세션에 대응된 인플레이 데이터 및/또는 성능 데이터를 분석할 수 있고, 프로세서(234)(예를 들어 파라미터 생성 모듈(626))는 전자 장치(200)에서 어플리케이션의 실행 성능을 높일 수 있는 값을 가지는 성능 파라미터(예를 들어 제2 성능 파라미터)를 계산할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 파라미터 생성 모듈(626))는 데이터 분석에 따라 어플리케이션의 실행 성능을 높일 수 있는 CPU 클럭 또는 GPU 클럭의 값 및/또는 프로세서 사용량 제한을 포함하는 제2 성능 파라미터를 결정할 수 있다. In one embodiment, the performance analysis module 240 may include an analysis module 624 and a parameter generation module 626 . The processor 234 (eg, the analysis module 624) may analyze the in-play data and/or performance data corresponding to each session of the application, and the processor 234 (eg, the parameter generation module 626) may calculate a performance parameter (eg, a second performance parameter) having a value capable of increasing execution performance of an application in the electronic device 200 . In one embodiment, the processor 234 (eg, the parameter generation module 626) includes a CPU clock or GPU clock value and/or processor usage limit that can increase the execution performance of the application according to data analysis. performance parameters can be determined.
동작 616에서 프로세서(234)(예를 들어 파라미터 생성 모듈(626))는 상기 결정된 제2 성능 파라미터를 파라미터 데이터베이스(248)에 저장할 수 있다.In operation 616 , the processor 234 (eg, the parameter generation module 626 ) may store the determined second performance parameter in the parameter database 248 .
동작 618에서 프로세서(234)는 주어진 조건(예를 들어 전자 장치(200)에서 어플리케이션의 설치/실행/종료, 사용자/운영자의 요청, 또는 주기적)에 따라 파라미터 데이터베이스(248)에 저장된 성능 파라미터(예를 들어 제2 성능 파라미터)를 전자 장치(200)로 제공(예를 들어 배포)할 수 있다. 일 실시예에서 전자 장치(200)의 프로세서(210)(예를 들어 성능 튜너(214))는 상기 제2 성능 파라미터를 서버(230)로부터 수신하고 상기 제2 성능 파라미터를 상기 어플리케이션의 실행에 적용할 수 있다. 일 실시예에서 프로세서(210)(예를 들어 성능 튜너(214))는 상기 어플리케이션이 실행되는 동안 상기 제2 성능 파라미터에 의해 지정되는 클럭 및/또는 사용량 제한에 따라 동작할 수 있다.In operation 618, the processor 234 performs performance parameters stored in the parameter database 248 (eg, installation/execution/termination of an application in the electronic device 200, user/operator's request, or periodicity) under given conditions (eg, the electronic device 200). For example, the second performance parameter) may be provided (eg, distributed) to the electronic device 200 . In one embodiment, the processor 210 (eg, the performance tuner 214) of the electronic device 200 receives the second performance parameter from the server 230 and applies the second performance parameter to the execution of the application. can do. In one embodiment, the processor 210 (eg, the performance tuner 214) may operate according to a clock and/or usage limit specified by the second performance parameter while the application is running.
도 7은 일 실시예에 따라 전자 장치(200)의 성능 개선을 위한 절차를 설명하기 위한 신호 흐름도이다. 여기에서는 전자 장치(200)의 프로세서(210)와 서버(230)의 프로세서(234)에 포함되는 모듈들 간의 신호 흐름을 예시하였다.7 is a signal flow diagram illustrating a procedure for improving the performance of the electronic device 200 according to an embodiment. Here, a signal flow between modules included in the processor 210 of the electronic device 200 and the processor 234 of the server 230 is illustrated.
도 7을 참조하면, 동작 702에서 전자 장치(200)의 프로세서(210)(예를 들어 성능 튜너(214))는 어플리케이션(예: 게임 어플리케이션)을 설치하면서 상기 어플리케이션의 소스 코드에 포함된 장면 정보를 획득할 수 있다. 동작 704에서 프로세서(210)(예를 들어 에이전트(216))는 상기 설치된 어플리케이션에 대한 질의를 위해 메타데이터 요청을 서버(230)로 전송하고, 상기 질의에 대한 응답으로 서버(230)(예를 들어 메타데이터 데이터베이스(244))로부터 상기 어플리케이션과 관련된 메타데이터를 수신할 수 있다. 일 실시예에서 상기 메타데이터는 상기 어플리케이션의 실행 성능을 개선하기 위한 데이터 수집이 필요함을 나타내는 정보(예를 들어 게임임을 나타내는 정보)와, 상기 어플리케이션의 실행에 적용될 성능 파라미터의 기본값(예를 들어 제1 성능 파라미터)을 포함할 수 있다.Referring to FIG. 7 , in operation 702, the processor 210 (for example, the performance tuner 214) of the electronic device 200 installs an application (eg, a game application) and extracts scene information included in the source code of the application. can be obtained. In operation 704, the processor 210 (for example, the agent 216) transmits a metadata request to the server 230 in order to query the installed application, and in response to the query, the server 230 (for example, the agent 216) For example, metadata related to the application may be received from the metadata database 244 . In one embodiment, the metadata includes information indicating that data collection is necessary to improve execution performance of the application (eg, information indicating that it is a game), and default values of performance parameters to be applied to execution of the application (eg, 1 performance parameters).
동작 706에서 프로세서(210)(예를 들어 에이전트(216))는 상기 제1 성능 파라미터를 성능 튜너(214)로 전달하여 상기 어플리케이션의 실행에 적용하도록 할 수 있다. 프로세서(210)(예를 들어 성능 튜너(214))는 상기 제1 성능 파라미터를 적용하여 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 프로세서(210)(예를 들어 에이전트(216))는 상기 제1 성능 파라미터를 메타데이터로부터 획득하는 대신, 상기 어플리케이션의 실행 이전에 서버(230)(예를 들어 성능 데이터베이스(246))로부터 제공받을 수 있다.In operation 706, the processor 210 (eg, the agent 216) transfers the first performance parameter to the performance tuner 214 so that it can be applied to execution of the application. The processor 210 (eg, the performance tuner 214) may execute the application by applying the first performance parameter. In one embodiment, instead of obtaining the first performance parameter from metadata, processor 210 (e.g., agent 216) obtains the first performance parameter from server 230 (e.g., performance database 246) prior to execution of the application. ) can be obtained from
동작 708a에서 프로세서(210)(예를 들어 성능 튜너(216))는 상기 어플리케이션이 상기 제1 성능 파라미터에 근거하여 실행되는 동안 상기 어플리케이션의 실행과 관련된 성능 데이터를 수집할 수 있다. 일 실시예에서 프로세서(210)(예를 들어 성능 튜너(216))는 상기 어플리케이션이 실행되는 동안 상기 어플리케이션의 실행과 관련된 로우 데이터를 수집하고, 상기 로우 데이터의 요약 또는 가공을 통해 상기 성능 데이터를 구성할 수 있다. 일 실시예에서 상기 성능 데이터는 예를 들어 주기적으로 수집될 수 있다. 동작 710a에서 프로세서(210)(예를 들어 성능 튜너(214))는 상기 성능 데이터(예를 들어 제1 성능 데이터)를 에이전트(216)를 통해 서버(230)로 보고할 수 있다. 서버(230)의 프로세서(234)(예를 들어 성능 데이터 수집 모듈(236))는 상기 성능 데이터를 성능 데이터베이스(246)에 저장할 수 있다.In operation 708a, the processor 210 (eg, the performance tuner 216) may collect performance data related to execution of the application while the application is being executed based on the first performance parameter. In one embodiment, the processor 210 (eg, the performance tuner 216) collects raw data related to the execution of the application while the application is running, and summarizes or processes the raw data to obtain the performance data. can be configured. In one embodiment, the performance data may be collected periodically, for example. In operation 710a, the processor 210 (eg, performance tuner 214) may report the performance data (eg, first performance data) to the server 230 through the agent 216. Processor 234 (eg, performance data collection module 236 ) of server 230 may store the performance data in performance database 246 .
동작 708b에서 프로세서(210)(예를 들어 성능 튜너(216))는 상기 어플리케이션이 상기 제1 성능 파라미터에 근거하여 실행되는 동안 상기 어플리케이션의 실행과 관련된 성능 데이터를 수집할 수 있다. 동작 710b에서 프로세서(210)(예를 들어 성능 튜너(214))는 상기 성능 데이터(예를 들어 제2 성능 데이터)를 에이전트(216)를 통해 서버(230)로 보고할 수 있다. 일 실시예에서 동작 708a와 동작 710a 및/또는 동작 708b와 동작 710b에 따른 상기 성능 데이터의 수집 및 보고는 상기 어플리케이션이 실행되는 동안(예를 들어 상기 어플리케이션의 세션이 유지되는 동안) 주기적으로 반복될 수 있다.In operation 708b, the processor 210 (eg, the performance tuner 216) may collect performance data related to execution of the application while the application is being executed based on the first performance parameter. In operation 710b, the processor 210 (eg, performance tuner 214) may report the performance data (eg, second performance data) to the server 230 through the agent 216. In one embodiment, the collection and reporting of the performance data according to operations 708a and 710a and/or operations 708b and 710b may be repeated periodically while the application is running (eg, while a session of the application is maintained). can
동작 712에서 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터베이스(246)로부터 성능 데이터를 읽어낼 수 있다. 동작 714에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 성능 데이터를 기반으로 상기 성능 데이터가 인플레이 구간에 대응하는지의 여부를 판단할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 성능 데이터로부터 인플레이 구간의 판별에 사용되기 위한 특징값들을 추출하고, 상기 특징값들을 기반으로 상기 성능 데이터가 인플레이 구간에 대응하는 인플레이 데이터인지를 판단할 수 있다. 상기 특징값들의 예시들에 대한 설명은 도 11 내지 도 27을 참조하여 후술될 것이다.At operation 712 , processor 234 (eg, data classification module 238 ) of server 230 may read performance data from performance database 246 . In operation 714, the processor 234 (eg, the data classification module 238) may determine whether the performance data corresponds to an in-play section based on the performance data. In one embodiment, the processor 234 (for example, the data classification module 238) extracts feature values to be used for determining an in-play section from the performance data, and the performance data is converted to the in-play section based on the feature values. It can be determined whether it is in-play data corresponding to . Examples of the feature values will be described later with reference to FIGS. 11 to 27 .
동작 716에서 프로세서(234)(예를 들어 성능 분석 모듈(240))는 상기 어플리케이션의 성능을 향상시키기 위한 분석 동작을 수행하기 위해 성능 데이터베이스(246)에 저장된 성능 데이터를 읽어낼 수 있다. 일 예로서 상기 성능 데이터베이스(246)로부터 제공되는 성능 데이터는 전자 장치(200)에서 상기 어플리케이션이 실행되는 세션의 전체 구간 동안에 수집된 것일 수 있다.In operation 716, the processor 234 (eg, the performance analysis module 240) may read the performance data stored in the performance database 246 to perform an analysis operation to improve the performance of the application. As an example, performance data provided from the performance database 246 may be collected during an entire section of a session in which the application is executed in the electronic device 200 .
동작 718에서 프로세서(234)(예를 들어 성능 분석 모듈(240))는 상기 어플리케이션의 성능을 향상시키기 위한 분석 동작을 수행하기 위해 데이터 분류 모듈(238)에 의해 판단된 인플레이 데이터를 제공받을 수 있다. 상기 인플레이 데이터는 전체 세션 도중에 수집된 성능 데이터 중, 전자 장치(200)에서 어플리케이션이 실제로 플레이되는 구간(인플레이 구간)에 수집된 것에 해당할 수 있다.In operation 718, the processor 234 (eg, the performance analysis module 240) may receive the in-play data determined by the data classification module 238 to perform an analysis operation for improving the performance of the application. . Among the performance data collected during the entire session, the in-play data may correspond to data collected during a section (in-play section) in which an application is actually played in the electronic device 200 .
동작 720에서 프로세서(234)(예를 들어 성능 분석 모듈(240))는 상기 동작 716의 성능 데이터 및/또는 상기 동작 718의 인플레이 데이터를 기반으로 분석 동작을 수행하여 전자 장치(200)에서 상기 어플리케이션의 실행 성능을 향상시킬 수 있는 성능 파라미터(예를 들어 제2 성능 파라미터)를 계산 및 생성할 수 있다. In operation 720, the processor 234 (eg, the performance analysis module 240) performs an analysis operation based on the performance data of operation 716 and/or the in-play data of operation 718 so that the application in the electronic device 200 A performance parameter (eg, a second performance parameter) capable of improving execution performance of may be calculated and generated.
동작 722에서 프로세서(234)(예를 들어 성능 분석 모듈(240))는 상기 제2 성능 파라미터를 메모리(242)(예를 들어 파라미터 데이터베이스(248))에 저장할 수 있다.In operation 722, the processor 234 (eg, the performance analysis module 240) may store the second performance parameter in the memory 242 (eg, the parameter database 248).
동작 722에서 프로세서(234)(예를 들어 성능 분석 모듈(240))는 상기 제2 성능 파라미터를 메모리(242)(예를 들어 파라미터 데이터베이스(248))로부터 읽어내어 전자 장치(200)로 전달할 수 있다. 상기 제2 성능 파라미터는 전자 장치(200)의 에이전트(216)를 통해 성능 튜너(214)로 제공될 수 있으며, 프로세서(210)(예를 들어 성능 튜너(214))는 상기 제2 성능 파라미터를 적용하여 상기 어플리케이션을 실행할 수 있다. 또는 프로세서(210)(예를 들어 성능 튜너(214))는 현재 실행중인 상기 어플리케이션에 상기 제2 성능 파라미터를 적용할 수 있다.In operation 722, the processor 234 (eg, the performance analysis module 240) may read the second performance parameter from the memory 242 (eg, the parameter database 248) and transmit it to the electronic device 200. there is. The second performance parameter may be provided to the performance tuner 214 through the agent 216 of the electronic device 200, and the processor 210 (eg, the performance tuner 214) may set the second performance parameter By applying, the application can be executed. Alternatively, the processor 210 (eg, the performance tuner 214) may apply the second performance parameter to the application currently being executed.
도 8은 일 실시예에 따라 전자 장치(200)에서 성능 데이터를 보고하는 절차를 설명하기 위한 흐름도이다. 후술되는 동작들 중 적어도 하나는 전자 장치(200)의 프로세서(210)에 의해 실행될 수 있다.8 is a flowchart illustrating a procedure for reporting performance data in the electronic device 200 according to an exemplary embodiment. At least one of the operations described below may be executed by the processor 210 of the electronic device 200 .
도 8을 참조하면, 동작 802에서 프로세서(210)는 어플리케이션의 실행 요청(예를 들어 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들어 상기 어플리케이션은 게임 어플리케이션 또는 성능 데이터의 수집과 성능 최적화가 요구되는 어플리케이션일 수 있다.Referring to FIG. 8 , in operation 802, the processor 210 may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the application may be a game application or an application requiring performance data collection and performance optimization.
동작 804에서 프로세서(210)는 상기 실행 요청에 응답하여 통신 모듈(208)을 통해 서버(230)에게 상기 어플리케이션이 지정된 종류(예를 들어 게임 어플리케이션)인지를 확인하기 위한 질의를 포함하는 메타데이터 요청을 전송하고 상기 메타데이터 요청에 따라 서버(230)로부터 상기 어플리케이션과 관련된 메타데이터를 수신할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 실행 요청에 따라 또는 상기 어플리케이션의 설치시에 상기 메타데이터를 서버(230)로부터 획득할 수 있다.In operation 804, in response to the execution request, the processor 210 requests the server 230 through the communication module 208 for metadata including an inquiry to determine whether the application is of a designated type (eg, a game application). and may receive metadata related to the application from the server 230 according to the metadata request. In one embodiment, the processor 210 may obtain the metadata from the server 230 according to a request for execution of the application or upon installation of the application.
동작 806에서 프로세서(210)는 상기 메타데이터를 기반으로 상기 어플리케이션이 지정된 종류, 즉 게임 어플리케이션인지를 판단할 수 있다. 만일 게임 어플리케이션이 아니면 동작 820에서 프로세서(210)는 통상의 방식에 따라 상기 어플리케이션을 실행할 수 있다. 반면 게임 어플리케이션이면 프로세서(210)는 동작 808로 진행할 수 있다.In operation 806, the processor 210 may determine whether the application is a designated type, that is, a game application, based on the metadata. If it is not a game application, in operation 820, the processor 210 may execute the application in a conventional manner. On the other hand, if it is a game application, the processor 210 may proceed to operation 808.
동작 808에서 프로세서(210)는 상기 메타데이터에 포함된 제1 성능 파라미터를 식별하고 상기 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행할 수 있다. 일 예로서 상기 제1 성능 파라미터는 프로세서 클럭(예를 들어 CPU 클럭 및/또는 GPU 클럭)을 포함할 수 있다. In operation 808, the processor 210 may identify a first performance parameter included in the metadata and execute the application based on the first performance parameter. As an example, the first performance parameter may include a processor clock (eg, CPU clock and/or GPU clock).
동작 810에서 프로세서(210)는 상기 제1 성능 파라미터에 기반하여 상기 어플리케이션이 실행되는 동안 주어진 조건(예를 들어 주기적으로)에 따라 상기 어플리케이션의 실행과 관련된 성능 데이터를 수집할 수 있다. 상기 성능 데이터는 상기 어플리케이션의 FPS, 전자 장치(201)의 온도(예: CPU/GPU 온도 또는 표면 온도), 프로세서(210)(예: CPU 또는 GPU)의 부하, 네트워크 입출력(I/O), 디스플레이(202)의 해상도, 디스플레이(222)의 주사율 또는 재생율, 디스플레이(202)의 화면 밝기, 및/또는 전자 장치(200)가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다. In operation 810, the processor 210 may collect performance data related to the execution of the application according to a given condition (eg, periodically) while the application is being executed based on the first performance parameter. The performance data is the FPS of the application, the temperature of the electronic device 201 (eg CPU/GPU temperature or surface temperature), the load of the processor 210 (eg CPU or GPU), network input/output (I/O), It may include at least one of the resolution of the display 202, the refresh rate or refresh rate of the display 222, the screen brightness of the display 202, and/or the type of network to which the electronic device 200 is connected.
동작 812에서 프로세서(210)는 주어진 조건(예를 들어 주기적으로)에 따라 상기 성능 데이터를 서버(230)로 보고할 수 있다. 일 실시예에서 동작 810 및 동작 812는 상기 어플리케이션이 실행중인 동안 적어도 한번 반복적으로 수행될 수 있다.In operation 812, the processor 210 may report the performance data to the server 230 according to a given condition (eg, periodically). In one embodiment, operations 810 and 812 may be repeatedly performed at least once while the application is running.
동작 814에서 프로세서(210)는 상기 보고된 성능 데이터 중 인플레이 구간의 성능 데이터(예를 들어 인플레이 데이터)에 기반하여 산출된 제2 성능 파라미터를 획득할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션이 실행중인 동안 상기 성능 데이터를 수집하고 보고하는 주기보다 더 긴 주기에 따라 또는 주어진 조건에 따라 상기 제2 성능 파라미터를 서버(230)로부터 수신할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 종료시, 또는 다음 실행시에 상기 제2 성능 파라미터를 서버(230)로부터 수신할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션이 실행중인 동안 보고된 상기 성능 데이터를 기반으로 하여 상기 제2 성능 파라미터를 직접 또는 서버(230)의 도움을 받아 획득할 수 있다.In operation 814, the processor 210 may obtain a second performance parameter calculated based on performance data (eg, in-play data) of an in-play section among the reported performance data. In one embodiment, while the application is running, the processor 210 may receive the second performance parameter from the server 230 according to a period longer than a period for collecting and reporting the performance data or according to a given condition. . In an embodiment, the processor 210 may receive the second performance parameter from the server 230 when the application is terminated or executed next. In an embodiment, the processor 210 may obtain the second performance parameter directly or with the help of the server 230 based on the performance data reported while the application is running.
동작 816에서 프로세서(210)는 상기 제2 성능 파라미터를 적용하여 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 프로세서(210)는 상기 제2 성능 파라미터에 포함된 프로세서 클럭(예를 들어 CPU 클럭 및/또는 GPU 클럭)에 따라 동작하면서 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션을 실행하는 동안 상기 제2 성능 파라미터를 획득하고 상기 제2 성능 파라미터를 적용할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 다음 실행시 상기 제2 성능 파라미터를 적용할 수 있다.In operation 816, the processor 210 may execute the application by applying the second performance parameter. In one embodiment, the processor 210 may execute the application while operating according to the processor clock (eg, CPU clock and/or GPU clock) included in the second performance parameter. In an embodiment, the processor 210 may acquire the second performance parameter and apply the second performance parameter while executing the application. In one embodiment, the processor 210 may apply the second performance parameter to the next execution of the application.
동작 818에서 프로세서(210)는 상기 어플리케이션의 종료 요청(예를 들어 사용자 입력 또는 지정된 조건에 따른 자동 종료 요청)이 수신되는지를 판단할 수 있다. 만일 상기 어플리케이션이 종료되지 않는 경우 프로세서(210)는 동작 810으로 복귀하여 이후 동작들(예를 들어 동작 810, 812, 814, 및 816)을 반복할 수 있다. 반면 상기 어플리케이션의 종료 요청이 수신된 경우 프로세서(210)는 상기 어플리케이션의 실행을 종료할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 종료시 상기 제2 성능 파라미터에 따른 성능 데이터를 서버(230)로 보고할 수 있다. In operation 818, the processor 210 may determine whether a request to terminate the application (eg, a user input or an automatic termination request according to a specified condition) is received. If the application does not end, the processor 210 may return to operation 810 and repeat subsequent operations (eg, operations 810, 812, 814, and 816). On the other hand, when a request to terminate the application is received, the processor 210 may terminate the execution of the application. In one embodiment, the processor 210 may report performance data according to the second performance parameter to the server 230 when the application is terminated.
도 9는 일 실시예에 따라 서버(230)에서 인플레이 구간을 식별하는 절차를 설명하기 위한 흐름도이다. 후술되는 동작들 중 적어도 하나는 서버(230)의 프로세서(234)에 의해 실행될 수 있다.9 is a flowchart illustrating a procedure of identifying an in-play section in the server 230 according to an embodiment. At least one of the operations described below may be executed by the processor 234 of the server 230 .
도 9를 참조하면, 동작 902에서 프로세서(234)는 전자 장치(200)로부터 어플리케이션에 대한 질의를 포함하는 메타데이터 요청을 수신할 수 있다. 상기 메타데이터 요청에 응답하여 프로세서(234)는 상기 어플리케이션이 게임 어플리케이션임을 나타내는 정보와 상기 어플리케이션을 위한 성능 파라미터의 기본값(예를 들어 제1 성능 파라미터)을 포함하는 메타데이터를 전자 장치(200)로 전달할 수 있다.Referring to FIG. 9 , in operation 902, the processor 234 may receive a metadata request including a query about an application from the electronic device 200. In response to the metadata request, the processor 234 transmits metadata including information indicating that the application is a game application and default values of performance parameters (eg, a first performance parameter) for the application to the electronic device 200 . can be conveyed
동작 904에서 프로세서(234)는 전자 장치(200)로부터 상기 어플리케이션의 실행과 관련된 성능 데이터를 수신할 수 있다. 일 실시예에서 상기 성능 데이터는 전자 장치(200)에서 상기 어플리케이션이 실행되는 동안(예를 들어 상기 어플리케이션의 세션이 유지되는 동안) 주기적(예를 들어 초단위)으로 전자 장치(200)로부터 수신될 수 있다.In operation 904, the processor 234 may receive performance data related to the execution of the application from the electronic device 200. In one embodiment, the performance data may be received from the electronic device 200 periodically (eg, in units of seconds) while the application is executed in the electronic device 200 (eg, while a session of the application is maintained). can
동작 906에서 프로세서(234)는 주어진 조건(예를 들어 주기적, 사용자/운영자의 요청, 또는 상기 어플리케이션의 실행/업데이트/종료)에 따라 성능 데이터의 분석 및/또는 성능 파라미터의 최적화가 요구된다고 판단되는 시점에서 상기 성능 데이터를 분석하여 특징값들을 추출하고, 상기 특징값들에 기반하여 전자 장치(200)에서 상기 어플리케이션이 실제로 플레이되는 인플레이 구간을 식별할 수 있다. 프로세서(234)는 상기 식별된 인플레이 구간에 대응하는 성능 데이터(또는 상기 특징값들)를 인플레이 데이터로서 판단할 수 있다.In operation 906, the processor 234 determines that analysis of performance data and/or optimization of performance parameters is required according to given conditions (eg, periodicity, user/operator request, or execution/update/termination of the application). Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played in the electronic device 200 may be identified based on the characteristic values. The processor 234 may determine performance data (or the feature values) corresponding to the identified in-play section as in-play data.
일 실시예에서 프로세서(234)는 상기 어플리케이션(예를 들어 게임 어플리케이션)이 실행된 이후 미리 정해지는 길이의 시간 구간을, 게임 로딩 및 대기실 진입과 같은 동작들이 수행되는 낫-인플레이 구간(not in-play period)으로 판단할 수 있다. 또한 게임이 종료되기 이전 미리 정해지는 길이의 시간 구간은 엔딩 화면의 제공과 같은 동작이 수행되므로 낫-인플레이 구간으로 판단될 수 있다. 프로세서(234)는 성능 데이터의 보고 시간이 상기 판단된 낫-인플레이 구간에 속하는 경우 상기 성능 데이터를 낫-인플레이 데이터로 판단할 수 있다. 프로세서(234)는 상기 판단된 낫-인플레이 구간을 제외한 나머지 시간 구간에서 수집된 성능 데이터를 인플레이 데이터로 판단할 수 있다.In one embodiment, the processor 234 determines a time period of a predetermined length after the application (eg, game application) is executed, a not in-play period in which operations such as loading a game and entering a waiting room are performed. play period). In addition, since an operation such as providing an ending screen is performed in a time period of a predetermined length before the game ends, it may be determined as a sickle-in-play period. The processor 234 may determine the performance data as sickle-inplay data when the reporting time of the performance data belongs to the determined sickle-inplay section. The processor 234 may determine performance data collected in the remaining time intervals other than the determined not-in-play interval as in-play data.
일 실시예에서 프로세서(234)는 성능 데이터에 포함되는 요소별로 수집된 값들의 통계값(예를 들어 최소값, 최대값, 평균값, 표준편차, 또는 비대칭도)을 계산하고, 상기 통계값과 현재 수집된 값 간의 차이에 따라 상기 현재 수집된 값이 인플레이 구간에 대응하는지의 여부를 판단할 수 있다. 일 예로서 프로세서(234)는 성능 데이터 중 현재 표면 온도와 최소 표면 온도 간의 차이를 나타내는 특징값을 계산하고 상기 특징값이 주어진 임계값을 초과하는 경우 상기 특징값을 인플레이 구간에 대응하는 인플레이 데이터로 분류할 수 있다.In one embodiment, the processor 234 calculates a statistical value (for example, a minimum value, a maximum value, an average value, a standard deviation, or a degree of asymmetry) of collected values for each element included in the performance data, and calculates the statistical value and the current collection value. Depending on the difference between the collected values, it may be determined whether the currently collected value corresponds to the in-play section. As an example, the processor 234 calculates a feature value representing the difference between the current surface temperature and the minimum surface temperature among the performance data, and converts the feature value to in-play data corresponding to an in-play section when the feature value exceeds a given threshold. can be classified.
일 실시예에서 프로세서(234)는 성능 데이터의 시계열 데이터 값을 시간 순서대로 추적하고, 상기 시계열 데이터 값이 현저하게 달라지는 시점에서 인플레이 구간과 낫-인플레이 구간 간의 전환이 이루어지는 것으로 판단할 수 있다. 프로세서(234)는 특정 시점 전후의 타임 윈도우들 별로 각각의 통계값들을 계산하고, 상기 통계값들을 비교하여 상기 특정 시점 전후의 데이터 변경이 일어났는지를 판단할 수 있다. 일 예로서 프로세서(234)는 특정 시점과 5초 이후의 FPS 차이값을 구하고, 현재 시점으로부터 30초 이후까지의 타임 윈도우 내에서 30개의 FPS 차이값들 중 최대값을 계산할 수 있다. 상기 최대값이 주어진 임계값보다 작은 경우 프로세서(234)는 상기 FPS 차이값들의 최대값을 인플레이 데이터로 결정할 수 있다.In one embodiment, the processor 234 may track time-series data values of the performance data in chronological order, and determine that a transition between an in-play section and a not-in-play section is made at a point in time when the time-series data values are markedly different. The processor 234 may calculate each statistical value for each time window before and after a specific point in time, and compare the statistical values to determine whether a change in data before and after the specific point in time has occurred. As an example, the processor 234 may obtain an FPS difference between a specific point in time and 5 seconds later, and calculate a maximum value among 30 FPS difference values within a time window from the current point in time to 30 seconds later. If the maximum value is smaller than the given threshold value, the processor 234 may determine the maximum value of the FPS difference values as in-play data.
동작 906에 대한 다양한 예시적인 실시예들은 도 11 내지 도 27을 참조하여 후술될 것이다.Various exemplary embodiments of operation 906 will be described below with reference to FIGS. 11-27.
동작 908에서 프로세서(234)는 상기 식별된 인플레이 구간의 성능 데이터(예를 들어 인플레이 데이터) 및/또는 그와 관련된 특징값들에 기반하여 상기 어플리케이션의 실행 성능을 개선하기 위한 제2 성능 파라미터를 산출할 수 있다.In operation 908, the processor 234 calculates a second performance parameter for improving execution performance of the application based on the performance data (eg, in-play data) of the identified in-play section and/or feature values related thereto. can do.
동작 910에서 프로세서(234)는 주어진 조건(예를 들어 전자 장치(200)에서 어플리케이션의 설치/실행/종료, 사용자/운영자의 요청, 또는 주기적)에 따라 상기 제2 성능 파라미터를 전자 장치(200)로 전달(예를 들어 배포)할 수 있다.In operation 910, the processor 234 transmits the second performance parameter to the electronic device 200 according to given conditions (eg, installation/execution/termination of an application in the electronic device 200, user/operator request, or periodicity). can be forwarded (e.g. distributed).
이상의 실시예들에서는 전자 장치(200)가 성능 데이터를 보고하고 서버(230)에서 인플레이 구간을 식별하는 것으로 설명하였으나, 다른 실시예에서 전자 장치(200)는 수집된 성능 데이터를 기반으로 인플레이 구간을 식별하도록 동작할 수 있다. In the above embodiments, it has been described that the electronic device 200 reports performance data and identifies an in-play section in the server 230, but in other embodiments, the electronic device 200 determines an in-play section based on the collected performance data. It can act to identify.
도 10은 일 실시예에 따라 전자 장치(200)에서 인플레이 구간을 식별하는 절차를 설명하기 위한 흐름도이다. 후술되는 동작들 중 적어도 하나는 전자 장치(200)의 프로세서(210)에 의해 실행될 수 있다.10 is a flowchart illustrating a procedure of identifying an in-play section in the electronic device 200 according to an embodiment. At least one of the operations described below may be executed by the processor 210 of the electronic device 200 .
도 10을 참조하면, 동작 1002에서 프로세서(210)는 어플리케이션의 실행 요청(예를 들어 사용자 입력 또는 지정된 조건에 따른 자동 실행 요청)을 수신할 수 있다. 예를 들어 상기 어플리케이션은 게임 어플리케이션 또는 성능 데이터의 수집과 성능 최적화가 요구되는 어플리케이션일 수 있다.Referring to FIG. 10 , in operation 1002, the processor 210 may receive an application execution request (eg, a user input or an automatic execution request according to a specified condition). For example, the application may be a game application or an application requiring performance data collection and performance optimization.
동작 1004에서 프로세서(210)는 상기 실행 요청에 응답하여 통신 모듈(208)을 통해 서버(230)에게 상기 어플리케이션이 지정된 종류(예를 들어 게임 어플리케이션)인지를 확인하기 위한 메타데이터 요청을 전송하고 상기 메타데이터 요청에 따라 서버(230)로부터 상기 어플리케이션과 관련된 메타데이터를 수신할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 실행 요청에 따라 또는 상기 어플리케이션의 설치시에 상기 메타데이터를 서버(230)로부터 획득할 수 있다.In operation 1004, the processor 210 transmits a metadata request for confirming whether the application is a designated type (eg, a game application) to the server 230 through the communication module 208 in response to the execution request, and the Metadata related to the application may be received from the server 230 according to a metadata request. In one embodiment, the processor 210 may obtain the metadata from the server 230 according to a request for execution of the application or upon installation of the application.
동작 1006에서 프로세서(210)는 상기 메타데이터를 기반으로 상기 어플리케이션이 지정된 종류, 즉 게임 어플리케이션인지를 판단할 수 있다. 만일 게임 어플리케이션이 아니면 동작 1022에서 프로세서(210)는 통상의 방식에 따라 상기 어플리케이션을 실행할 수 있다. 반면 게임 어플리케이션이면 프로세서(210)는 동작 1008로 진행할 수 있다.In operation 1006, the processor 210 may determine whether the application is a designated type, that is, a game application, based on the metadata. If it is not a game application, in operation 1022, the processor 210 may execute the application in a conventional manner. On the other hand, if it is a game application, the processor 210 may proceed to operation 1008.
동작 1008에서 프로세서(210)는 상기 메타데이터에 포함된 제1 성능 파라미터를 식별하고 상기 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행할 수 있다. 일 예로서 상기 제1 성능 파라미터는 프로세서 클럭(예를 들어 CPU 클럭 및/또는 GPU 클럭)을 포함할 수 있다. In operation 1008, the processor 210 may identify a first performance parameter included in the metadata and execute the application based on the first performance parameter. As an example, the first performance parameter may include a processor clock (eg, CPU clock and/or GPU clock).
동작 1010에서 프로세서(210)는 상기 제1 성능 파라미터에 기반하여 상기 어플리케이션이 실행되는 동안 주어진 조건(예를 들어 주기적으로)에 따라 상기 어플리케이션의 실행과 관련된 성능 데이터를 수집할 수 있다. 상기 수집된 성능 데이터는 전자 장치(200)의 메모리(206)(예를 들어 성능 데이터베이스(218))에 저장될 수 있다.In operation 1010, the processor 210 collects performance data related to the execution of the application according to a given condition (eg, periodically) while the application is being executed based on the first performance parameter. The collected performance data may be stored in the memory 206 (eg, the performance database 218) of the electronic device 200.
동작 1012에서 프로세서(210)는 주어진 조건(예를 들어 주기적, 사용자/운영자의 요청, 또는 상기 어플리케이션의 실행/업데이트/종료)에 따라 성능 데이터의 분석 및/또는 성능 파라미터의 최적화가 요구된다고 판단되는 시점에서 상기 성능 데이터를 분석하여 특징값들을 추출하고, 상기 특징값들에 기반하여 상기 어플리케이션이 실제로 플레이되는 인플레이 구간을 식별할 수 있다. 동작 1014에서 프로세서(210)는 상기 식별된 인플레이 구간에 대응하는 성능 데이터(및/또는 특징값들)를 인플레이 데이터로서 판단할 수 있다.In operation 1012, the processor 210 determines that analysis of performance data and/or optimization of performance parameters is required according to given conditions (eg, periodicity, user/operator request, or execution/update/termination of the application). Characteristic values may be extracted by analyzing the performance data at the point in time, and an in-play section in which the application is actually played may be identified based on the characteristic values. In operation 1014, the processor 210 may determine performance data (and/or feature values) corresponding to the identified in-play section as in-play data.
동작 1016에서 프로세서(210)는 상기 보고된 성능 데이터 중 인플레이 구간의 성능 데이터(예를 들어 인플레이 데이터)에 기반하여 산출된 제2 성능 파라미터를 획득할 수 있다. 일 실시예에서 프로세서(210)는 동작 1014에서 선별된 인플레이 구간의 성능 데이터(예를 들어 인플레이 데이터)를 기반으로 상기 제2 성능 파라미터를 직접 산출할 수 있다. 일 실시예에서 프로세서(210)는 동작 1014에서 선별된 인플레이 구간의 성능 데이터(예를 들어 인플레이 데이터)를 서버(230)로 보고하고, 상기 인플레이 데이터를 기반으로 산출된 제2 성능 파라미터를 서버(230)로부터 수신할 수 있다.In operation 1016, the processor 210 may obtain a second performance parameter calculated based on performance data (eg, in-play data) of an in-play section among the reported performance data. In an embodiment, the processor 210 may directly calculate the second performance parameter based on performance data (eg, in-play data) of the in-play section selected in operation 1014 . In one embodiment, the processor 210 reports the performance data (eg, in-play data) of the selected in-play section in operation 1014 to the server 230, and the second performance parameter calculated based on the in-play data is sent to the server ( 230).
일 실시예에서 프로세서(210)는 상기 어플리케이션이 실행중인 동안 상기 성능 데이터를 수집하고 보고하는 주기보다 더 긴 주기에 따라 또는 주어진 조건에 따라 상기 제2 성능 파라미터를 획득할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 종료시, 또는 다음 실행시에 상기 제2 성능 파라미터를 획득할 수 있다. In one embodiment, the processor 210 may obtain the second performance parameter according to a period longer than a period for collecting and reporting the performance data or according to a given condition while the application is running. In an embodiment, the processor 210 may obtain the second performance parameter when the application is terminated or executed next.
동작 1018에서 프로세서(210)는 상기 제2 성능 파라미터를 적용하여 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 프로세서(210)는 상기 제2 성능 파라미터에 포함된 프로세서 클럭(예를 들어 CPU 클럭 및/또는 GPU 클럭)에 따라 동작하면서 상기 어플리케이션을 실행할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션을 실행하는 동안 상기 제2 성능 파라미터를 획득하고 상기 제2 성능 파라미터를 적용할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 다음 실행시 상기 제2 성능 파라미터를 적용할 수 있다.In operation 1018, the processor 210 may execute the application by applying the second performance parameter. In one embodiment, the processor 210 may execute the application while operating according to the processor clock (eg, CPU clock and/or GPU clock) included in the second performance parameter. In an embodiment, the processor 210 may acquire the second performance parameter and apply the second performance parameter while executing the application. In one embodiment, the processor 210 may apply the second performance parameter to the next execution of the application.
동작 1020에서 프로세서(210)는 상기 어플리케이션의 종료 요청(예를 들어 사용자 입력 또는 지정된 조건에 따른 자동 종료 요청)이 수신되는지를 판단할 수 있다. 만일 상기 어플리케이션이 종료되지 않는 경우 프로세서(210)는 동작 1010으로 복귀하여 이후 동작들(예를 들어 동작 1010, 1012, 1014, 1016, 및 1018)을 반복할 수 있다. 반면 상기 어플리케이션의 종료 요청이 수신된 경우 프로세서(210)는 상기 어플리케이션의 실행을 종료할 수 있다. 일 실시예에서 프로세서(210)는 상기 어플리케이션의 종료시 상기 제2 성능 파라미터에 따른 성능 데이터를 서버(230)로 보고할 수 있다.In operation 1020, the processor 210 may determine whether a request to terminate the application (eg, a user input or an automatic termination request according to a specified condition) is received. If the application does not end, the processor 210 may return to operation 1010 and repeat subsequent operations (eg, operations 1010, 1012, 1014, 1016, and 1018). On the other hand, when a request to terminate the application is received, the processor 210 may terminate the execution of the application. In one embodiment, the processor 210 may report performance data according to the second performance parameter to the server 230 when the application is terminated.
하기에서는 전자 장치(200)에서 어플리케이션의 실행과 관련된 성능 데이터로부터 추출한 특징값들을 기반으로 인플레이 구간을 식별하는 실시예들을 설명할 것이다. 하기에서는 설명의 편의를 위해 서버(230)의 프로세서(234)에 의해 수행되는 동작들을 설명할 것이나, 변형된 실시예에서 후술되는 동작들은 전자 장치(200)의 프로세서(210)에 의해 실행될 수 있으며, 이에 제한되지 않는다. Hereinafter, embodiments of identifying an in-play section based on feature values extracted from performance data related to application execution in the electronic device 200 will be described. In the following, operations performed by the processor 234 of the server 230 will be described for convenience of description, but in a modified embodiment, the operations described below may be executed by the processor 210 of the electronic device 200, , but not limited thereto.
일 실시예에서 전자 장치(200)에서 어플리케이션이 실행중인 동안 수집되는 성능 데이터로부터 하기와 같은 특징값들 중 적어도 하나가 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238)의 특징값 추출 모듈(620))에 의해 추출될 수 있다.In one embodiment, at least one of the following characteristic values from performance data collected while an application is running in the electronic device 200 is determined by the processor 234 of the server 230 (for example, the data classification module 238). It may be extracted by the feature value extraction module 620).
- upload_bytes: 게임 세션이 유지되는 동안 네트워크(예를 들어 네트워크(220)를 통해 게임 서버로 업로드된 데이터 양을 나타낸다.- upload_bytes: Represents the amount of data uploaded to the game server over the network (for example, the network 220) while the game session is maintained.
- max_battery_pct_minus_battery_pct: 게임 세션 동안 최대 배터리 퍼센트와 특정 시점(예를 들어 해당 성능 데이터(즉 배터리 퍼센트)가 수집되는 현재 시점)의 배터리 퍼센트 간의 차이를 나타낸다.- max_battery_pct_minus_battery_pct: Indicates the difference between the maximum battery percentage during a gaming session and the battery percentage at a specific point in time (eg the current point in time at which the corresponding performance data (i.e. battery percentage) is collected).
- pst_minus_min_pst: 특정 시점에서 전자 장치(200)의 표면 온도와 게임 세션 동안 최소 표면 온도간의 차이를 나타낸다.- pst_minus_min_pst: indicates the difference between the surface temperature of the electronic device 200 at a specific point in time and the minimum surface temperature during the game session.
- fps_stability: 게임 세션 동안 FPS가 얼마나 변동(variability)이 있었는지를 나타내는 FPS의 안정도이다. 이 값이 높을수록 FPS가 변화없이 안정적임을 의미할 수 있다. 0과 100 사이의 값일 수 있다.- fps_stability: This is the stability of the FPS, indicating how much the FPS varied during the game session. A higher value may mean that the FPS is stable without change. It can be a value between 0 and 100.
- time_since_played: 게임 어플리케이션을 얼마나 오래 플레이했는지를 나타낸다. 게임 세션이 시작된 이후로부터의 시간을 초 단위로 나타낼 수 있다.- time_since_played: Indicates how long the game application has been played. It can represent the number of seconds since the game session started.
- max_pst_minus_pst: 게임 세션 동안의 최대 표면 온도와 특정 시점에서 전자 장치(200)의 표면 온도 간의 퍼센트 차이를 나타낸다.- max_pst_minus_pst: indicates a percentage difference between the maximum surface temperature during the game session and the surface temperature of the electronic device 200 at a specific point in time.
- battery_pct: 전자 장치(200)의 배터리 퍼센트를 나타낸다.- battery_pct: Indicates the battery percentage of the electronic device 200.
- reverse_time_since_played: 게임 세션이 시작된 이후로부터의 시간을 역순으로 계산한 초 단위의 값이다.- reverse_time_since_played: A value in seconds counting the time since the game session started in reverse order.
- cpu_limit_agg_std: 게임 세션 동안의 CPU 최대 주파수(max frequency)에 대한 표준 편차를 나타낸다.- cpu_limit_agg_std: Indicates the standard deviation for the maximum frequency of the CPU during the game session.
- cpu_usage: 게임 세션 동안의 CPU 사용량의 평균을 나타낸다.- cpu_usage: Indicates the average CPU usage during the game session.
- pst_agg_skew: 게임 세션 동안 전자 장치(200)의 표면 온도에 대한 비대칭도(skewness)를 나타낼 수 있다.- pst_agg_skew: may indicate skewness of the surface temperature of the electronic device 200 during a game session.
- pst_diff_-30: 특정 시점의 표면 온도와 30초 이후의 표면 온도 간의 차이를 나타낸다.- pst_diff_-30: Indicates the difference between the surface temperature at a specific point in time and the surface temperature after 30 seconds.
- cur_fps_variability_pct_chg_-5_next_10_max: 특정 시점의 FPS 변동성(예를 들어 fps_variability)과 5초 이후의 FPS 변동성 간 퍼센트 변화 값을 나타내는 10개의 값들 중 최대값을 나타낸다.- cur_fps_variability_pct_chg_-5_next_10_max: Represents the maximum value among 10 values representing the percentage change value between FPS variability (eg, fps_variability) at a specific point in time and FPS variability after 5 seconds.
- fps_pct_chg_-5_next_30_max: 특정 시점의 FPS와 5초 이후의 FPS 간 퍼센트 변화 값을 나타내는 30개의 값들 중 최대값을 나타낸다.- fps_pct_chg_-5_next_30_max: Indicates the maximum value among 30 values representing the percentage change value between the FPS at a specific point in time and the FPS after 5 seconds.
- fps_diff_-5_next_30_max: 특정 시점의 FPS와 5초 이후의 FPS 간 차이를 나타내는 30개의 값들 중 최대값을 나타낸다.- fps_diff_-5_next_30_max: Indicates the maximum value among 30 values representing the difference between the FPS at a specific point in time and the FPS after 5 seconds.
- max_cur_fps_variability_minus_cur_fps_variability: 게임 세션 동안의 최대 FPS 변동성과 현재 시점의 FPS 변동성 간의 차이를 나타낸다.- max_cur_fps_variability_minus_cur_fps_variability: Indicates the difference between the maximum FPS variability during the game session and the current FPS variability.
- cur_fps_stability_agg_mean: 게임 세션 동안 FPS 안정도의 평균을 나타낸다.- cur_fps_stability_agg_mean: Indicates the average of FPS stability during the game session.
- cur_fps_variability_pct_chg_-5_next_20_max: 특정 시점의 FPS 변동성 퍼센트와 5초 이후의 변동성 퍼센트 간 차이를 나타내는 20개의 값들 중 최대값을 나타낸다.- cur_fps_variability_pct_chg_-5_next_20_max: Indicates the maximum value among 20 values representing the difference between the percentage of FPS volatility at a specific point in time and the percentage of volatility after 5 seconds.
- fps_prev_30_min: 특정 시점의 FPS와 이전 30개 중 최소값을 나타낸다.- fps_prev_30_min: Indicates the FPS at a specific point in time and the minimum value among the previous 30.
- fps_agg_skew: 게임 세션 동안의 FPS의 비대칭도를 나타낸다.- fps_agg_skew: Indicates the skewness of FPS during a game session.
- mean_battery_pct_minus_battery_pct: 게임 세션 동안의 평균 배터리 퍼센트와 특정 시점의 배터리 퍼센트 간의 차이를 나타낸다.- mean_battery_pct_minus_battery_pct: Shows the difference between the average battery percentage during a gaming session and the battery percentage at a specific point in time.
후술되는 도 11 내지 도 27에서는 서버(230)의 프로세서(234)에 의해 특징값들을 추출하고 인플레이 구간의 데이터를 식별하는 동작(예를 들어 동작 906))의 예시들을 설명할 것이나, 후술되는 동작들은 전자 장치(200)의 프로세서(210)에 의해 수행될 수 있으며(예를 들어 동작 1012 및 1014), 하기된 설명에 의해 한정되지 않는다.11 to 27 to be described later, examples of an operation (for example, operation 906) of extracting feature values and identifying data of an in-play section by the processor 234 of the server 230 will be described, but the operations described below will be described. These may be performed by the processor 210 of the electronic device 200 (eg, operations 1012 and 1014), and are not limited by the description below.
도 11은 일 실시예에 따라 업로드 데이터와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 upload_bytes를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE(kernel density estimation))를 나타낼 수 있다.11 illustrates a distribution of feature values related to uploaded data according to an embodiment. In the illustrated graph, the X-axis may represent upload_bytes, and the Y-axis may represent a distribution (eg, kernel density estimation (KDE)).
도 11을 참조하면, 전자 장치(200)의 프로세서(210)(예를 들어 성능 튜너(214))에서 어플리케이션이 실행됨에 따라 게임 세션 동안 성능 데이터의 값들이 시간 순서대로(또는 실시간으로) 수집되어 서버(230)의 프로세서(234)(예를 들어 성능 데이터 수집 모듈(236))로 보고될 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 성능 데이터로부터 추출된 특징값들(예를 들어 upload_bytes)을 이용하여 인플레이 구간의 분포도(1102)와 낫-인플레이 구간의 분포도(1104)를 획득할 수 있고, 인플레이 구간의 분포도(1102)를 가지는 성능 데이터의 값들을 성능 분석에 이용하도록 결정할 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 어플리케이션이 시작되고 소정 시점 이후부터는 인플레이 구간의 upload_bytes 분포도(1102)가 낫-인플레이 구간에 비해 더 큰 값들을 가짐을 식별할 수 있다. 따라서 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 업로드 데이터의 양을 upload_bytes로 저장하고 상기 upload_bytes가 주어진 임계값을 초과하는 경우 상기 upload_bytes를 인플레이 구간의 데이터(즉 인플레이 데이터)로 분류할 수 있다.Referring to FIG. 11 , as an application is executed in the processor 210 (eg, the performance tuner 214) of the electronic device 200, performance data values are collected in chronological order (or in real time) during a game session. It may be reported to processor 234 of server 230 (eg, performance data collection module 236). The processor 234 (for example, the data classification module 238) of the server 230 uses the feature values (for example, upload_bytes) extracted from the performance data to generate a distribution map 1102 of the in-play section and not-in-play. A distribution map 1104 of intervals may be obtained, and values of performance data having a distribution diagram 1102 of in-play intervals may be determined to be used for performance analysis. The processor 234 (for example, the data classification module 238) of the server 230 determines that the upload_bytes distribution 1102 of the in-play section has larger values than the not-in-play section from a predetermined point in time after the application starts. can be identified. Therefore, the processor 234 (for example, the data classification module 238) of the server 230 stores the amount of upload data at a specific point in time (for example, the current point in time) as upload_bytes based on the performance data, and the upload_bytes is given When the threshold value is exceeded, the upload_bytes may be classified as data of an in-play section (ie, in-play data).
도 12는 일 실시예에 따라 배터리 퍼센트와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 max_battery_pct_minus_battery_pct를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.12 illustrates a distribution of feature values related to a battery percentage according to an exemplary embodiment. In the illustrated graph, the X-axis may represent max_battery_pct_minus_battery_pct, and the Y-axis may represent a distribution (for example, KDE).
도 12를 참조하면, 전자 장치(200)(예를 들어 성능 튜너(214))에서 어플리케이션이 실행됨에 따라 게임 세션 동안 성능 데이터의 값들이 시간 순서대로(또는 실시간으로) 수집되어 서버(230)의 프로세서(234)(예를 들어 성능 데이터 수집 모듈(236))로 보고될 수 있다. 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 성능 데이터로부터 추출된 특징값들(예를 들어 max_battery_pct_minus_battery_pct)을 이용하여 인플레이 구간의 분포도(1202)와 낫-인플레이 구간의 분포도(1204)를 획득할 수 있고, 인플레이 구간의 분포도(1202)를 가지는 성능 데이터의 값들을 성능 분석에 이용하도록 결정할 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 인플레이 구간의 max_battery_pct_minus_battery_pct 분포도(1202)가 낫-인플레이 구간에 비해 더 큰 값들을 가짐을 식별할 수 있다. 따라서 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 계산된 특정 시점(예를 들어 현재 시점)의 max_battery_pct_minus_battery_pct가 주어진 임계값을 초과하는 경우 상기 max_battery_pct_minus_battery_pct를 인플레이 데이터로 분류할 수 있다.Referring to FIG. 12 , as an application is executed on the electronic device 200 (eg, the performance tuner 214), performance data values are collected in chronological order (or in real time) during a game session, and the values of the server 230 are calculated. processor 234 (eg, performance data collection module 236). The processor 234 (eg, the data classification module 238) uses the feature values (eg, max_battery_pct_minus_battery_pct) extracted from the performance data to obtain a distribution map 1202 of the in-play section and a distribution map 1204 of the not-in-play section. ) may be obtained, and it may be determined to use the performance data values having the distribution 1202 of the in-play section for performance analysis. The processor 234 (eg, the data classification module 238) of the server 230 may identify that the max_battery_pct_minus_battery_pct distribution 1202 of the in-play period has larger values than that of the not-in-play period. Therefore, the processor 234 (for example, the data classification module 238) of the server 230 determines that max_battery_pct_minus_battery_pct calculated based on the performance data at a specific point in time (for example, the current point in time) exceeds a given threshold value. can be classified as in-play data.
도 13은 일 실시예에 따라 표면 온도와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 pst_minus_min_pst를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)를 나타낼 수 있다.13 illustrates a distribution of feature values related to surface temperature according to an exemplary embodiment. In the illustrated graph, the X-axis may represent pst_minus_min_pst, and the Y-axis may represent a distribution (for example, KDE).
도 13을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 pst_minus_min_pst)을 이용하여 인플레이 구간의 pst_minus_min_pst 분포도(1302)가 낫-인플레이 구간의 분포도(1304)에 비해 큰 값들을 가짐을 식별할 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 표면 온도와, 게임 세션 동안의 최소 표면 온도 간의 차이를 계산하여 pst_minus_min_pst로 저장하고, 상기 pst_minus_min_pst가 주어진 임계값을 초과하는 경우 상기 pst_minus_min_pst를 인플레이 데이터로 분류할 수 있다.Referring to FIG. 13 , the processor 234 of the server 230 (eg, the data classification module 238) extracts feature values (eg, pst_minus_min_pst) from performance data reported from the electronic device 200. Using this, it can be identified that the pst_minus_min_pst distribution map 1302 of the in-play section has larger values than the distribution map 1304 of the sickle-in-play section. Processor 234 (e.g., data classification module 238) of server 230 determines, based on the performance data, the difference between the surface temperature at a specific point in time (e.g., the current point in time) and the minimum surface temperature during the gaming session. It is calculated and stored as pst_minus_min_pst, and when the pst_minus_min_pst exceeds a given threshold value, the pst_minus_min_pst may be classified as in-play data.
도 14는 일 실시예에 따라 FPS와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 fps_stability를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)를 나타낼 수 있다.14 illustrates a distribution of feature values related to FPS according to an embodiment. In the illustrated graph, the X-axis may represent fps_stability, and the Y-axis may represent a distribution (for example, KDE).
도 14를 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 fps_stability)을 이용하여 인플레이 구간의 fps_stability 분포도(1402)가 낫-인플레이 구간의 분포도(1404)에 비해 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 FPS 안정도를 fps_stability로 저장하고, 상기 fps_stability가 주어진 임계값보다 작은 경우 상기 fps_stability를 인플레이 데이터로 분류할 수 있다.Referring to FIG. 14 , the processor 234 (eg, the data classification module 238) of the server 230 uses feature values (eg, fps_stability) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the fps_stability distribution 1402 of the in-play section has smaller values than the distribution 1404 of the sickle-in-play section. In one embodiment, the processor 234 (for example, the data classification module 238) of the server 230 stores the FPS stability at a specific time point (for example, the current time point) as fps_stability based on the performance data, and the fps_stability If is less than a given threshold, the fps_stability may be classified as in-play data.
도 15는 일 실시예에 따라 게임 플레이 시간과 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 time_since_played를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.15 illustrates a distribution of feature values related to game play time according to an embodiment. In the illustrated graph, the X-axis may represent time_since_played, and the Y-axis may represent a distribution (for example, KDE).
도 15를 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 time_since_played)을 이용하여 인플레이 구간의 time_since_played 분포도(1502)가 낫-인플레이 구간의 분포도(1504)에 비해 큰 값들을 가짐을 식별할 수 있다. 일 실시예에서 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 time_since_played를 계산하고, 상기 time_since_played가 주어진 임계값을 초과하는 경우 상기 특정 시점을 인플레이 구간으로 분류하여, 상기 특정 시점에서 수집된 성능 데이터를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 15 , the processor 234 (eg, the data classification module 238) of the server 230 extracts feature values (eg, time_since_played) from performance data reported from the electronic device 200. Using this, it can be identified that the time_since_played distribution map 1502 of the in-play section has larger values than the distribution map 1504 of the sick-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) of the server 230 calculates time_since_played at a specific point in time (eg, the current point in time) based on the performance data, and calculates time_since_played as a threshold given the time_since_played. If the value is exceeded, the specific time point may be classified as an in-play section, and performance data collected at the specific point in time may be determined as in-play data.
도 16은 일 실시예에 따라 표면 온도의 변화와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 max_pst_minus_pst를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.16 illustrates a distribution of feature values related to changes in surface temperature according to an exemplary embodiment. In the illustrated graph, the X-axis may represent max_pst_minus_pst, and the Y-axis may represent a distribution (for example, KDE).
도 16을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 max_pst_minus_pst)을 이용하여 인플레이 구간의 max_pst_minus_pst 분포도(1602)가 낫-인플레이 구간의 분포도(1604)에 비해 대체적으로 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 max_pst_minus_pst를 계산하고, 상기 max_pst_minus_pst가 주어진 임계값보다 작은 경우 상기 max_pst_minus_pst를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 16 , the processor 234 (eg, the data classification module 238) of the server 230 determines feature values (eg, max_pst_minus_pst) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the max_pst_minus_pst distribution 1602 of the in-play section has substantially smaller values than the distribution 1604 of the sickle-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates max_pst_minus_pst at a specific time point (eg, the current time point) based on the performance data, and if the max_pst_minus_pst is less than a given threshold, the max_pst_minus_pst may be determined as in-play data.
도 17은 일 실시예에 따라 배터리 퍼센트와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 battery_pct를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)를 나타낼 수 있다.17 illustrates a distribution of feature values related to a battery percentage according to an embodiment. In the illustrated graph, the X-axis may represent battery_pct, and the Y-axis may represent a distribution (for example, KDE).
도 17을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 battery_pct)을 이용하여 인플레이 구간의 battery_pct 분포도(1702)가 낫-인플레이 구간의 분포도(1704)에 비해 대체적으로 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 battery_pct를 계산하고, 상기 battery_pct가 주어진 임계값보다 작은 경우 상기 battery_pct를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 17 , the processor 234 (eg, the data classification module 238) of the server 230 extracts feature values (eg, battery_pct) from performance data reported from the electronic device 200. Using this, it can be identified that the battery_pct distribution 1702 of the in-play section has generally smaller values than the distribution 1704 of the sickle-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates battery_pct at a specific time point (eg, the current time point) based on the performance data, and if the battery_pct is less than a given threshold, the battery_pct may be determined as in-play data.
도 18은 일 실시예에 따라 게임 플레이 시간과 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 reverse_time_since_played를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.18 illustrates a distribution of feature values related to game play time according to an embodiment. In the illustrated graph, the X-axis may represent reverse_time_since_played, and the Y-axis may represent a distribution (eg KDE).
도 18을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 reverse_time_since_played)을 이용하여 인플레이 구간의 reverse_time_since_played 분포도(1802)가 낫-인플레이 구간의 분포도(1804)에 비해 대체적으로 큰 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 reverse_time_since_played를 계산하고, 상기 reverse_time_since_played가 주어진 임계값보다 큰 경우 상기 특정 시점을 인플레이 구간으로 분류하여, 상기 특정 시점에서 수집된 성능 데이터를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 18 , the processor 234 (eg, the data classification module 238) of the server 230 extracts feature values (eg, reverse_time_since_played) from performance data reported from the electronic device 200. Using this, it can be identified that the reverse_time_since_played distribution map 1802 of the in-play section has generally larger values than the distribution map 1804 of the sick-in-play section. In one embodiment, the processor 234 (eg, data classification module 238) calculates reverse_time_since_played at a specific point in time (eg, the current point in time) based on the performance data, and if the reverse_time_since_played is greater than a given threshold, the reverse_time_since_played is greater than a given threshold. A specific point in time may be classified as an in-play section, and performance data collected at the specific point in time may be determined as in-play data.
도 19는 일 실시예에 따라 프로세서 주파수와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 cpu_limit_agg_std를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.19 illustrates a distribution of feature values related to processor frequency according to an embodiment. In the illustrated graph, the X-axis may represent cpu_limit_agg_std, and the Y-axis may represent a distribution (for example, KDE).
도 19를 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 cpu_limit_agg_std)을 이용하여 인플레이 구간의 cpu_limit_agg_std 분포도(1902)가 낫-인플레이 구간의 분포도(1904)에 비해 대체적으로 큰 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 cpu_limit_agg_std를 계산하고, 상기 cpu_limit_agg_std가 주어진 임계값보다 큰 경우 상기 cpu_limit_agg_std를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 19 , the processor 234 (eg, the data classification module 238) of the server 230 determines feature values (eg, cpu_limit_agg_std) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the cpu_limit_agg_std distribution map 1902 of the in-play section has generally larger values than the distribution map 1904 of the sickle-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates cpu_limit_agg_std at a specific point in time (eg, the current point in time) based on the performance data, and if the cpu_limit_agg_std is greater than a given threshold, the cpu_limit_agg_std can be judged as in-play data.
도 20은 일 실시예에 따라 프로세서 사용량과 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 cpu_usage를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)를 나타낼 수 있다.20 illustrates a distribution of feature values related to processor usage according to an embodiment. In the illustrated graph, the X-axis may represent cpu_usage, and the Y-axis may represent a distribution (for example, KDE).
도 20을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 cpu_usage)을 이용하여 인플레이 구간의 cpu_usage 분포도(2002)가 낫-인플레이 구간의 분포도(2004)에 비해 대체적으로 큰 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 cpu_usage를 획득하고, 상기 cpu_usage가 주어진 임계값보다 큰 경우 상기 cpu_usage를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 20 , the processor 234 (eg, the data classification module 238) of the server 230 extracts feature values (eg, cpu_usage) from performance data reported from the electronic device 200. Using this, it can be identified that the cpu_usage distribution 2002 of the in-play section has substantially larger values than the distribution 2004 of the sick-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) obtains cpu_usage at a specific time point (eg, the current time point) based on the performance data, and if the cpu_usage is greater than a given threshold, the cpu_usage can be judged as in-play data.
도 21은 일 실시예에 따라 표면 온도의 비대칭도와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 pst_agg_skew를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.21 illustrates a distribution of feature values related to asymmetry of surface temperature according to an embodiment. In the illustrated graph, the X-axis may represent pst_agg_skew, and the Y-axis may represent a distribution (for example, KDE).
도 21을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 pst_agg_skew)을 이용하여 인플레이 구간의 pst_agg_skew 분포도(2102)가 낫-인플레이 구간의 분포도(2104)에 비해 대체적으로 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 pst_agg_skew를 계산하고, 상기 pst_agg_skew가 주어진 임계값보다 작은 경우 상기 pst_agg_skew를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 21 , the processor 234 (eg, the data classification module 238) of the server 230 determines feature values (eg, pst_agg_skew) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the pst_agg_skew distribution map 2102 of the in-play section has generally smaller values than the distribution map 2104 of the sickle-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates a pst_agg_skew at a specific point in time (eg, the current point in time) based on the performance data, and if the pst_agg_skew is less than a given threshold, the pst_agg_skew can be judged as in-play data.
도 22는 일 실시예에 따라 FPS 변동성과 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 cur_fps_variability_pct_chg_-5_next_10_max 를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.22 illustrates a distribution of feature values related to FPS variability according to an embodiment. In the illustrated graph, the X-axis may represent cur_fps_variability_pct_chg_-5_next_10_max, and the Y-axis may represent a distribution (eg, KDE).
도 22를 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 cur_fps_variability_pct_chg_-5_next_10_max)을 이용하여 인플레이 구간의 cur_fps_variability_pct_chg_-5_next_10_max 분포도(2202)가 낫-인플레이 구간의 분포도(2204)에 비해 대체적으로 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 cur_fps_variability_pct_chg_-5_next_10_max를 계산하고, 상기 cur_fps_variability_pct_chg_-5_next_10_max가 주어진 임계값보다 작은 경우 상기 cur_fps_variability_pct_chg_-5_next_10_max를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 22 , the processor 234 (eg, the data classification module 238) of the server 230 extracts feature values (eg, cur_fps_variability_pct_chg_-5_next_10_max) from performance data reported from the electronic device 200. ), it can be identified that the cur_fps_variability_pct_chg_-5_next_10_max distribution map 2202 of the in-play section has generally smaller values than the distribution map 2204 of the sick-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates cur_fps_variability_pct_chg_-5_next_10_max at a specific time point (eg, the current time point) based on the performance data, and the cur_fps_variability_pct_chg_-5_next_10_max is a given threshold value. If it is less than, the cur_fps_variability_pct_chg_-5_next_10_max may be determined as in-play data.
도 23은 일 실시예에 따라 FPS 변화와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 fps_diff_-5_next_30_max를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)을 나타낼 수 있다.23 illustrates a distribution of feature values related to FPS change according to an embodiment. In the illustrated graph, the X-axis may represent fps_diff_-5_next_30_max, and the Y-axis may represent a distribution (for example, KDE).
도 23을 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 fps_diff_-5_next_30_max)을 이용하여 인플레이 구간의 fps_diff_-5_next_30_max 분포도(2302)가 낫-인플레이 구간의 분포도(2304)에 비해 대체적으로 작은 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 fps_diff_-5_next_30_max를 계산하고, 상기 fps_diff_-5_next_30_max가 주어진 임계값보다 작은 경우 상기 fps_diff_-5_next_30_max를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 23 , the processor 234 of the server 230 (eg, the data classification module 238) extracts feature values from performance data reported from the electronic device 200 (eg, fps_diff_-5_next_30_max ), it can be identified that the fps_diff_-5_next_30_max distribution map 2302 of the in-play section has substantially smaller values than the distribution map 2304 of the sickle-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates fps_diff_-5_next_30_max at a specific time point (eg, the current time point) based on the performance data, and the fps_diff_-5_next_30_max is a given threshold value If it is smaller than fps_diff_-5_next_30_max, it can be determined as in-play data.
도 24는 일 실시예에 따라 FPS와 관련된 특징값의 분포를 나타낸 것이다. 도시된 그래프에서 X축은 fps_prev_30_min를 나타낼 수 있고, Y축은 분포도(예를 들어 KDE)를 나타낼 수 있다.24 illustrates a distribution of feature values related to FPS according to an embodiment. In the illustrated graph, the X-axis may represent fps_prev_30_min, and the Y-axis may represent a distribution (for example, KDE).
도 24를 참조하면, 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 전자 장치(200)로부터 보고된 성능 데이터로부터 추출된 특징값들(예를 들어 fps_prev_30_min)을 이용하여 인플레이 구간의 fps_prev_30_min 분포도(2402)가 낫-인플레이 구간의 분포도(2404)에 비해 대체적으로 큰 값들을 가짐을 식별할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 성능 데이터를 기반으로 특정 시점(예를 들어 현재 시점)의 fps_prev_30_min를 계산하고, 상기 fps_prev_30_min가 주어진 임계값보다 큰 경우 상기 fps_prev_30_min를 인플레이 데이터로 판단할 수 있다.Referring to FIG. 24 , the processor 234 (eg, the data classification module 238) of the server 230 uses feature values (eg, fps_prev_30_min) extracted from performance data reported from the electronic device 200. Using this, it can be identified that the fps_prev_30_min distribution map 2402 of the in-play section has generally larger values than the distribution map 2404 of the sick-in-play section. In one embodiment, the processor 234 (eg, the data classification module 238) calculates fps_prev_30_min at a specific time point (eg, the current time point) based on the performance data, and if the fps_prev_30_min is greater than a given threshold value, the fps_prev_30_min may be determined as in-play data.
도 25a 및 도 25b는 일 실시예에 따라 FPS 데이터와 관련된 특징값들을 시간 순서대로 나타낸 차트들이다.25A and 25B are charts showing feature values related to FPS data in chronological order according to an embodiment.
도 25a를 참조하면, 차트(2502)는 게임 세션 동안 성능 데이터의 보고시간을 나타내는 data_timestamp에 따른 특징값들, 예를 들어 fps, fps_next_10_min, 및 fps_prev_10_min의 변화를 나타낸 것이다. 여기서 fps는 특정 시점의 FPS를 나타내고, fps_next_10_min는 이후 10개의 FPS 값들 중 최소값을 나타내며, fps_prev_10_min는 이전 10개의 FPS 값들 중 최소값을 나타낸다. 도시한 바와 같이 인플레이 구간과 낫-인플레이 구간이 전환되는 시점에서 상기 특징값들이 현저하게 변화되는 것을 확인할 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 특징값들, 예를 들어 fps, fps_next_10_min, 및 fps_prev_10_min의 변화를 추적하여 상기 특징값들의 변화가 감지되는 시점에서 인플레이 구간의 시작 또는 종료를 판정하고, 인플레이 구간 내에서 수집된 성능 데이터를 인플레이 데이터로 결정할 수 있다.Referring to FIG. 25A , a chart 2502 shows changes in feature values, eg, fps, fps_next_10_min, and fps_prev_10_min, according to data_timestamp representing reporting time of performance data during a game session. Here, fps denotes an FPS at a specific time point, fps_next_10_min denotes a minimum value among 10 subsequent FPS values, and fps_prev_10_min denotes a minimum value among 10 previous FPS values. As shown in the figure, it can be confirmed that the feature values are remarkably changed at a time when the in-play section and the sickle-in-play section are switched. The processor 234 (for example, the data classification module 238) of the server 230 tracks changes in the feature values, for example, fps, fps_next_10_min, and fps_prev_10_min, and detects changes in the feature values. The start or end of the in-play section may be determined, and performance data collected within the in-play section may be determined as the in-play data.
도 25b를 참조하면, 차트(2504)는 게임 세션 동안 data_timestamp에 따른 특징값들, 예를 들어 fps, fps_diff_5_prev_10_mean, 및 fps_diff_-5_next_10_mean의 변화를 나타낸 것이다. 여기서 fps_diff_5_prev_10_mean은 특정 시점의 FPS와 5초 이전의 FPS 간 차이를 나타내는 10개의 값들에 대한 평균값을 나타내며, fps_diff_-5_next_10_mean는 특정 시점의 FPS와 5초 이후의 FPS 간 차이를 나타내는 10개의 값들에 대한 평균값을 나타낸다. 도시한 바와 같이 인플레이 구간과 낫-인플레이 구간이 전환되는 시점에서 상기 특징값들이 현저하게 변화되는 것을 확인할 수 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 특징값들, 예를 들어 fps, fps_diff_5_prev_10_mean, 및 fps_diff_-5_next_10_mean의 변화를 추적하여 상기 특징값들의 변화가 감지되는 시점에서 인플레이 구간의 시작 또는 종료를 판정하고, 인플레이 구간 내에서 수집된 성능 데이터를 인플레이 데이터로 결정할 수 있다.Referring to FIG. 25B , a chart 2504 shows changes in feature values, eg, fps, fps_diff_5_prev_10_mean, and fps_diff_-5_next_10_mean, according to data_timestamp during a game session. Here, fps_diff_5_prev_10_mean represents the average value of 10 values representing the difference between the FPS at a specific point in time and the FPS 5 seconds before, and fps_diff_-5_next_10_mean represents the average value of 10 values representing the difference between the FPS at a specific point in time and the FPS 5 seconds later. indicates As shown in the figure, it can be confirmed that the feature values are remarkably changed at a time when the in-play section and the sickle-in-play section are switched. The processor 234 (eg, the data classification module 238) of the server 230 tracks changes in the feature values, eg, fps, fps_diff_5_prev_10_mean, and fps_diff_-5_next_10_mean, so that changes in the feature values are detected It is possible to determine the start or end of the in-play section at the point in time, and determine performance data collected within the in-play section as the in-play data.
도 26은 일 실시예에 따라 인플레이 구간의 판단과 관련되는 특징값들의 중요도를 나타낸 것이다.26 illustrates importance of feature values related to determining an in-play section according to an embodiment.
도 26을 참조하면, upload_bytes와 20개의 특징값들에 대한 정규화 중요도(normalized importance)가 도시되어 있다. 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 tabular 형식의 데이터에서 높은 성능을 낼 수 있는 부스팅 트리 기반의 기계 학습 모델을 사용하여 성능 데이터를 분석할 수 있다. 부스팅 트리 기반의 기계 학습 모델은 특징값들의 중요도를 계산하고 상기 중요도를 이용하여 모델링 성능을 개선하거나 의사 결정에 사용될 수 있다. 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 상기 계산된 중요도에 따라 상대적으로 중요도가 높은 소정 개수의 특징값들을 사용하여 인플레이 구간을 식별할 수 있다.Referring to FIG. 26, normalized importance for upload_bytes and 20 feature values is shown. The processor 234 (for example, the data classification module 238) of the server 230 may analyze the performance data using a boosting tree-based machine learning model capable of producing high performance in tabular format data. A machine learning model based on a boosting tree may calculate the importance of feature values and use the importance to improve modeling performance or may be used for decision making. The processor 234 (eg, the data classification module 238) may identify an in-play section using a predetermined number of feature values having relatively high importance according to the calculated importance.
도 27은 일 실시예에 따라 인플레이 구간의 판단과 관련되는 특징값들의 상관관계(correlation)를 나타내는 열지도(heatmap)를 도시한 것이다.27 illustrates a heatmap showing correlation of feature values related to determining an in-play section according to an embodiment.
도 27을 참조하면, 열지도(2702)는 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))에서 인플레이 구간의 판단에 사용하기 위해 추출할 수 있는 특징값들 간의 상관관계를 나타낼 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는, 인플레이 구간의 판단을 나타내는 파라미터인 in_play와 양의 상관관계를 가지는 특징값들(예를 들어 upload_bytes, max_battery_pct_minus_battery_pct, 또는 pst_minus_min_pst)은 그 값이 높을수록(예를 들어 주어진 임계값을 초과하는 경우) 인플레이 데이터일 확률이 높다고 판단할 수 있다. 일 실시예에서 프로세서(234)(예를 들어 데이터 분류 모듈(238))는, in_play와 음의 상관관계를 가지는 특징값들(예를 들어 fps_stability, max_pst_minus_pst, battery_pct, 또는 pst_agg_skew)은 그 값이 낮을수록(예를 들어 주어진 임계값보다 작은 경우) 인플레이 데이터일 확률이 높다고 판단할 수 있다.Referring to FIG. 27 , a heat map 2702 is a correlation between feature values that can be extracted for use in determining an in-play section by the processor 234 (eg, the data classification module 238) of the server 230. relationship can be shown. In one embodiment, the processor 234 (eg, the data classification module 238) determines the characteristic values (eg, upload_bytes, max_battery_pct_minus_battery_pct, or pst_minus_min_pst) that have a positive correlation with in_play, which is a parameter indicating the determination of the in-play section. ) may determine that the higher the value (for example, when it exceeds a given threshold), the higher the probability of being in-play data. In one embodiment, processor 234 (e.g., data classification module 238) determines that feature values that have a negative correlation with in_play (e.g., fps_stability, max_pst_minus_pst, battery_pct, or pst_agg_skew) are low. It may be determined that there is a high probability that the data is in-play data (for example, if it is smaller than a given threshold value).
상술한 실시예들에서 설명한 바와 같이 서버(230)의 프로세서(234)(예를 들어 데이터 분류 모듈(238))는 인플레이 구간에 속하는 성능 데이터(예를 들어 인플레이 데이터)를 식별할 수 있고, 프로세서(234)(예를 들어 성능 분석 모듈(240))은 상기 인플레이 데이터를 기반으로 전자 장치(200)를 위한 성능 파라미터를 결정할 수 있다.As described in the above-described embodiments, the processor 234 (eg, the data classification module 238) of the server 230 may identify performance data (eg, in-play data) belonging to the in-play section, and the processor 234 may 234 (eg, the performance analysis module 240) may determine performance parameters for the electronic device 200 based on the in-play data.
일 실시예에 따른 전자 장치(200)는, 통신 모듈(208), 디스플레이(203), 메모리(206), 및 상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서(210)를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터를 상기 통신 모듈을 통해 서버(230)로 보고하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 서버로부터 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다.The electronic device 200 according to an embodiment includes a communication module 208, a display 203, a memory 206, and at least one processor operatively connected to the communication module, the display, and the memory ( 210) may be included. The at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request. The at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed. The at least one processor may be configured to report the performance data to the server 230 through the communication module. The at least one processor may be configured to receive, from the server, a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data. The at least one processor may be configured to execute the application based on the second performance parameter.
일 실시예에서 상기 성능 데이터는, 상기 어플리케이션의 실행 화면이 상기 디스플레이에 표시되는 동안의 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다.In one embodiment, the performance data includes FPS (frame per second), surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
일 실시예에서 상기 제2 성능 파라미터는, 상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 제외한 나머지 시간 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 생성될 수 있다. In one embodiment, the second performance parameter is the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated. It can be generated based on the first element of
일 실시예에서 상기 제2 성능 파라미터는, 상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 인플레이 구간에 대응하는 것으로 식별된 상기 현재값을 기반으로 생성될 수 있다.In one embodiment, the second performance parameter is the current value identified as corresponding to the in-play section according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. can be created based on
일 실시예에서 상기 제2 성능 파라미터는, 상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화에 따라 상기 인플레이 구간에 대응되는 것으로 식별된 상기 성능 데이터의 제4 요소를 기반으로 생성될 수 있다.In an embodiment, the second performance parameter may be generated based on a fourth element of the performance data identified as corresponding to the in-play section according to a change in the third element of the performance data during a session related to the application. there is.
일 실시예에서 상기 제2 성능 파라미터는, 상기 성능 데이터 중 상기 인플레이 구간의 판단과 관련된 중요도가 상대적으로 높은 적어도 하나의 제5 요소를 기반으로 생성될 수 있다.In an embodiment, the second performance parameter may be generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
일 실시예에 따른 서버(230)는, 통신 모듈(232), 메모리(242), 및 상기 통신 모듈 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서(234)를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 상기 통신 모듈을 통해 전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 통신 모듈을 통해 상기 어플리케이션의 실행과 연관된 성능 데이터를 수신하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하도록 구성될 수 있다.The server 230 according to an embodiment may include a communication module 232, a memory 242, and at least one processor 234 operatively connected to the communication module and the memory. The at least one processor may be configured to receive a metadata request of an application from an electronic device through the communication module. The at least one processor may be configured to transmit metadata including a first performance parameter for the application to the electronic device through the communication module. The at least one processor may be configured to receive performance data related to execution of the application through the communication module while the application is being executed in the electronic device. The at least one processor may be configured to identify the in-play section based on feature values related to the in-play section of the application extracted from the performance data. The at least one processor may be configured to calculate a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period. The at least one processor may be configured to transmit the second performance parameter to the electronic device through the communication module.
일 실시예에서 상기 성능 데이터는, 상기 어플리케이션과 관련된 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다.In one embodiment, the performance data includes frames per second (FPS) related to the application, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic It may include at least one of the types of networks to which the device is connected.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 낫-인플레이 구간으로 판단하고, 상기 낫-인플레이 구간을 제외한 나머지 시간 구간을 상기 인플레이 구간으로 판단하며, 상기 인플레이 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 상기 제2 성능 파라미터를 생성하도록 구성될 수 있다.In one embodiment, the at least one processor determines a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated as sickle-in-play intervals, and the sickle - A time interval other than the in-play interval may be determined as the in-play interval, and the second performance parameter may be generated based on the first element of the performance data collected in the in-play interval.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 현재값이 상기 인플레이 구간에 속하는지를 판단하고, 상기 현재값이 상기 인플레이 구간에 대응하는 것으로 식별된 경우 상기 현재값을 기반으로 상기 제2 성능 파라미터를 생성하도록 구성될 수 있다.In one embodiment, the at least one processor determines whether the current value belongs to the in-play section according to a difference between a current value of a second element of the performance data and a minimum value of the second element during a session related to the application; , When the current value is identified as corresponding to the in-play section, the second performance parameter may be generated based on the current value.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화가 감지되는 시점에서 상기 인플레이 구간의 시작 또는 종료를 판정하고, 상기 판정 결과에 따라 상기 인플레이 구간을 식별하고, 상기 식별된 인플레이 구간에 대응되는 상기 성능 데이터의 제4 요소를 기반으로 상기 제2 성능 파라미터를 생성하도록 구성될 수 있다.In one embodiment, the at least one processor determines the start or end of the in-play section at a time point when a change in the third element of the performance data is detected during a session related to the application, and determines the in-play section according to the determination result. and generate the second performance parameter based on a fourth element of the performance data corresponding to the identified in-play section.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 성능 데이터 중 상기 어플리케이션의 세션 동안 제1 시점에서 상기 전자 장치에서 네트워크를 통해 전송된 업로드 데이터 양이 제1 임계값을 초과하는 경우 상기 업로드 데이터 양을 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하도록 구성될 수 있다.In one embodiment, the at least one processor determines the amount of upload data when the amount of upload data transmitted through the network from the electronic device at a first point in time during the session of the application among the performance data exceeds a first threshold. It may be configured to determine the in-play data corresponding to the in-play section.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 세션 동안 상기 전자 장치의 최대 배터리 퍼센트와 제2 시점의 현재 배터리 퍼센트 간의 차이가 제2 임계값을 초과하는 경우 상기 현재 배터리 퍼센트를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하도록 구성될 수 있다.In one embodiment, when a difference between a maximum battery percentage of the electronic device during the session and a current battery percentage at a second time point exceeds a second threshold value, the at least one processor corresponds to the current battery percentage to the in-play period. It can be configured to determine the in-play data to be.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 세션 동안 상기 전자 장치의 최소 표면 온도와 제3 시점의 현재 표면 온도 간의 차이가 제3 임계값을 초과하는 경우 상기 현재 표면 온도를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하도록 구성될 수 있다.In an embodiment, when a difference between a minimum surface temperature of the electronic device and a current surface temperature at a third time point during the session exceeds a third threshold, the at least one processor corresponds to the current surface temperature as the in-play section. It can be configured to determine the in-play data to be.
일 실시예에서 상기 적어도 하나의 프로세서는, 상기 세션 동안 제4 시점의 FPS(frame per second)가 제4 임계값보다 작은 경우 상기 FPS를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하도록 구성될 수 있다.In one embodiment, the at least one processor may be configured to determine the FPS as in-play data corresponding to the in-play section when a frame per second (FPS) of a fourth time point during the session is less than a fourth threshold value. .
일 실시예에 따른 전자 장치(200)는, 통신 모듈(208), 디스플레이(203), 메모리(206), 및 상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서(210)를 포함할 수 있다. 상기 적어도 하나의 프로세서는, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는, 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성될 수 있다.The electronic device 200 according to an embodiment includes a communication module 208, a display 203, a memory 206, and at least one processor operatively connected to the communication module, the display, and the memory ( 210) may be included. The at least one processor may be configured to execute the application based on a first performance parameter in response to an application execution request. The at least one processor may be configured to collect performance data related to the execution of the application while the application is being executed. The at least one processor may be configured to determine the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data. The at least one processor may be configured to obtain a second performance parameter for improving performance of the application based on the performance data and/or the characteristic values. The at least one processor may be configured to execute the application based on the second performance parameter.
일 실시예에 따른 전자 장치의 동작 방법은, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작(808)을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작(810)을 포함할 수 있다. 상기 방법은 상기 성능 데이터를 서버로 보고하는 동작(812)을 포함할 수 있다. 상기 방법은 상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 서버로부터 수신하는 동작(814)을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작(816)을 포함할 수 있다.An operating method of an electronic device according to an embodiment may include an operation 808 of executing the application based on a first performance parameter in response to a request for executing the application. The method may include an operation 810 of collecting performance data related to the execution of the application while the application is being executed. The method may include an act 812 of reporting the performance data to a server. The method may include an operation 814 of receiving a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data from the server through the communication module. The method may include an operation 816 of executing the application based on the second performance parameter.
일 실시예에서 상기 성능 데이터는, 상기 어플리케이션의 실행 화면이 상기 디스플레이에 표시되는 동안의 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다.In one embodiment, the performance data includes FPS (frame per second), surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, while the execution screen of the application is displayed on the display, It may include at least one of the screen brightness of the display or the type of network to which the electronic device is connected.
일 실시예에서 상기 제2 성능 파라미터는, 상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 제외한 나머지 시간 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 생성될 수 있다.In one embodiment, the second performance parameter is the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated. It can be generated based on the first element of
일 실시예에서 상기 제2 성능 파라미터는, 상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 인플레이 구간에 대응하는 것으로 식별된 상기 현재값을 기반으로 생성될 수 있다. In one embodiment, the second performance parameter is the current value identified as corresponding to the in-play section according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. can be created based on
일 실시예에서 상기 제2 성능 파라미터는, 상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화에 따라 상기 인플레이 구간에 대응되는 것으로 식별된 상기 성능 데이터의 제4 요소를 기반으로 생성될 수 있다.In an embodiment, the second performance parameter may be generated based on a fourth element of the performance data identified as corresponding to the in-play section according to a change in the third element of the performance data during a session related to the application. there is.
일 실시예에서 상기 제2 성능 파라미터는, 상기 성능 데이터 중 상기 인플레이 구간의 판단과 관련된 중요도가 상대적으로 높은 적어도 하나의 제5 요소를 기반으로 생성될 수 있다.In an embodiment, the second performance parameter may be generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
일 실시예에 따른 서버(230)의 동작 방법은, 전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하는 동작(902)을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 전자 장치로 전송하는 동작(902)을 포함할 수 있다. 상기 방법은 상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 상기 전자 장치로부터 수신하는 동작(904)을 포함할 수 있다. 상기 방법은 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하는 동작(906)을 포함할 수 있다. 상기 방법은 상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하는 동작(908)을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터를 상기 전자 장치로 전송하는 동작(910)을 포함할 수 있다.A method of operating the server 230 according to an embodiment may include an operation 902 of receiving a metadata request of an application from an electronic device. The method may include an operation 902 of transmitting metadata including a first performance parameter for the application to the electronic device. The method may include an operation 904 of receiving performance data associated with execution of the application from the electronic device while the application is being executed in the electronic device. The method may include an operation 906 of identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data. The method may include an operation 908 of calculating a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play period. The method may include an operation 910 of transmitting the second performance parameter to the electronic device.
일 실시예에서 상기 성능 데이터는, 상기 어플리케이션과 관련된 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함할 수 있다.In one embodiment, the performance data includes frames per second (FPS) related to the application, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic It may include at least one of the types of networks to which the device is connected.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 낫-인플레이 구간으로 판단하는 동작과, 상기 낫-인플레이 구간을 제외한 나머지 시간 구간을 상기 인플레이 구간으로 판단하는 동작과, 상기 인플레이 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 상기 제2 성능 파라미터를 생성하는 동작을 포함할 수 있다.In an embodiment, the operation of calculating the second performance parameter determines a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated as a sickle-in-play interval. an operation of determining a time interval other than the sickle-in-play interval as the in-play interval, and an operation of generating the second performance parameter based on the first element of the performance data collected in the in-play interval. can include
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 현재값이 상기 인플레이 구간에 속하는지를 판단하는 동작과, 상기 현재값이 상기 인플레이 구간에 대응하는 것으로 식별된 경우 상기 현재값을 기반으로 상기 제2 성능 파라미터를 생성하는 동작을 포함할 수 있다.In an embodiment, the operation of calculating the second performance parameter may include setting the current value in the in-play period according to a difference between a current value of the second element of the performance data and a minimum value of the second element during a session related to the application. It may include an operation of determining whether it belongs, and an operation of generating the second performance parameter based on the current value when it is identified that the current value corresponds to the in-play section.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화가 감지되는 시점에서 상기 인플레이 구간의 시작 또는 종료를 판정하는 동작과, 상기 판정 결과에 따라 식별된 상기 인플레이 구간에 대응되는 상기 성능 데이터의 제4 요소를 기반으로 상기 제2 성능 파라미터를 생성하는 동작을 포함할 수 있다.In an embodiment, the calculating of the second performance parameter may include determining the start or end of the in-play section at a point in time when a change in the third element of the performance data is sensed during a session related to the application; and generating the second performance parameter based on a fourth element of the performance data corresponding to the in-play section identified according to a result.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 성능 데이터 중 상기 어플리케이션의 세션 동안 제1 시점에서 상기 전자 장치에서 네트워크를 통해 전송된 업로드 데이터 양이 제1 임계값을 초과하는 경우 상기 업로드 데이터 양을 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하는 동작을 포함할 수 있다.In an embodiment, the operation of calculating the second performance parameter may include, when an amount of upload data transmitted through a network from the electronic device at a first point in time during a session of the application among the performance data exceeds a first threshold value An operation of determining the amount of uploaded data as in-play data corresponding to the in-play section may be included.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 세션 동안 상기 전자 장치의 최대 배터리 퍼센트와 제2 시점의 현재 배터리 퍼센트 간의 차이가 제2 임계값을 초과하는 경우 상기 현재 배터리 퍼센트를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하는 동작을 포함할 수 있다.In an embodiment, the calculating of the second performance parameter may include calculating the current battery percentage when a difference between the maximum battery percentage of the electronic device during the session and the current battery percentage at a second time point exceeds a second threshold value. An operation of determining the in-play data corresponding to the in-play section may be included.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 세션 동안 상기 전자 장치의 최소 표면 온도와 제3 시점의 현재 표면 온도 간의 차이가 제3 임계값을 초과하는 경우 상기 현재 표면 온도를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하는 동작을 포함할 수 있다.In an embodiment, the calculating of the second performance parameter may include setting the current surface temperature as the current surface temperature when a difference between the minimum surface temperature of the electronic device during the session and the current surface temperature at a third time point exceeds a third threshold value. An operation of determining the in-play data corresponding to the in-play section may be included.
일 실시예에서 상기 제2 성능 파라미터를 산출하는 동작은, 상기 세션 동안 제4 시점의 FPS(frame per second)가 제4 임계값보다 작은 경우 상기 FPS를 상기 인플레이 구간에 대응하는 인플레이 데이터로 판단하는 동작을 포함할 수 있다.In one embodiment, the operation of calculating the second performance parameter may include determining the FPS as in-play data corresponding to the in-play section when a frame per second (FPS) of a fourth time point during the session is smaller than a fourth threshold value. Actions may be included.
일 실시예에 따른 전자 장치(200)의 동작 방법은, 어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작(1008)을 포함할 수 있다. 상기 방법은 상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작(1010)을 포함할 수 있다. 상기 방법은 상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하는 동작(1012,1014)을 포함할 수 있다. 상기 방법은 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하는 동작(1016)을 포함할 수 있다. 상기 방법은 상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작(1018)을 포함할 수 있다.An operating method of the electronic device 200 according to an embodiment may include an operation 1008 of executing the application based on a first performance parameter in response to a request for executing the application. The method may include an operation 1010 of collecting performance data related to the execution of the application while the application is being executed. The method may include operations 1012 and 1014 of determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data. there is. The method may include an operation 1016 of obtaining a second performance parameter for improving the performance of the application based on the performance data and/or the feature values. The method may include an operation 1018 of executing the application based on the second performance parameter.
본 개시의 실시예들에 따른 전자 장치는 어플리케이션의 원활한 실행을 위한 성능 파라미터를 획득하고, 성능 파라미터에 기반하여 어플리케이션을 실행함으로써 어플리케이션의 체감 실행 성능을 향상시킬 수 있다.An electronic device according to embodiments of the present disclosure may obtain performance parameters for smooth execution of an application and execute the application based on the performance parameters, thereby improving perceived execution performance of the application.
본 개시의 실시예들에 따르면 전자 장치에서 어플리케이션 실행 시 실제로 게임이 플레이되는 인플레이 구간에서 실행 성능의 개선에 필요한 데이터를 수집함으로써 보다 정확한 성능 파라미터를 획득할 수 있고, 보다 정확한 성능 파라미터에 기반하여 어플리케이션을 실행하도록 함으로써, 부정확한 성능 파라미터로 인한 성능 저하 또는 발열 발생을 줄일 수 있다. According to the embodiments of the present disclosure, when an application is executed in an electronic device, more accurate performance parameters can be obtained by collecting data necessary for improving execution performance in an in-play section where a game is actually played, and based on the more accurate performance parameters, the application , it is possible to reduce performance deterioration or generation of heat due to inaccurate performance parameters.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.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.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 개시의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be devices of various types. The electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance. An electronic device according to an embodiment of the present disclosure is not limited to the aforementioned devices.
본 개시의 다양한 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.Various embodiments of the present disclosure and terms used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, like reference numbers may be used for like or related elements. The singular form of a noun corresponding to an item may include one item or a plurality of items, unless the relevant context clearly dictates otherwise. In this document, "A or B", "at least one of A and B", "at least one of A or B," "A, B or C," "at least one of A, B and C," and "A Each of the phrases such as "at least one of , B, or C" may include any one of the items listed together in that phrase, or all possible combinations thereof. Terms such as "first", "second", or "first" or "secondary" may simply be used to distinguish a given component from other corresponding components, and may be used to refer to a given component in another aspect (eg, importance or order) is not limited. A (e.g., first) component is said to be "coupled" or "connected" to another (e.g., second) component, with or without the terms "functionally" or "communicatively." When mentioned, it means that the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in this document may include a unit implemented by hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 개시의 다양한 실시예는 기기(machine)(예: 전자 장치(101))에 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present disclosure provide one or more stored in a storage medium (eg, internal memory 136 or external memory 138) readable by a machine (eg, electronic device 101). It may be implemented as software (eg, program 140) containing instructions. For example, a processor (eg, the processor 120 ) of a device (eg, the electronic device 101 ) may call at least one command among one or more instructions stored from a storage medium and execute it. This enables the device to be operated to perform at least one function according to the at least one command invoked. The one or more instructions may include code generated by a compiler or code executable by an interpreter. Device-readable storage media may be provided in the form of non-transitory storage media. Here, 'non-temporary' only means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
일 실시예에 따르면, 본 문서에 개시된 예에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to the example 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.
다양한 실시예에 따르면, 명령들을 저장하고 있는 비휘발성 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 본 개시에 설명된 실시예들에 따른 적어도 하나의 동작을 수행하도록 설정된 것일 수 있다. According to various embodiments, in a non-volatile storage medium storing instructions, the instructions, when executed by at least one processor, cause the at least one processor to perform at least one operation according to the embodiments described in the present disclosure. It may be set to perform.
그리고 본 명세서와 도면에 발명된 본 발명의 실시예들은 본 발명의 실시예에 따른 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 발명된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.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 (15)

  1. 전자 장치에 있어서, In electronic devices,
    통신 모듈;communication module;
    디스플레이;display;
    메모리; 및Memory; and
    상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,at least one processor in operative connection with the communication module, the display, and the memory, the at least one processor comprising:
    어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하고,Executing the application based on a first performance parameter in response to a request for execution of the application;
    상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하고,Collecting performance data associated with the execution of the application while the application is running;
    상기 성능 데이터를 상기 통신 모듈을 통해 서버로 보고하고,Reporting the performance data to a server through the communication module;
    상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 서버로부터 수신하고, Receiving a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data from the server through the communication module;
    상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성되는 것을 특징으로 하는 전자 장치.The electronic device, characterized in that configured to execute the application based on the second performance parameter.
  2. 제 1 항에 있어서, 상기 성능 데이터는,The method of claim 1, wherein the performance data,
    상기 어플리케이션의 실행 화면이 상기 디스플레이에 표시되는 동안의 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.FPS (frame per second) while the execution screen of the application is displayed on the display, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic An electronic device comprising at least one type of network to which the device is connected.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 제2 성능 파라미터는,The method of claim 1 or 2, wherein the second performance parameter is
    상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 제외한 나머지 시간 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 생성되거나,It is generated based on the first element of the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated;
    상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 인플레이 구간에 대응하는 것으로 식별된 상기 현재값을 기반으로 생성되거나, Generated based on the current value identified as corresponding to the in-play section according to a difference between the current value of the second element of the performance data and the minimum value of the second element during a session related to the application;
    상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화에 따라 상기 인플레이 구간에 대응되는 것으로 식별된 상기 성능 데이터의 제4 요소를 기반으로 생성되거나, 또는It is generated based on the fourth element of the performance data identified as corresponding to the in-play section according to the change of the third element of the performance data during the session related to the application, or
    상기 성능 데이터 중 상기 인플레이 구간의 판단과 관련된 중요도가 상대적으로 높은 적어도 하나의 제5 요소를 기반으로 생성되는 것을 특징으로 하는 전자 장치.The electronic device characterized in that it is generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
  4. 서버에 있어서, in the server,
    통신 모듈;communication module;
    메모리; 및Memory; and
    상기 통신 모듈 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,at least one processor operatively coupled with the communication module and the memory, the at least one processor comprising:
    상기 통신 모듈을 통해 전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하고,Receiving a metadata request of an application from an electronic device through the communication module;
    상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하고,Transmitting metadata including a first performance parameter for the application to the electronic device through the communication module;
    상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 통신 모듈을 통해 상기 어플리케이션의 실행과 연관된 성능 데이터를 수신하고,Receiving performance data related to the execution of the application through the communication module while the application is being executed in the electronic device;
    상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하고,Identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data;
    상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하고,Calculate a second performance parameter for improving the performance of the application based on the performance data and/or the feature values corresponding to the identified in-play section;
    상기 제2 성능 파라미터를 상기 통신 모듈을 통해 상기 전자 장치로 전송하도록 구성되는 것을 특징으로 하는 서버.and configured to transmit the second performance parameter to the electronic device via the communication module.
  5. 제 4 항에 있어서, 상기 성능 데이터는,The method of claim 4, wherein the performance data,
    상기 어플리케이션과 관련된 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 디스플레이 해상도, 디스플레이 주사율 또는 재생율, 디스플레이 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함하는 것을 특징으로 하는 서버.Characterized in that it includes at least one of FPS (frame per second) related to the application, surface temperature, processor load, network input/output, display resolution, display refresh rate or refresh rate, display screen brightness, or the type of network to which the electronic device is connected. server with .
  6. 제 4 항 또는 제 5 항에 있어서, 상기 적어도 하나의 프로세서는,The method of claim 4 or 5, wherein the at least one processor,
    상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 낫-인플레이 구간으로 판단하고,A time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated are determined as sickle-in-play intervals;
    상기 낫-인플레이 구간을 제외한 나머지 시간 구간을 상기 인플레이 구간으로 판단하며,The remaining time interval excluding the sickle-in-play interval is determined as the in-play interval;
    상기 인플레이 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 상기 제2 성능 파라미터를 생성하도록 구성되는 것을 특징으로 하는 서버.and generating the second performance parameter based on the first element of the performance data collected in the in-play period.
  7. 제 4 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 적어도 하나의 프로세서는,The method of any one of claims 4 to 6, wherein the at least one processor,
    상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 현재값이 상기 인플레이 구간에 속하는지를 판단하고,determining whether the current value belongs to the in-play section according to a difference between a current value of a second element of the performance data and a minimum value of the second element during a session related to the application;
    상기 현재값이 상기 인플레이 구간에 대응하는 것으로 식별된 경우 상기 현재값을 기반으로 상기 제2 성능 파라미터를 생성하도록 구성되는 것을 특징으로 하는 서버.and generating the second performance parameter based on the current value when it is identified that the current value corresponds to the in-play section.
  8. 전자 장치에 있어서, In electronic devices,
    통신 모듈;communication module;
    디스플레이;display;
    메모리; 및Memory; and
    상기 통신 모듈, 상기 디스플레이, 및 상기 메모리와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,at least one processor in operative connection with the communication module, the display, and the memory, the at least one processor comprising:
    어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하고,Executing the application based on a first performance parameter in response to a request for execution of the application;
    상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하고,Collecting performance data associated with the execution of the application while the application is running;
    상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하고,determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data;
    상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하고,Obtaining a second performance parameter for improving performance of the application based on the performance data and/or the feature values;
    상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하도록 구성되는 것을 특징으로 하는 전자 장치.The electronic device, characterized in that configured to execute the application based on the second performance parameter.
  9. 전자 장치의 동작 방법에 있어서, In the method of operating an electronic device,
    어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작과,Executing the application based on a first performance parameter in response to a request to execute the application;
    상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작과,collecting performance data related to the execution of the application while the application is being executed;
    상기 성능 데이터를 서버로 보고하는 동작과,An operation of reporting the performance data to a server;
    상기 성능 데이터 중 상기 어플리케이션의 인플레이 구간에 대응하는 인플레이 데이터를 기반으로 생성된 제2 성능 파라미터를 상기 서버로부터 수신하는 동작과, receiving, from the server, a second performance parameter generated based on in-play data corresponding to an in-play section of the application among the performance data;
    상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함하는 것을 특징으로 하는 방법.and executing the application based on the second performance parameter.
  10. 제 9 항에 있어서, 상기 성능 데이터는,The method of claim 9, wherein the performance data,
    상기 어플리케이션의 실행 화면이 디스플레이에 노출되는 동안의 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.FPS (frame per second) while the execution screen of the application is exposed on the display, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic device A method comprising at least one of the types of networks being accessed.
  11. 제 9 항 또는 제 10 항에 있어서, 상기 제2 성능 파라미터는,11. The method of claim 9 or 10, wherein the second performance parameter is
    상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 제외한 나머지 시간 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 생성되거나,It is generated based on the first element of the performance data collected in the remaining time intervals other than a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated;
    상기 성능 데이터의 제2 요소의 현재값과 상기 어플리케이션에 관련된 세션 도중 상기 제2 요소의 최소값 간의 차이에 따라 상기 인플레이 구간에 대응하는 것으로 식별된 상기 현재값을 기반으로 생성되거나, Generated based on the current value identified as corresponding to the in-play section according to a difference between the current value of the second element of the performance data and the minimum value of the second element during a session related to the application;
    상기 어플리케이션과 관련된 세션 도중 상기 성능 데이터의 제3 요소의 변화에 따라 상기 인플레이 구간에 대응되는 것으로 식별된 상기 성능 데이터의 제4 요소를 기반으로 생성되거나, 또는It is generated based on the fourth element of the performance data identified as corresponding to the in-play section according to the change of the third element of the performance data during the session related to the application, or
    상기 성능 데이터 중 상기 인플레이 구간의 판단과 관련된 중요도가 상대적으로 높은 적어도 하나의 제5 요소를 기반으로 생성되는 것을 특징으로 하는 방법.Characterized in that the method is generated based on at least one fifth element having a relatively high importance related to the determination of the in-play section among the performance data.
  12. 서버의 동작 방법에 있어서, In the method of operating the server,
    전자 장치로부터 어플리케이션의 메타데이터 요청을 수신하는 동작과,Receiving a metadata request of an application from an electronic device;
    상기 어플리케이션을 위한 제1 성능 파라미터를 포함하는 메타데이터를 상기 전자 장치로 전송하는 동작과,Transmitting metadata including a first performance parameter for the application to the electronic device;
    상기 전자 장치에서 상기 어플리케이션이 실행되는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 상기 전자 장치로부터 수신하는 동작과,receiving performance data related to the execution of the application from the electronic device while the application is being executed in the electronic device;
    상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간을 식별하는 동작과,identifying the in-play section based on feature values related to the in-play section of the application extracted from the performance data;
    상기 식별된 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 산출하는 동작과,Calculating a second performance parameter for improving the performance of the application based on the performance data and/or the characteristic values corresponding to the identified in-play section;
    상기 제2 성능 파라미터를 상기 전자 장치로 전송하는 동작을 포함하는 것을 특징으로 하는 방법.and transmitting the second performance parameter to the electronic device.
  13. 제 12 항에 있어서, 상기 성능 데이터는,The method of claim 12, wherein the performance data,
    상기 어플리케이션의 실행 화면이 디스플레이에 노출되는 동안의 FPS(frame per second), 표면 온도, 프로세서 부하, 네트워크 입출력, 상기 디스플레이의 해상도, 상기 디스플레이의 주사율 또는 재생율, 상기 디스플레이의 화면 밝기, 또는 상기 전자 장치가 접속중인 네트워크의 종류 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.FPS (frame per second) while the execution screen of the application is exposed on the display, surface temperature, processor load, network input/output, resolution of the display, refresh rate or refresh rate of the display, screen brightness of the display, or the electronic device A method comprising at least one of the types of networks being accessed.
  14. 제 12 항 또는 제 13 항에 있어서, 상기 제2 성능 파라미터를 산출하는 동작은,The method of claim 12 or 13, wherein the calculating of the second performance parameter comprises:
    상기 어플리케이션이 실행된 이후 미리 정해지는 길이의 시간 구간과, 상기 어플리케이션이 종료되기 이전 미리 정해지는 길이의 시간 구간을 낫-인플레이 구간으로 판단하는 동작과,Determining a time interval of a predetermined length after the application is executed and a time interval of a predetermined length before the application is terminated as sickle-in-play intervals;
    상기 낫-인플레이 구간을 제외한 나머지 시간 구간을 상기 인플레이 구간으로 판단하는 동작과,Determining a remaining time section excluding the sickle-in-play section as the in-play section;
    상기 인플레이 구간에서 수집된 상기 성능 데이터의 제1 요소를 기반으로 상기 제2 성능 파라미터를 생성하는 동작을 포함하는 것을 특징으로 하는 방법.and generating the second performance parameter based on the first element of the performance data collected in the in-play section.
  15. 전자 장치의 동작 방법에 있어서, In the method of operating an electronic device,
    어플리케이션의 실행 요청에 응답하여 제1 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작과,Executing the application based on a first performance parameter in response to a request to execute the application;
    상기 어플리케이션을 실행하는 동안 상기 어플리케이션의 실행과 연관된 성능 데이터를 수집하는 동작과,collecting performance data related to the execution of the application while the application is being executed;
    상기 성능 데이터로부터 추출된 상기 어플리케이션의 인플레이 구간과 관련되는 특징값들을 기반으로 상기 인플레이 구간에 대응하는 상기 성능 데이터 및/또는 상기 특징값들을 결정하는 동작과,determining the performance data and/or the feature values corresponding to the in-play section of the application based on feature values related to the in-play section of the application extracted from the performance data;
    상기 성능 데이터 및/또는 상기 특징값들을 기반으로 상기 어플리케이션의 성능을 개선하기 위한 제2 성능 파라미터를 획득하는 동작과,obtaining a second performance parameter for improving the performance of the application based on the performance data and/or the feature values;
    상기 제2 성능 파라미터에 기반하여 상기 어플리케이션을 실행하는 동작을 포함하는 것을 특징으로 하는 방법.and executing the application based on the second performance parameter.
PCT/KR2022/015820 2021-11-15 2022-10-18 Electronic device for improving application execution performance, and operation method thereof WO2023085628A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210157029 2021-11-15
KR10-2021-0157029 2021-11-15
KR1020210159283A KR20230070984A (en) 2021-11-15 2021-11-18 Electronic device for improving performance of running application and method for operating thereof
KR10-2021-0159283 2021-11-18

Publications (1)

Publication Number Publication Date
WO2023085628A1 true WO2023085628A1 (en) 2023-05-19

Family

ID=86336384

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/015820 WO2023085628A1 (en) 2021-11-15 2022-10-18 Electronic device for improving application execution performance, and operation method thereof

Country Status (1)

Country Link
WO (1) WO2023085628A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132428A (en) * 1998-10-21 2000-05-12 Toshiba Corp Computer system, application monitoring method for computer system, and program recording medium
JP4621087B2 (en) * 2004-07-30 2011-01-26 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. System and method for operating load balancer for multiple instance applications
JP2013525885A (en) * 2010-04-16 2013-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Application non-progress detection
KR20180113861A (en) * 2017-04-07 2018-10-17 삼성전자주식회사 Method for controlling of traffic and an electronic device thereof
KR20200017260A (en) * 2018-08-08 2020-02-18 삼성전자주식회사 Method for executing application using clock speed of processor selected by external temperature and electronic device performing the method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132428A (en) * 1998-10-21 2000-05-12 Toshiba Corp Computer system, application monitoring method for computer system, and program recording medium
JP4621087B2 (en) * 2004-07-30 2011-01-26 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. System and method for operating load balancer for multiple instance applications
JP2013525885A (en) * 2010-04-16 2013-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Application non-progress detection
KR20180113861A (en) * 2017-04-07 2018-10-17 삼성전자주식회사 Method for controlling of traffic and an electronic device thereof
KR20200017260A (en) * 2018-08-08 2020-02-18 삼성전자주식회사 Method for executing application using clock speed of processor selected by external temperature and electronic device performing the method

Similar Documents

Publication Publication Date Title
WO2020204299A1 (en) Electronic device for controlling beam on basis of data collected by camera, and operation method of electronic device
WO2022019681A1 (en) Edge computing system and method for recommending connection device
WO2021075774A1 (en) Method for controlling iot device and electronic device therefor
WO2020246794A1 (en) Method for processing data and electronic device for supporting same
WO2023085628A1 (en) Electronic device for improving application execution performance, and operation method thereof
WO2020045858A1 (en) Electronic apparatus and method of controlling the same
WO2022203168A1 (en) Electronic device for transmitting data through uwb communication, and electronic device operating method
WO2022124846A1 (en) Hub device of iot environment, and method for processing event based on local network
WO2021256709A1 (en) Electronic device and operating method of electronic device
WO2022145914A1 (en) Method for finding audio output device by using power supply device and power supply device thereof
WO2022139262A1 (en) Electronic device for editing video by using object of interest, and operating method therefor
WO2022060046A1 (en) Edge computing system and handover method for edge computing device
WO2021150035A1 (en) Electronic device for processing radio signal and operating method thereof
WO2022092458A1 (en) Electronic device and method for determining device for performing task in electronic device
WO2023059012A1 (en) Electronic device for configuring twt parameter on basis of response signal received from external electronic device of another bss, and operation method of electronic device
WO2023132506A1 (en) Electronic device and position measurement method using same
WO2024080543A1 (en) Electronic device for generating video summary, and operating method therefor
WO2019066615A1 (en) Electronic device, and method for controlling antenna of electronic device
WO2022177133A1 (en) Electronic device for determining location of external electronic device, and operation method of electronic device
WO2023054939A1 (en) Data transmission device and method
WO2024071930A1 (en) Electronic device including display driver circuit that adaptively stores image
WO2022173117A1 (en) Electronic device and method for correcting pixel data in electronic device
WO2023146149A1 (en) Method for providing image, and electronic device for supporting same
WO2022239931A1 (en) Electronic device and method for capturing image by electronic device
WO2023085853A1 (en) Electronic device for recovering file and operation method of electronic device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22893051

Country of ref document: EP

Kind code of ref document: A1