• Title/Summary/Keyword: 코드 최적화

Search Result 476, Processing Time 0.07 seconds

The Bytecode Optimizer (바이트코드 최적화기)

  • 이야리;홍경표;오세만
    • Journal of KIISE:Software and Applications
    • /
    • v.30 no.1_2
    • /
    • pp.73-80
    • /
    • 2003
  • The Java programming language is designed for developing effective applications in a heterogeneous network environment. Major problem in Java is its performance. many attractive features of Java make the development of software easy, but also make it expensive to support ; applications written in Java are often much slower than their counterparts written in C or C++. To use Java`s attractive features without the performance penalty, sophisticated optimizations and runtime systems are required. Optimising Java bytecode has several advantages. First, the bytecode is independent of any compiler that is used to generate it. Second, the bytecode optimization can be performed as a pre=pass to Just-In-Time(JIT) compilation. Many attractive features of Java make the development of software easy, but also make it expensive to support. The goal of this work is to develop automatic construction of code optimizer for Java bytecode. We`ve designed and implemented a Bytecode Optimizer that performs the peephole optimization, bytecode-specific optimization, and method-inlining techniques. Using the Classfile optimizer, we see up to 9% improvement in speed and about 20% size reduction in Java class files, when compared to average code using the interpreter alone.

Profiling for Optimization of Virtual Machine Codes (가상기계 코드 최적화를 위한 프로파일링)

  • Shin, Yang-Hoon;Yi, Chang-Hwan;Oh, Se-Man
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10b
    • /
    • pp.562-565
    • /
    • 2006
  • 가상기계(Virtual Machine)는 소프트웨어로 제작되어 논리적인 시스템 구성을 갖는 컴퓨터이기 때문에 그 수행 속도와 필요 저장 공간 측면에서 성능이 떨어질 수 밖에 없다. 따라서 가상기계의 성능에 있어서 보다 효율적인 코드로의 최적화가 중요하다. 본 논문에서는 가상기계 코드(Virtual Machine Code) 최적화를 위해 코드를 실행하여 얻을 수 있는 동적 정보인 프로파일링 데이터(Profiling Data)를 정의하고, 프로파일링 시스템을 설계하여 프로파일링 데이터를 가상기계 코드 최적화에 적용 할 수 있는 기반을 마련하였다. 나아가 EVM(Embedded Virtual Machine)에서 실행되는 SIL(Standard Intermediate Language) 코드를 대상으로 프로파일링 시스템을 구현하여 실제 가상 기계 코드에 대하여 프로파일링 데이터를 추출하였다.

  • PDF

An Efficient Algorithm for Sparse Code Motion (희소코드모션을 위한 효율적인 알고리즘)

  • Shin Hyun-Deok;Yu Heui-Jong;Ahn Heui-Hak
    • The KIPS Transactions:PartA
    • /
    • v.12A no.1 s.91
    • /
    • pp.79-86
    • /
    • 2005
  • This paper suggests that sparse code motion algorithm should be used to make the code optimal in the respect of computation and lifetime. This algorithm Is SpCM algorithm, which expand BCM and LCM algorithm. BCM algorithm carries out the optimal code motion computationally and LCM algorithm reduces the register pressure in SpCM algorithm. Generally, code motion algorithm accomplishes the run-time optimal connected with the optimum of computation and the register pressure. Computational cost and consideration of the code size in the register pressure are also added in the paper. The optimum of code motion could be obtained through SpCM algorithm, which considers the code size, in audition to computational optimal and lifetime optimal. The algorithm presented in this paper is the most optimal algorithm in the respect of computation and lifetime, as all the unnecessary code motions are restrained.

