KR101644653B1 - 단말 적합성 애플리케이션 최적화장치 및 방법 - Google Patents
단말 적합성 애플리케이션 최적화장치 및 방법 Download PDFInfo
- Publication number
- KR101644653B1 KR101644653B1 KR1020100024850A KR20100024850A KR101644653B1 KR 101644653 B1 KR101644653 B1 KR 101644653B1 KR 1020100024850 A KR1020100024850 A KR 1020100024850A KR 20100024850 A KR20100024850 A KR 20100024850A KR 101644653 B1 KR101644653 B1 KR 101644653B1
- Authority
- KR
- South Korea
- Prior art keywords
- terminal
- application code
- application
- performance
- code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3325—Reformulation based on results of preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
Abstract
애플리케이션을 각 클라이언트에서 수행환경에 맞게 최적화하여 배포하는 기술이 개시된다. 본 발명의 일 양상에 따라, 다양한 CE장비의 수행환경에 맞도록 성능을 최적화하여 고성능 애플리케이션으로 재가공해서 배포하는 애플리케이션 배포기술을 제공할 수 있다.
Description
향상된 성능의 CE장비의 복잡하고 다양한 구조의 하드웨어 아키텍쳐를 효율적으로 활용할 수 있는 고성능의 소프트웨어를 배포할 수 있는 장치 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어 개발자가 제공한 애플리케이션을 필요에 따라 다양한 CE장비의 수행환경에 맞도록 성능을 최적화하여 고성능 애플리케이션으로 재가공해서 배포하는 애플리케이션 최적화장치 및 방법에 관한 것이다.
프로그래머의 확산으로 기존의 소프트웨어 공급업체뿐만 아니라, 일반 개인 소프트웨어 개발자도 자신의 아이디어를 바탕으로 소비자의 요구에 맞는 프로그램을 만들어 낼 수 있게 되었다. 이러한 상황에서 소프트웨어 개발자가 만들어 낸 다양한 프로그램을 TV, 휴대폰, MP3 등의 다양한 CE장비에서 활용할 수 있도록 배포하고 있으나 각각의 CE장비는 서로 다른 수행환경을 가지고 있기 때문에 하나의 프로그램이 다양한 CE장비에 맞도록 배포를 하는데 어려움이 있다. 특히, 멀티코어(Multicore)를 포함하는 CE장비의 경우 향상된 성능을 기대하지만 상세한 하드웨어 아키텍쳐와 애플리케이션 코드의 병렬성 등의 특징에 맞게 애플리케이션을 변경해 주어야 한다.
여러가지 이종 단말에 대해, 점점 더 고성능이 요구되어지는 애플리케이션을 단순히 수행 가능하도록 만드는 것으로는 대단히 비효율적이며, 모든 장비에 대한 수행환경을 고려하여 소프트웨어 개발자가 애플리케이션을 변경하는 것에도 한계가 있다. 따라서, 애플리케이션을 각 클라이언트의 수행환경에 맞게 최적화하여 배포하는 기술은 고성능/고효율을 지향하는 새로운 CE환경에서 반드시 필요한 기술이다.
소프트웨어 개발자가 단말의 기종에 상관없이 애플리케이션을 작성하여 제공할 수 있도록 한다.
다양한 단말의 지원 가능한 기구 세트나 가용 하드웨어의 종류 등에 따라 애플리케이션 코드를 다르게 최적화하고, 사용자의 사용패턴이나 입력패턴에 따라 서로 다른 최적화를 수행할 수 있다.
단말의 요구에 따라 반복적/선택적으로 최적화가 수행된 애플리케이션을 배포할 수 있다.
본 발명의 일 양상에 따른 단말 적합성 애플리케이션 최적화장치는 단말로부터 단말의 수행환경 및 요구조건을 전달받고, 단말에 애플리케이션 코드를 전송하는 인터페이스부, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변환하여 생성하는 코드생성부 및 생성된 애플리케이션 코드를 수행환경에서 수행하여 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 성능검토부를 포함할 수 있다.
본 발명의 일 양상에 따른 단말 적합성 애플리케이션 최적화방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하는 단계 및 수행된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 단계를 포함할 수 있다.
본 발명의 다른 일 양상에 따른 단말 적합성 애플리케이션 최적화 방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고, 애플리케이션 코드에 성능조사를 위한 성능코드를 삽입하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하여 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계, 생성된 프로파일을 이용하여 애플리케이션 코드를 수행환경 및 요구조건에 맞게 변형하여 생성하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 양상에 따른 단말 적합성 애플리케이션 최적화방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계, 생성된 튜닝파라미터에 맞춘 애플리케이션 코드를 생성하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하는 단계 및 생성된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 단계를 포함할 수 있다.
또한, 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 하나 이상의 튜닝파라미터를 생성하는 단계, 생성된 튜닝파라미터에 맞춘 하나 이상의 애플리케이션 코드를 생성하는 단계 및 생성된 하나 이상의 애플리케이션 코드의 성능을 비교하여 요구조건에 적합한 하나의 애플리케이션 코드를 선택하는 단계를 더 포함할 수 있다.
단말의 수행환경에 따른 성능 저하를 고려하지 않고 프로그램을 개발할 수 있다.
단말에 버츄얼 머신(virtual machine) 컴파일러(compiler), 툴체인(toolchain) 등의 부가장치 없이 최적화된 성능의 애플리캐이션을 활용할 수 있다.
멀티코어를 탑재한 단말에 대한 병렬 프로그램의 병렬화 최적화를 편리하게 자동으로 수행할 수 있으며, 자신의 하드웨어와 소프트웨어에 가장 적합한 병렬화 최적화된 프로그램을 손쉽게 얻을 수 있다.
수행된 최적화에 만족하지 않을 경우, 여러 번 최적화를 요청하여 선택적/반복적으로 더 높은 수준의 최적화된 애플리케이션을 획득할 수 있다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션 최적화를 위한 기본구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 단말과 애플리케이션 최적화장치 간의 애플리케이션 최적화 과정을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 애플리케이션 최적화 장치를 나타낸 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅰ)이다.
도 5는 본 발명의 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅱ)이다.
도 6은 본 발명의 또 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅲ)이다.
도 2는 본 발명의 일 실시예에 따른 단말과 애플리케이션 최적화장치 간의 애플리케이션 최적화 과정을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 애플리케이션 최적화 장치를 나타낸 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅰ)이다.
도 5는 본 발명의 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅱ)이다.
도 6은 본 발명의 또 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅲ)이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션 최적화를 위한 기본구조를 나타낸 도면이다.
도 1을 참조하면, 애플리케이션 최적화를 위한 기본구조는 애플리케이션 최적화 장치(100), 애플리케이션 저장 서버(110), 단말(120)을 포함할 수 있다.
애플리케이션 최적화 장치(100), 애플리케이션 저장 서버(110), 단말(120)은 네트워크 상에 서로 연결되어 있으며, 단말(120)에서 애플리케이션 최적화 장치(100)로 특정 애플리케이션에 대한 최적화를 요청하게 되면 애플리케이션 최적화 장치(100)는 단말(120)로부터 단말의 수행환경 및 요구조건을 전달받아 애플리케이션의 최적화를 수행하게 된다.
이 경우 해당 애플리케이션은 애플리케이션 저장서버(110) 또는 단말(120)로부터 전송받을 수 있다.
수행환경은 단말의 장치스펙, 운영체제, 사용가능한 라이브러리, 입력데이터 정보 등을 포함할 수 있으며, 요구조건은 처리속도, 메모리 용량, 최적화 제한시간, 튜닝파라미터 개수, 특정 튜닝파라미터 지정 정보 등을 포함할 수 있다. 튜닝파라미터는 애플리케이션 코드에서 단말의 수행환경과 요구조건에 따라 변환되어야 하는 부분들에 대하여 표시되고 어떻게 변환되어야 하는지를 나타내는 정보이다.
도 2는 본 발명의 일 실시예에 따른 단말과 애플리케이션 최적화장치 간의 애플리케이션 최적화 과정을 나타낸 도면이다.
단말(120)에서 단말이 보유한 장비의 스펙 등에 대한 수행환경 및 애플리케이션의 성능 등에 대한 요구조건을 작성하고(200), 작성된 수행환경 및 요구조건과 수행하고자 하는 애플리케이션을 애플리케이션 최적화 장치(100)에 전송한다. 이 경우 수행하고자 하는 애플리케이션은 애플리케이션 저장 서버로부터 전송받도록 요청할 수 있다.
단말(120)로부터 수행환경 및 요구조건 또는 애플리케이션을 전송받으면(220), 수행환경 및 요구조건을 고려하여 단말(120)의 요구조건에 최적으로 부합하여 단말에서 수행될 수 있는 새로운 애플리케이션 코드를 생성하고(230), 생성된 새로운 애플리케이션 코드를 단말(120)에 전송한다(240). 이 경우 애플리케이션 최적화 장치(100)는 자신이 보유한 IR-to-native 컴파일러(compiler), 버츄얼 머신(virtual machine), 클라이언트 디바이스 시뮬레이터(client device simulator) 등의 엔진을 이용하여 애플리케이션 코드를 변환하고 변환된 코드에 대해 클라이언트 단말과 동일한 수행환경에서 시뮬레이션을 수행하여 요구조건에 부합하는 성능을 나타내는지를 판별할 수 있으며, 단말(120)에서 직접 변환된 코드에 대한 수행을 통하여 성능 검증을 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 애플리케이션 최적화 장치(100)를 나타낸 블럭도이다.
도 3을 참조하면, 애플리케이션 최적화 장치(100)는 인터페이스부(300), 튜닝파라미터 생성부(310), 코드생성부(320), 성능검토부(330), 코드저장부(340)를 포함할 수 있다.
인터페이스부(300)는 단말로부터 단말의 수행환경 및 요구조건을 전달받고, 단말에 애플리케이션 최적화 장치(100)에서 생성한 애플리케이션 코드를 전송한다.
코드생성부(320)는 단말의 수행환경에서 요구조건에 가장 적합한 애플리케이션 코드를 변환하여 생성한다.
성능검토부(330)는 이렇게 생성된 애플리케이션 코드를 수행환경에서 수행하여 생성된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하게 된다. 이 경우 성능검토부(330)는 버츄얼 머신(virtual machine), 클라이언트 디바이스 시뮬레이터(client device simulator) 등의 엔진을 이용하여 애플리케이션 코드를 클라이언트 단말과 동일한 수행환경에서 시뮬레이션을 수행하여 요구조건에 부합하는 성능을 나타내는지를 판별할 수 있으며, 단말에서 직접 변환된 코드에 대한 수행을 통하여 성능 검증을 수행할 수 있다.
이때 애플리케이션 코드는 시뮬레이션 수행 엔진 또는 단말에 따라 native 코드, IR 코드 등으로 변환되어 수행될 수 있다.
성능검토부(330)는 코드수행부와 성능비교부로 구성될 수 있다. 코드수행부는 단말의 수행환경으로 설정하고 수행환경에서 생성된 애플리케이션 코드를 실제로 수행하는 역할을 하며, 성능비교부는 수행된 애플리케이션 코드의 성능이 요구조건에 만족하는지 비교하는 역할을 한다.
튜닝파라미터 생성부(310)는 애플리케이션 코드의 성능이 요구조건을 만족하지 못하는 것으로 판별된 경우, 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성한다. 애플리케이션 코드의 성능은 수행속도가 빠른가, 메모리를 적게 사용하는가 등의 요구조건을 만족하는지를 판단하여 평가한다.
코드저장부(340)는 성능검토부(330)에서 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우 해당 단말과 코드를 매핑하여 저장한다. 이렇게 코드저장부(340)에 단말과 애플리케이션 코드가 저장되면 동일한 단말이 동일한 애플리케이션에 대하여 동일한 요구조건 또는 다른 요구조건에서 애플리케이션 최적화를 요청할 경우 저장된 애플리케이션 코드를 활용하여 보다 빠르고 최적화된 애플리케이션 코드를 생성하여 제공할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅰ)이다.
먼저, 단말로부터 단말의 수행환경 및 요구조건을 전달받는다(400), 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고(410), 생성된 애플리케이션 코드를 수행환경에서 수행한다(420).
수행된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하여(430) 요구조건에 적합한 것으로 판단되면 단말로 생성된 애플리케이션을 전송하게 된다.
이 경우 수행된 애플리케이션 코드의 성능이 요구조건을 만족하지 못하는 것으로 판별된 경우에는 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하고(440) 생성된 튜닝파라미터에 따라 새로운 애플리케이션 코드를 생성하는 과정(410)부터 다시 수행하게 된다.
도 5는 본 발명의 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅱ)이다.
도 5의 애플리케이션 최적화 방법은 런타임(Runtime) 프로파일(profile) 정보를 이용한 최적화 방법에 관한 것으로 애플리케이션을 한번 수행한 후 그 수행정보(프로파일 정보)를 이용해서 최적화 할 수 있음을 전제로 한 것이다.
먼저, 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는다(500).
전달받은 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고, 애플리케이션 코드에 성능조사를 위한 성능코드를 삽입한다(510).
여기서, 애플리케이션 코드는 애플리케이션 IR코드가 될 수 있으며, 애플리케이션 IR코드에 성능조사를 위한 성능코드(instrument 코드)를 삽입하여 구현할 수 있다.
생성된 애플리케이션 코드를 수행환경에서 수행하여 애플리케이션 코드의 성능에 대한 프로파일을 생성한다(520). 이 경우, 애플리케이션 코드를 버츄얼 머신(virtual machine) 등의 엔진을 이용하여 수행하고 그 프로파일 정보를 생성할 수 있다.
또한, 애플리케이션 IR코드에 성능조사를 위한 성능코드(instrument 코드)를 삽입하여 이를 native 코드로 컴파일(compile)하고, instrument 코드의 수행위치에 따라 클라이언트 디바이스 시뮬레이터(client device simulator) 또는 클라이언트 단말에서 직접 native 코드를 수행한 후 프로파일 정보를 생성할 수 있다.
생성된 애플리케이션 코드를 단말에서 직접 수행하여 애플리케이션 코드의 성능에 대한 프로파일을 생성할 수 있다.
생성된 프로파일을 이용하여 애플리케이션 코드를 수행환경 및 요구조건에 맞게 변형하여 생성한다(530).
이러한 일련의 과정(510부터 530까지)은 반복 수행되어 단말의 수행환경에서 요구조건을 만족시키는 최적의 애플리케이션 코드를 생성할 수 있게 된다.
도 6은 본 발명의 또 다른 일 실시예에 따른 애플리케이션 최적화 방법을 나타낸 흐름도(Ⅲ)이다.
먼저, 단말로부터 단말의 수행환경 및 요구조건을 전달받는다(600).
전달받은 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성한다(610). 생성된 튜닝파라미터에 맞춘 애플리케이션 코드를 생성하고(620), 생성된 애플리케이션 코드를 수행환경에서 수행한다(630). 생성된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하여(640), 요구조건에 적합한 것으로 판단되면 단말로 생성된 애플리케이션을 전송하게 된다.
이러한 일련의 과정(610부터 630까지)은 반복 수행되어 단말의 수행환경에서 요구조건을 만족시키는 최적의 애플리케이션 코드를 생성할 수 있게 된다.
또한, 튜닝파라미터를 생성할 경우(610), 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 하나 이상의 튜닝파라미터를 생성하고, 생성된 튜닝파라미터에 맞춘 하나 이상의 애플리케이션 코드를 생성하여, 생성된 하나 이상의 애플리케이션 코드의 성능을 비교하여 요구조건에 적합한 하나의 애플리케이션 코드를 선택하는 과정으로써 복수의 애플리케이션 코드를 병렬적으로 평가하여 단말에 최적의 애플리케이션 코드를 찾을 수도 있다.
이와 같이 도 4, 도 5, 도 6의 애플리케이션 최적화 방법은 개별적으로 수행될 수도 있으며, 각각의 조합을 통하여 또는 순차적으로 모든 방법을 수행하는 등의 다양한 방법으로 애플리케이션 최적화를 수행할 수 있을 것이다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
100 애플리케이션 최적화 장치
110 애플리케이션 저장 서버
120 클라이언트 단말
110 애플리케이션 저장 서버
120 클라이언트 단말
Claims (14)
- 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받고, 상기 단말에 애플리케이션 코드를 전송하는 인터페이스부;
상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변환하여 생성하는 코드생성부;
상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하여 상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 성능검토부; 및
상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 코드저장부; 를 포함하는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서, 상기 인터페이스부는
상기 단말로부터 상기 단말의 장치스펙, 운영체제, 사용가능한 라이브러리, 입력데이터 정보를 포함하는 수행환경을 전달받는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서, 상기 인터페이스부는
상기 단말로부터 처리속도, 메모리 용량, 제한시간, 튜닝파라미터 개수, 특정 튜닝파라미터 지정 정보를 포함하는 요구조건을 전달받는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서, 상기 코드생성부는
상기 애플리케이션 코드를 중간표현(Intermediate Representation)코드 또는 native 코드로 생성하는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서, 상기 성능검토부는
상기 단말의 수행환경으로 설정하고 상기 수행환경에서 상기 생성된 애플리케이션 코드를 수행하는 코드수행부; 및
상기 수행된 애플리케이션 코드의 성능이 상기 요구조건에 만족하는지 판별하는 성능비교부;를 포함하는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서, 상기 성능검토부는
상기 생성된 애플리케이션 코드를 상기 단말에서 직접 수행하여 상기 단말에서 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단말 적합성 애플리케이션 최적화장치. - 제 1 항에 있어서,
상기 성능검토부에서 상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하지 못하는 것으로 판별된 경우, 상기 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 튜닝파라미터 생성부;를 더 포함하는 단말 적합성 애플리케이션 최적화장치. - 삭제
- 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하는 단계;
상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하는 단계;
상기 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단계; 및
상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법. - 제 9 항에 있어서,
상기 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하지 못하는 것으로 판별된 경우, 상기 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계;를 더 포함하는 단말 적합성 애플리케이션 최적화방법. - 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고, 상기 애플리케이션 코드에 성능조사를 위한 성능코드를 삽입하는 단계;
상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하여 상기 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계;
상기 생성된 프로파일을 이용하여 상기 애플리케이션 코드를 상기 수행환경 및 요구조건에 맞게 변형하여 새로운 애플리케이션 코드를 생성하는 단계; 및
추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 새로운 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법. - 제 11 항에 있어서,
상기 생성된 애플리케이션 코드를 상기 단말에서 직접 수행하여 상기 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계;를 포함하는 단말 적합성 애플리케이션 최적화방법. - 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계;
상기 생성된 튜닝파라미터에 맞춘 애플리케이션 코드를 생성하는 단계;
상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하는 단계;
상기 생성된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단계; 및
상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법. - 제 13 항에 있어서,
상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 하나 이상의 튜닝파라미터를 생성하는 단계;
상기 생성된 튜닝파라미터에 맞춘 하나 이상의 애플리케이션 코드를 생성하는 단계; 및
상기 생성된 하나 이상의 애플리케이션 코드의 성능을 비교하여 상기 요구조건에 적합한 하나의 애플리케이션 코드를 선택하는 단계;를 더 포함하는 단말 적합성 애플리케이션 최적화방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100024850A KR101644653B1 (ko) | 2010-03-19 | 2010-03-19 | 단말 적합성 애플리케이션 최적화장치 및 방법 |
US12/959,852 US9383978B2 (en) | 2010-03-19 | 2010-12-03 | Apparatus and method for on-demand optimization of applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100024850A KR101644653B1 (ko) | 2010-03-19 | 2010-03-19 | 단말 적합성 애플리케이션 최적화장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110105615A KR20110105615A (ko) | 2011-09-27 |
KR101644653B1 true KR101644653B1 (ko) | 2016-08-02 |
Family
ID=44648231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100024850A KR101644653B1 (ko) | 2010-03-19 | 2010-03-19 | 단말 적합성 애플리케이션 최적화장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9383978B2 (ko) |
KR (1) | KR101644653B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2535813B1 (en) * | 2011-06-17 | 2018-08-15 | Accenture Global Services Limited | Method and device for generating an alert during an analysis of performance of a computer application |
KR101400799B1 (ko) * | 2012-03-09 | 2014-05-29 | (주)티아이스퀘어 | 사용자 단말기에 디바이스 제어 정보를 제공하는 방법 및 시스템과 이를 이용하여 어플리케이션을 실행하는 방법 및 사용자 단말기 |
EP2755133B1 (en) | 2013-01-10 | 2015-05-27 | Fujitsu Limited | Application execution controller and application execution method |
CN104216824A (zh) * | 2013-06-04 | 2014-12-17 | 北京千橡网景科技发展有限公司 | 用于测试移动终端的测试方法及测试系统 |
KR101649606B1 (ko) * | 2014-12-12 | 2016-08-19 | 국민대학교산학협력단 | 가상화 운영체제 성능 분석 방법, 이를 수행하는 가상화 운영체제 성능 분석 장치 및 이를 저장하는 기록매체 |
US20170123760A1 (en) * | 2015-10-30 | 2017-05-04 | AppDynamics, Inc. | Code Correction During a User Session in a Distributed Business Transaction |
US10846196B1 (en) * | 2017-06-09 | 2020-11-24 | Azul Systems, Inc. | Code optimization for connected managed runtime environments |
US10564987B1 (en) * | 2017-06-27 | 2020-02-18 | Amazon Technologies, Inc. | Efficient infrastructure updates for executable code development |
KR102356010B1 (ko) * | 2021-08-13 | 2022-02-08 | 주식회사 쓰리데이즈 | 장치 간에 데이터를 이관하는 방법 및 그 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030066060A1 (en) * | 2001-09-28 | 2003-04-03 | Ford Richard L. | Cross profile guided optimization of program execution |
US20040117779A1 (en) * | 2002-12-17 | 2004-06-17 | Bea Systems, Inc. | System and method for iterative code optimization using adaptive size metrics |
US20050108687A1 (en) * | 2003-11-18 | 2005-05-19 | Mountain Highland M. | Context and content sensitive distributed application acceleration framework |
US20090307670A1 (en) * | 2008-06-07 | 2009-12-10 | International Business Machines Corporation | Optimization of system performance through scenario evaluation |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0592079A2 (en) * | 1992-09-20 | 1994-04-13 | Sun Microsystems, Inc. | Automated software installation and operating environment configuration on a computer system |
JPH11237980A (ja) * | 1998-02-20 | 1999-08-31 | Hitachi Ltd | オブジェクト指向最適化コード生成装置及び方法 |
US6523166B1 (en) * | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
US6226784B1 (en) * | 1998-10-14 | 2001-05-01 | Mci Communications Corporation | Reliable and repeatable process for specifying developing distributing and monitoring a software system in a dynamic environment |
US6279030B1 (en) * | 1998-11-12 | 2001-08-21 | International Business Machines Corporation | Dynamic JAVA™ class selection and download based on changeable attributes |
US7100124B2 (en) * | 2000-07-03 | 2006-08-29 | Cadence Design Systems, Inc. | Interface configurable for use with target/initiator signals |
US7080159B2 (en) | 2000-12-15 | 2006-07-18 | Ntt Docomo, Inc. | Method and system for effecting migration of application among heterogeneous devices |
US7107279B2 (en) * | 2000-12-20 | 2006-09-12 | Insitech Group, Inc. | Rapid development in a distributed application environment |
US20040015832A1 (en) * | 2001-05-25 | 2004-01-22 | Michael Stapp | Method and apparatus for generating source code |
KR20010088917A (ko) * | 2001-07-30 | 2001-09-29 | 최종욱 | 디지털 정보 보안 방법 및 그 시스템 |
CA2358563A1 (en) * | 2001-10-05 | 2003-04-05 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for managing software testing |
US7188335B1 (en) * | 2001-12-28 | 2007-03-06 | Trilogy Development Group, Inc. | Product configuration using configuration patterns |
JP2003242107A (ja) | 2002-02-19 | 2003-08-29 | Sony Corp | ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム |
US7069541B2 (en) * | 2002-03-01 | 2006-06-27 | Bellsouth Intellectual Property Corporation | System and method for a web-based application development and deployment tracking tool |
US7797403B2 (en) | 2002-07-12 | 2010-09-14 | Microsoft Corporation | Deployment of configuration information |
US7356813B2 (en) * | 2002-09-26 | 2008-04-08 | Hewlett-Packard Development Company, L.P. | System and method for optimizing a program |
US7150012B2 (en) * | 2002-10-15 | 2006-12-12 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
US20040117787A1 (en) * | 2002-12-12 | 2004-06-17 | Sowa Kurt E. | Reorganized storing of applications to improve execution |
US8122106B2 (en) * | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US7827524B2 (en) * | 2003-04-22 | 2010-11-02 | Computer Associates Think, Inc. | System and method for integrating object-oriented model profiles and object-oriented programming languages |
US7434213B1 (en) * | 2004-03-31 | 2008-10-07 | Sun Microsystems, Inc. | Portable executable source code representations |
US7730469B1 (en) * | 2004-05-04 | 2010-06-01 | Oracle America, Inc. | Method and system for code optimization |
US7975256B2 (en) * | 2004-06-30 | 2011-07-05 | International Business Machines Corporation | Optimizing application performance through data mining |
US7890952B2 (en) * | 2004-10-07 | 2011-02-15 | International Business Machines Corporation | Autonomic peer-to-peer computer software installation |
US7546595B1 (en) * | 2004-10-14 | 2009-06-09 | Microsoft Corporation | System and method of installing software updates in a computer networking environment |
US7529888B2 (en) | 2004-11-19 | 2009-05-05 | Intel Corporation | Software caching with bounded-error delayed update |
US7653902B2 (en) * | 2004-12-13 | 2010-01-26 | Sap Ag | Determining software deployment parameters |
GB0427696D0 (en) * | 2004-12-17 | 2005-01-19 | Ncr Int Inc | Method of authenticating an executable application |
US7797690B2 (en) * | 2005-03-15 | 2010-09-14 | International Business Machines Corporation | System, method and program product to optimize code during run time |
US8838974B2 (en) * | 2005-07-15 | 2014-09-16 | The Mathworks, Inc. | System and method for verifying the integrity of read-only components in deployed mixed-mode applications |
US7966610B2 (en) * | 2005-11-17 | 2011-06-21 | The Mathworks, Inc. | Application of optimization techniques to intermediate representations for code generation |
US7941332B2 (en) * | 2006-01-30 | 2011-05-10 | International Business Machines Corporation | Apparatus, system, and method for modeling, projecting, and optimizing an enterprise application system |
US20070198973A1 (en) * | 2006-02-02 | 2007-08-23 | International Business Machines Corporation | Computer-implemented method, system, and program product for deployment time optimization of a distributed application |
KR100777426B1 (ko) | 2006-03-29 | 2007-11-22 | (주)닥터소프트 | 어플리케이션 공유 서비스 시스템과 어플리케이션 공유서비스를 위한 어플리케이션 제공자측 클라이언트 처리모듈및 어플리케이션 공유 서비스를 위한 어플리케이션이용자측 클라이언트 처리모듈 |
US8789028B2 (en) * | 2006-06-30 | 2014-07-22 | International Business Machines Corporation | Memory access monitoring |
US8719787B2 (en) * | 2006-09-30 | 2014-05-06 | American Express Travel Related Services Company, Inc. | System and method for server migration synchronization |
WO2008082022A1 (en) | 2007-01-05 | 2008-07-10 | Ajou University Industry Cooperation Foundation | Method of controlling adaptive process reconfiguring system easily |
US8615747B2 (en) * | 2007-04-18 | 2013-12-24 | Apple Inc. | Method and apparatus for dynamic code optimization |
US8230417B1 (en) * | 2007-06-08 | 2012-07-24 | Adobe Systems Incorporated | Combined application and execution environment install |
US8180964B1 (en) * | 2007-09-28 | 2012-05-15 | The Mathworks, Inc. | Optimization of cache configuration for application design |
US20090249284A1 (en) * | 2008-02-29 | 2009-10-01 | Doyenz Incorporated | Automation for virtualized it environments |
US8225289B2 (en) * | 2008-03-04 | 2012-07-17 | Wind River Systems, Inc. | Method and system for improved tool interaction with a target |
US7493610B1 (en) * | 2008-03-27 | 2009-02-17 | International Business Machines Corporation | Versioning optimization for dynamically-typed languages |
US8549491B2 (en) * | 2008-12-05 | 2013-10-01 | Electronics And Telecommunications Research Institute | Apparatus and method for application testing of embedded system |
US20100251227A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Binary resource format and compiler |
US8490084B1 (en) * | 2009-06-18 | 2013-07-16 | Amazon Technologies, Inc. | Installation testing in automated application distribution |
-
2010
- 2010-03-19 KR KR1020100024850A patent/KR101644653B1/ko active IP Right Grant
- 2010-12-03 US US12/959,852 patent/US9383978B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030066060A1 (en) * | 2001-09-28 | 2003-04-03 | Ford Richard L. | Cross profile guided optimization of program execution |
US20040117779A1 (en) * | 2002-12-17 | 2004-06-17 | Bea Systems, Inc. | System and method for iterative code optimization using adaptive size metrics |
US20050108687A1 (en) * | 2003-11-18 | 2005-05-19 | Mountain Highland M. | Context and content sensitive distributed application acceleration framework |
US20090307670A1 (en) * | 2008-06-07 | 2009-12-10 | International Business Machines Corporation | Optimization of system performance through scenario evaluation |
Also Published As
Publication number | Publication date |
---|---|
US9383978B2 (en) | 2016-07-05 |
KR20110105615A (ko) | 2011-09-27 |
US20110231813A1 (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101644653B1 (ko) | 단말 적합성 애플리케이션 최적화장치 및 방법 | |
US10007501B1 (en) | Method of deploying applications rapidly based on customized android platform | |
US11941400B2 (en) | Methods and apparatus for intentional programming for heterogeneous systems | |
Aronis et al. | A scalability benchmark suite for Erlang/OTP | |
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
US20210173665A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
US10324729B2 (en) | Machine intelligence and learning for graphic chip accessibility and execution | |
JP2020137017A (ja) | オフロードサーバのソフトウェア最適配置方法およびプログラム | |
Shuja et al. | SIMDOM: a framework for SIMD instruction translation and offloading in heterogeneous mobile architectures | |
KR101926464B1 (ko) | 멀티코어 프로세서에서 수행되는 프로그램의 컴파일 방법, 멀티코어 프로세서의 태스크 매핑 방법 및 태스크 스케줄링 방법 | |
JP2013222303A (ja) | コード変換方法、プログラム及びシステム | |
Sottile et al. | Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications | |
US20110209129A1 (en) | Parallelization method, system and program | |
WO2022111703A1 (zh) | 用于获取硬件性能数据的方法、设备和系统 | |
US20190213139A1 (en) | Reduced instructions to generate global variable addresses | |
JP2008250838A (ja) | ソフトウェア生成装置、方法、およびプログラム | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
US20230065994A1 (en) | Offload server, offload control method, and offload program | |
WO2023144926A1 (ja) | オフロードサーバ、オフロード制御方法およびオフロードプログラム | |
WO2023002546A1 (ja) | オフロードサーバ、オフロード制御方法およびオフロードプログラム | |
WO2023228369A1 (ja) | オフロードサーバ、オフロード制御方法およびオフロードプログラム | |
Tsai et al. | Providing performance portable numerics for Intel GPUs | |
Kim et al. | Remote progressive firmware update for flash-based networked embedded systems | |
Sheng et al. | Fifo exploration in mapping streaming applications onto the ti omap3530 platform: Case study and optimizations | |
Majd et al. | A Cloud Based Super-Optimization Method to Parallelize the Sequential Code's Nested Loops |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |