Metody optymalizacji kodu zarządzanego dla wybranych zagadnień obliczeń numerycznych
Defence Date
2011-07-06
Authors
Supervisors:
Reviewers:
Access rights
Other title
Methods of managed code optimization for selected problems of numerical calculations
Resource type
Defence details
Description
Abstract
The object of this paper is to analyze a issue of performance optimization of code which is designed to run on virtual machine environments. Performance optimization is important aspect for code that performs numerical calculations. The first part of this paper focuses on virtual machines technology and basic techniques of code optimization which are usually performed by compilers. The next part presents two non-conventional techniques designed by author which allow to speed up calculation of mathematical operations such as a mantissa of a real number and a metric angle unit conversion from degrees to radians. After that are presented test results of this optimizations which have checked their performance and correctness of generated results. The last part presents tools and techniques which are useful by code optimizing, and tips how to perform optimizations and when it is harmful.
Przedmiotem pracy jest problematyka wydajnościowej optymalizacji kodu, który jest przeznaczony do uruchamiania w środowiskach maszyn wirtualnych. Jest to aspekt optymalizacji szczególnie istotny dla programów wykonujących obliczenia numeryczne. W pierwszej części praca skupia się na technologii maszyn wirtualnych oraz podstawowych metodach optymalizacji kodu, które w dużej mierze wykonywane są automatycznie przez kompilatory. W kolejnym etapie zaprezentowane są dwie niestandardowe, opracowane przez autora techniki, pozwalające na przyspieszenie obliczania operacji matematycznych takich jak: mantysa liczby rzeczywistej oraz konwersja miary kąta ze stopniowej na łukową. Następnie przedstawione są wyniki testów prezentowanych optymalizacji, które sprawdzały ich wydajność oraz poprawność generowanych rezultatów. W ostatniej części przedstawione są narzędzia i techniki przydatne podczas wykonywania optymalizacji kodu oraz wskazówki jak optymalizację przeprowadzać i kiedy nie jest ona wskazana.

