KR101644653B1 - 단말 적합성 애플리케이션 최적화장치 및 방법 - Google Patents

단말 적합성 애플리케이션 최적화장치 및 방법 Download PDF

Info

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
Application number
KR1020100024850A
Other languages
English (en)
Other versions
KR20110105615A (ko
Inventor
서선애
차병창
조대현
문승도
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100024850A priority Critical patent/KR101644653B1/ko
Priority to US12/959,852 priority patent/US9383978B2/en
Publication of KR20110105615A publication Critical patent/KR20110105615A/ko
Application granted granted Critical
Publication of KR101644653B1 publication Critical patent/KR101644653B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation 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

단말 적합성 애플리케이션 최적화장치 및 방법{A apparatus and method of application optimized on demand}
향상된 성능의 CE장비의 복잡하고 다양한 구조의 하드웨어 아키텍쳐를 효율적으로 활용할 수 있는 고성능의 소프트웨어를 배포할 수 있는 장치 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어 개발자가 제공한 애플리케이션을 필요에 따라 다양한 CE장비의 수행환경에 맞도록 성능을 최적화하여 고성능 애플리케이션으로 재가공해서 배포하는 애플리케이션 최적화장치 및 방법에 관한 것이다.
프로그래머의 확산으로 기존의 소프트웨어 공급업체뿐만 아니라, 일반 개인 소프트웨어 개발자도 자신의 아이디어를 바탕으로 소비자의 요구에 맞는 프로그램을 만들어 낼 수 있게 되었다. 이러한 상황에서 소프트웨어 개발자가 만들어 낸 다양한 프로그램을 TV, 휴대폰, MP3 등의 다양한 CE장비에서 활용할 수 있도록 배포하고 있으나 각각의 CE장비는 서로 다른 수행환경을 가지고 있기 때문에 하나의 프로그램이 다양한 CE장비에 맞도록 배포를 하는데 어려움이 있다. 특히, 멀티코어(Multicore)를 포함하는 CE장비의 경우 향상된 성능을 기대하지만 상세한 하드웨어 아키텍쳐와 애플리케이션 코드의 병렬성 등의 특징에 맞게 애플리케이션을 변경해 주어야 한다.
여러가지 이종 단말에 대해, 점점 더 고성능이 요구되어지는 애플리케이션을 단순히 수행 가능하도록 만드는 것으로는 대단히 비효율적이며, 모든 장비에 대한 수행환경을 고려하여 소프트웨어 개발자가 애플리케이션을 변경하는 것에도 한계가 있다. 따라서, 애플리케이션을 각 클라이언트의 수행환경에 맞게 최적화하여 배포하는 기술은 고성능/고효율을 지향하는 새로운 CE환경에서 반드시 필요한 기술이다.
소프트웨어 개발자가 단말의 기종에 상관없이 애플리케이션을 작성하여 제공할 수 있도록 한다.
다양한 단말의 지원 가능한 기구 세트나 가용 하드웨어의 종류 등에 따라 애플리케이션 코드를 다르게 최적화하고, 사용자의 사용패턴이나 입력패턴에 따라 서로 다른 최적화를 수행할 수 있다.
단말의 요구에 따라 반복적/선택적으로 최적화가 수행된 애플리케이션을 배포할 수 있다.
본 발명의 일 양상에 따른 단말 적합성 애플리케이션 최적화장치는 단말로부터 단말의 수행환경 및 요구조건을 전달받고, 단말에 애플리케이션 코드를 전송하는 인터페이스부, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변환하여 생성하는 코드생성부 및 생성된 애플리케이션 코드를 수행환경에서 수행하여 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 성능검토부를 포함할 수 있다.
본 발명의 일 양상에 따른 단말 적합성 애플리케이션 최적화방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하는 단계 및 수행된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 단계를 포함할 수 있다.
본 발명의 다른 일 양상에 따른 단말 적합성 애플리케이션 최적화 방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고, 애플리케이션 코드에 성능조사를 위한 성능코드를 삽입하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하여 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계, 생성된 프로파일을 이용하여 애플리케이션 코드를 수행환경 및 요구조건에 맞게 변형하여 생성하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 양상에 따른 단말 적합성 애플리케이션 최적화방법은 단말로부터 단말의 수행환경 및 요구조건을 전달받는 단계, 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계, 생성된 튜닝파라미터에 맞춘 애플리케이션 코드를 생성하는 단계, 생성된 애플리케이션 코드를 수행환경에서 수행하는 단계 및 생성된 애플리케이션 코드의 성능이 요구조건을 만족하는지 판별하는 단계를 포함할 수 있다.
또한, 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 하나 이상의 튜닝파라미터를 생성하는 단계, 생성된 튜닝파라미터에 맞춘 하나 이상의 애플리케이션 코드를 생성하는 단계 및 생성된 하나 이상의 애플리케이션 코드의 성능을 비교하여 요구조건에 적합한 하나의 애플리케이션 코드를 선택하는 단계를 더 포함할 수 있다.
단말의 수행환경에 따른 성능 저하를 고려하지 않고 프로그램을 개발할 수 있다.
단말에 버츄얼 머신(virtual machine) 컴파일러(compiler), 툴체인(toolchain) 등의 부가장치 없이 최적화된 성능의 애플리캐이션을 활용할 수 있다.
멀티코어를 탑재한 단말에 대한 병렬 프로그램의 병렬화 최적화를 편리하게 자동으로 수행할 수 있으며, 자신의 하드웨어와 소프트웨어에 가장 적합한 병렬화 최적화된 프로그램을 손쉽게 얻을 수 있다.
수행된 최적화에 만족하지 않을 경우, 여러 번 최적화를 요청하여 선택적/반복적으로 더 높은 수준의 최적화된 애플리케이션을 획득할 수 있다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션 최적화를 위한 기본구조를 나타낸 도면이다.
도 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 클라이언트 단말

Claims (14)

  1. 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받고, 상기 단말에 애플리케이션 코드를 전송하는 인터페이스부;
    상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변환하여 생성하는 코드생성부;
    상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하여 상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 성능검토부; 및
    상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 코드저장부; 를 포함하는 단말 적합성 애플리케이션 최적화장치.
  2. 제 1 항에 있어서, 상기 인터페이스부는
    상기 단말로부터 상기 단말의 장치스펙, 운영체제, 사용가능한 라이브러리, 입력데이터 정보를 포함하는 수행환경을 전달받는 단말 적합성 애플리케이션 최적화장치.
  3. 제 1 항에 있어서, 상기 인터페이스부는
    상기 단말로부터 처리속도, 메모리 용량, 제한시간, 튜닝파라미터 개수, 특정 튜닝파라미터 지정 정보를 포함하는 요구조건을 전달받는 단말 적합성 애플리케이션 최적화장치.
  4. 제 1 항에 있어서, 상기 코드생성부는
    상기 애플리케이션 코드를 중간표현(Intermediate Representation)코드 또는 native 코드로 생성하는 단말 적합성 애플리케이션 최적화장치.
  5. 제 1 항에 있어서, 상기 성능검토부는
    상기 단말의 수행환경으로 설정하고 상기 수행환경에서 상기 생성된 애플리케이션 코드를 수행하는 코드수행부; 및
    상기 수행된 애플리케이션 코드의 성능이 상기 요구조건에 만족하는지 판별하는 성능비교부;를 포함하는 단말 적합성 애플리케이션 최적화장치.
  6. 제 1 항에 있어서, 상기 성능검토부는
    상기 생성된 애플리케이션 코드를 상기 단말에서 직접 수행하여 상기 단말에서 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단말 적합성 애플리케이션 최적화장치.
  7. 제 1 항에 있어서,
    상기 성능검토부에서 상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하지 못하는 것으로 판별된 경우, 상기 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 튜닝파라미터 생성부;를 더 포함하는 단말 적합성 애플리케이션 최적화장치.
  8. 삭제
  9. 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
    상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하는 단계;
    상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하는 단계;
    상기 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단계; 및
    상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법.
  10. 제 9 항에 있어서,
    상기 수행된 애플리케이션 코드의 성능이 상기 요구조건을 만족하지 못하는 것으로 판별된 경우, 상기 요구조건을 만족시키는 새로운 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계;를 더 포함하는 단말 적합성 애플리케이션 최적화방법.
  11. 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
    상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 변형하여 생성하고, 상기 애플리케이션 코드에 성능조사를 위한 성능코드를 삽입하는 단계;
    상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하여 상기 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계;
    상기 생성된 프로파일을 이용하여 상기 애플리케이션 코드를 상기 수행환경 및 요구조건에 맞게 변형하여 새로운 애플리케이션 코드를 생성하는 단계; 및
    추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 새로운 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법.
  12. 제 11 항에 있어서,
    상기 생성된 애플리케이션 코드를 상기 단말에서 직접 수행하여 상기 애플리케이션 코드의 성능에 대한 프로파일을 생성하는 단계;를 포함하는 단말 적합성 애플리케이션 최적화방법.
  13. 단말로부터 상기 단말의 수행환경 및 요구조건을 전달받는 단계;
    상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 튜닝파라미터를 생성하는 단계;
    상기 생성된 튜닝파라미터에 맞춘 애플리케이션 코드를 생성하는 단계;
    상기 생성된 애플리케이션 코드를 상기 수행환경에서 수행하는 단계;
    상기 생성된 애플리케이션 코드의 성능이 상기 요구조건을 만족하는지 판별하는 단계; 및
    상기 애플리케이션 코드의 성능이 상기 요구조건을 만족하는 경우, 추후 상기 단말이 애플리케이션 최적화를 요청할 경우 최적화된 애플리케이션 코드를 빠르게 생성하는데 이용할 수 있도록, 상기 단말과 상기 애플리케이션 코드를 매핑하여 저장하는 단계; 를 포함하는 단말 적합성 애플리케이션 최적화방법.
  14. 제 13 항에 있어서,
    상기 수행환경 및 요구조건에 따라 애플리케이션 코드를 생성하기 위한 하나 이상의 튜닝파라미터를 생성하는 단계;
    상기 생성된 튜닝파라미터에 맞춘 하나 이상의 애플리케이션 코드를 생성하는 단계; 및
    상기 생성된 하나 이상의 애플리케이션 코드의 성능을 비교하여 상기 요구조건에 적합한 하나의 애플리케이션 코드를 선택하는 단계;를 더 포함하는 단말 적합성 애플리케이션 최적화방법.
KR1020100024850A 2010-03-19 2010-03-19 단말 적합성 애플리케이션 최적화장치 및 방법 KR101644653B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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