Design and Implementation of a Java Bytecode Optimizer (자바 바이트코드를 위한 최적화기의 설계 및 구현)

  • Hwang, Soon-Myung;Oh, Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.10a
    • /
    • pp.211-214
    • /
    • 2000
  • 자바 클래스 파일은 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드와 자료 구조로 구성됨으로서 네트워크를 통하여 플랫폼에 독립적으로 인터프리티브 컴파일링 시스템에서 실행된다. 그러나 클래스 파일을 생성하는 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드 표현에 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 또한 자바 가상 기계에서 동적 링킹을 지원하기 위하여 고안된 상수 풀(constant pool)의 크기가 상대적으로 큰 특징을 갖는다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 작은 크기와 효율적인 코드에 대한 변환이 요구된다. 본 논문에서는 자바 클래스 파일이 인터넷 및 분산환경 시스템에서 효율적으로 실행되기 위해서 클래스 파일의 크기를 줄이는 방법과 자바 컴파일러가 생성한 바이트코드에 대해 최적화를 수행하는 최적화 방법론을 제시하고, 코드 최적화기를 설계 및 구현한다. 최적화된 클래스 파일은 코드 크기를 줄이고, 효율적인 코드를 생성함으로서 네트워크 상의 전송 속도뿐만 아니라 가상 기계에서 좀 더 빠르게 실행할 수 있다.

  • PDF

Design of a Java Bytecode Optimizer (자바 바이트코드 최적화기의 설계)

  • 황순명;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04a
    • /
    • pp.56-58
    • /
    • 2000
  • 자바 클래스 파일은 각 플랫폼에 독립적인 중간 코드 형태의 바이트코드와 자료 구조로 구성됨으로서 네트워크를 통하여 플랫폼에 독립적으로 인터프리티브 컴파일링 시스템에서 실행된다. 그러나 클래스 파일을 생성하는 자바 컴파일러는 각 플랫폼에 독립적인 바이트코드 표현에 제약을 받기 때문에 효율적인 코드를 생성하는데 한계가 있다. 또한, 자바 가상 기계에서 동적 링킹을 지원하기 위하여 고안된 상수 풀(constant pool)의 크기가 상대적으로 큰 특징을 갖는다. 따라서 자바 클래스 파일이 네트워크와 같은 실행 환경에서 효과적으로 실행되기 위해서는 작은 크기와 효율적인 코드에 대한 변환이 요구된다. 본 논문에서는 자바 클래스 파일이 인터넷 및 분산환경 시스템에서 효율적으로 실행되기 위해서 클래스 파일의 크기를 줄이는 방법과 자바 컴파일러가 생성한 바이트코드에 대해 최적화를 수행하는 최적화 방법론을 제시하고, 코드 최적화기를 설계한다. 최적화된 클래스 파일은 코드 크기를 줄이고, 효율적인 코드를 생성함으로서 네트워크상의 전송 속도뿐만 아니라 가상 기계에서 좀 더 빠르게 실행할 수 있다.

  • PDF

Virtual Machine Code Optimization using Profiling Data (프로파일링 데이터를 이용한 가상기계 코드 최적화)

  • Shin, Yang-Hoon;Yi, Chang-Hwan;Oh, Se-Man
    • The KIPS Transactions:PartA
    • /
    • v.14A no.3 s.107
    • /
    • pp.167-172
    • /
    • 2007
  • VM(Virtual Machine) can be considered as a software processor which interprets the machine code. Also, it is considered as a conceptional computer that consists of logical system configuration. But, the execution speed of VM system is much slower than that of a real processor system. So, it is very important to optimize the code for virtual machine to enhance the execution time. Especially the optimizer for a virtual machine code on embedded devices requires the highly efficient performance to the ordinary optimizer in the respect to the optimized ratio about cost. Fundamentally, functions and basic blocks which influence the execution time of virtual machine is found, and then an optimization for them nay get the high efficiency. In this paper, we designed and implemented the optimizer for the virtual(or abstract) machine code(VMC) using profiling. Firstly, we defined the profiling information which is necessary to the optimization of VMC. The information can be obtained from dynamically executing the machine code. And we implemented VMC optimizer using the profiling information. In our implementation, the VMC is SIL(Standard Intermediate Language) that is an intermediate code of EVM(Embedded Virtual Machine). Also, we tried a benchmark test for the VMC optimizer and obtained reasonable results.

