PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Optymalizacja kodu przy wykorzystaniu algorytmu SSA w środowiskach maszyn wirtualnych

Identyfikatory
Warianty tytułu
EN
Using SSA optimization algorithm in virtual machine environments
Języki publikacji
PL
Abstrakty
PL
Artykuł ten skupia się na wybranych sposobach optymalizacji kodu, przeprowadzanych z użyciem techniki pojedynczego statycznego przypisania (SSA) ze szczególnym uwzględnieniem kontekstu najpopularniejszych obecnie środowisk maszyn wirtualnych. Przedstawiono podstawowe metody optymalizacji kodu, które opierają się na technice przekształcenia kodu do wspomnianej postaci. Zaprezentowano metodę konstrukcji grafów przepływu sterowania oraz skupiono się na możliwości jej wykorzystania do redukcji obliczeń. Na podstawie przykładowego kodu przedstawiono możliwość optymalizacji SSA w wiodących systemach maszyn wirtualnych Java VM, .NET Framework i Mono. Eksperymentalnie oceniono wpływ ręcznego wykonania optymalizacji przez programistę w odniesieniu do optymalizacji wykonywanej automatycznie przez kompilator JIT.
EN
This article focuses on some ways to optimize the code, carried out us-ing the technique of static single assignment (SSA) with particular emphasis on the context of today's most popular virtual machine environments. The basic methods of code optimization, which are based on the technique of recasting the code to that form are presented. Also a method of design control flow graphs and focused on the possibility of its use to reduce the calculations is shown. Based on the example code, the possibility of optimizing the SSA in leading systems, virtual machines Java VM, the .NET Framework and Mono was considered. Experimentally the impact of manual performance optimization by the programmer in relation to the optimization per-formed automatically by the JIT compiler was carried out.
Czasopismo
Rocznik
Strony
97--111
Opis fizyczny
Bibliogr. 21 poz.
Twórcy
autor
  • AGH Akademia Górniczo-Hutnicza, Wydział Geologii, Geofizyki i Ochrony Środowiska, Katedra Geoinformatyki i Informatyki Stosowanej, al. Mickiewicza 30, 30-059 Kraków
  • AGH Akademia Górniczo-Hutnicza, Wydział Geologii, Geofizyki i Ochrony Środowiska, Katedra Geoinformatyki i Informatyki Stosowanej, al. Mickiewicza 30, 30-059 Kraków
Bibliografia
  • 1. Piórkowski A., Żupnik M.: Loop Optimization in Managed Code Environments with Expressions Evaluated Only Once. TASK Quarterly, Vol. 14(4), 2010, s. 397÷404.
  • 2. Einarsson, A., Nielsen J.D.: A survivor’s guide to Java program analysis with soot. BRICS, Department of Computer Science, University of Aarhus, Denmark 2008.
  • 3. Gal A., Probst Ch.W., Franz M.: Java Bytecode Verification via Static Single Assign-ment Form. ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 30(4), 2008, s. 21.
  • 4. Park, J-S., Lee J-J.: A Practical Improvement to the Partial Redundancy Elimination in SSA Form. Journal of Computing Science and Engineering, Vol. 2(3), 2008, s. 301÷320.
  • 5. Rosen B., Wegman M.N., Zaddeck F.K.: Global Value Numbers and Redundant Com-putations. 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, ACM, 1988, s. 12÷27.
  • 6. Montione M.: The Mono JIT optimization and revolution. 2006.
  • 7. Öqvist J.: Introduction to the SSAPRE Compiler Optimization. Blog, Sweden 2009, http://llbit.se/?p=369 [dostęp 01.02.2016].
  • 8. Bodden E.: First steps using Soot 2.3.0 as a command-line tool. 2008, http://www.bodden.de/2008/08/21/soot-command-line/ [dostęp 01.02.2016].
  • 9. Singer J. et al.: Static Single Assignment Books. Springer, (w opracowaniu, ver. 2014).
  • 10. Umanee N.: A Brief Overview of Shimple, 2003, www.sable.mcgill.ca/soot/tutorial /shimple/shimple.ps [dostęp 01.02.2016].
  • 11. Aho A., Sethi R., Ullman J.: Kompilatory, reguły, metody i narzędzia. Wydawnictwa Naukowo-Techniczne, Warszawa 2002.
  • 12. Appel A.: Modern compiler implementation in Java. Cambridge University Press, 2004, s. 399÷430.
  • 13. http://blogs.msdn.com/b/jmstall/archive/2006/03/13/dead-code-elimination.aspx, [do-stęp 27.11.2014].
  • 14. http://www.mono-project.com/docs/advanced/runtime/docs/linear-ir/, [dostęp 16.01.2015].
  • 15. http://msdn.microsoft.com/pl-pl/library/t0hfscdc.aspx, [dostęp 26.12.2014].
  • 16. http://stackoverflow.com/questions/22256013/does-suns-hotspot-jit-compiler-automatically-apply-final-to-java-local-variab, [dostęp 25.12.2014].
  • 17. http://tirania.org/blog/archive/2012/Apr-04.html, [dostęp 20.12.2014].
  • 18. http://www.compileroptimizations.com/category/constant_propagation.htm.
  • 19. http://www.mono-project.com/docs/advanced/runtime/, [dostęp 03.10.2014].
  • 20. http://www.oracle.com/technetwork/java/whitepaper-135217.html, [dostęp 13.11.2014].
  • 21. http://www.techpowerup.com/downloads/2089/real-temp-3-70/, [dostęp 3.01.2015].
Uwagi
Opracowanie ze środków MNiSW w ramach umowy 812/P-DUN/2016 na działalność upowszechniającą naukę.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-9ca897d6-3820-4cd1-a5f1-28fe3315f875
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ć.