Tematem niniejszego artykułu była ocena możliwości ręcznej modyfikacji kodu źródłowego w celu optymalizacji czasu wykonania programu. W ramach projektu inżynierskiego zaproponowano autorskie techniki optymalizacyjne, wykorzystujące dekompozycję instrukcji rozgałęziających. Eksperymentalnie zbadano efektywność prezentowanej dekompozycji dla procesora z rodziny Intel x86, wykonującego operacje w sposób potokowy. W ramach niniejszej pracy przebadano kompilatory z rodziny Clang oraz GCC dla języka C i C++ oraz środowisko JVM.
EN
The subject of this article was the manual modification of source code in order of reducing average execution time of certain repeated conditional move operations. This paper is concerned with proposed optimization by utilizing proper decomposition of branching instructions. This article described in detail conditional assignment operations as well as conditional operations and adequate CPU execution in regard of specific processor family architecture. Every discussed topic was supported with simplified comp diagrams. Experiments were conducted based of analysis of decompiled machine code and advanced analysis of CPU pipelining and branch predication mechanisms. Proposed optimized solutions were investigated based on processor from Intel x86 family. Examples of applications of mentioned code manipulations with adequate code snippets were presented with adequate performance analysis. As part of this work, the optimization capabilities of the Clang compiler for C and C++ were analysed and validated. Effectiveness of proposed optimization was experimentally tested also for compilers from collections GCC and for the most popular virtual machine environments such as JVM. Gathered cleared results were presented after carried out statistical analysis on column charts and in simplified tables.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.