Performance Evaluation of Code Optimization Strategies for ARM Processors (ARM 프로세서 하에서의 코드 최적화 전략에 대한 성능 평가)

  • Choi, Kwang-Won;Sun, Ju-Teak;Lee, Jeong-Gun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2009.11a
    • /
    • pp.43-44
    • /
    • 2009
  • 임베디드 소프트웨어의 경우, 시스템 제약으로 인해서 일반 소프트웨어에 비해 최적화의 역할이 상대적으로 매우 중요하다. 본 논문에서는 임베디드 시스템 환경에서 다양한 코드 최적화 기법을 적용하고 각 최적화 기법의 성능 향상기여도를 평가하여, 다양한 최적화 전략에 대한 효율성을 분석하였다. 이는 향후 임베디드 소프트웨어 엔지니어를 위한 코드 최적화 가이드라인으로 활용되거나, 자동화된 최적 임베디드 코드 생성을 위한 기초 자료로 사용될 수 있을 것으로 기대한다.

Solution for Knapsack Problem using DNA Computing with Code Optimized DNA-Haskell (코드 최적화 DNA-Haskell을 도입한 DNA 컴퓨팅에 의한 배낭 문제 해결)

  • 김은경;이상용
    • Proceedings of the Korean Institute of Intelligent Systems Conference
    • /
    • 2004.10a
    • /
    • pp.539-542
    • /
    • 2004
  • 배낭 문제는 조합 최적화 문제로서, 다항 시간(polynomial time)에 풀리지 않는 NP-hard 문제이다 이 문제를 해결하기 위해 기존에는 DNA 컴퓨팅 기법과 GA 등을 사용하여 해결하였다. 하지만 기존의 방법들은 DNA의 정확한 특성을 고려하지 않아, 실제 실험과의 결과 차이가 발생하고 있다. 본 논문에서는 DNA 컴퓨팅 실험 과정에서 발생하는 DNA 조작 오류를 최소화하고, 보다 정확한 예측을 위해 함수 언어인 Haskell을 이용한 코드 최적화 DNA-Haskell을 제안한다. 코드 최적화 DNA-Haskell은 배낭 문제 중 (0,1)-배낭 문제에 적용하였고, 그 결과 기존의 DNA 컴퓨팅 방법보다 실험적 오류를 최소화하였으며, 또한 적합한 해를 빠른 시간 내에 찾을 수 있었다.

  • PDF

Design of Bytecode Optimization Framework (바이트코드 최적화 프레임워크의 설계)

  • Kim, Young-Kook;Kim, Kyung-Soo;Kim, Ki-Tae;Jo, Sun-Moon;Yoo, Weon-Hee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.297-300
    • /
    • 2004
  • 자바는 객체지향 언어이고 바이트코드로 번역 이후에는 플랫폼에 독립적으로 가상머신에 의해 실행될 수 있기 때문에 소프트웨어 개발과 유지보수에 많은 장점을 갖는다. 이러한 특징으로 인해 플랫폼에 독립적인 소프트웨어 개발에는 자바가 많이 이용된다. 그러나 바이트코드로 작성된 프로그램은 가상기계에서 인터프리터 방식으로 수행된다. 때문에 프로그램의 실행속도가 느리게 실행되는 문제점을 가지고 있다. 실행속도의 문제점을 해결하기 위한 여러 가지 방법들이 연구가 진행중이다. 본 논문은 자바 바이트코드가 가상기계에서 인터프리터 방식으로 수행할 때 바이트코드의 크기를 줄여 해석하는 부담을 줄이기 위해서 바이트 코드를 최적화하는 프레임워크를 구성한다. 프레임워크를 이용하여 바이트코드를 3주소 형태의 CTOC-T(Class To Optimizer Classes-Three Address Code)로 변환하여 프로그램을 분석을 할 수 있다. 또한 CTOC-T는 3주소 형태이므로 3주소 최적화 기법을 적용하여 최적화된 바이트코드를 생성하는 프레임워크를 설계한다.

  • PDF

Implementation and Analysis of Optimizers on Tuple codes (튜플 코드 상에서의 최적화기 구현과 분석)

  • 송진국
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.3 no.4
    • /
    • pp.723-736
    • /
    • 1999
  • Code optimization phase in a compiler are very important because the phase reduces the running time and the storage size of machine codes. I developed flow analyzers and optimizers on intermediate codes. The flow analyzers generate control-flow and data-flow information. The optimizers transform the intermediate codes into the improved codes using this information. This paper describes the development of flow analyzers and optimizers. I also examined the execution performance, the cost and the dependency of each optimization.

  • PDF