Comparative Analysis of the Performance of Metaprogramming Mechanisms in the Java Language

Main Article Content

Azat Galiullin
Irina Sergeevna Shakhova

Abstract

The use of different metaprogramming mechanisms for program libraries development in Java may have some negative effect on build time and end products. The article is aimed to describe metaprogramming mechanisms in the Java language and present the results of experiments that compare the impact of approaches on the build time of small and large projects.

Article Details

Author Biographies

Azat Galiullin

Postgraduate student of the Higher School of Information Technologies and Intelligent Systems, Kazan (Volga region) Federal University, Kazan.

Irina Sergeevna Shakhova

Senior teacher of the Higher School of Information Technologies and Intelligent Systems at Kazan Federal University. Research interests include digital educational systems, individualization of education, mobile learning.

References

GitHub – JakeWharton/butterknife: Bind Android views and callbacks to fields and methods. URL: https://github.com/JakeWharton/butterknife.
2. The Java Community Process(SM) Program – JSRs: Java Specification Requests - detail JSR# 269. URL: https://jcp.org/en/jsr/detail?id=269.
3. Compilation Overview. URL: http://openjdk.java.net/groups/compiler/doc/ compilation-overview/index.html.
4. Trail: The Reflection API (The Java™ Tutorials). URL: https://docs.ora-cle.com/javase/tutorial/reflect/index.html
5. GitHub – google/dagger: A fast dependency injector for Android and Java. URL: https://github.com/google/dagger.
6. Dagger – Android SDK statistics | AppBrain. URL: https://www.ap-pbrain.com/stats/libraries/details/dagger/dagger
7. GitHub – JakeWharton/dagger-reflect: A reflection-based implementation of the Dagger dependency injection library for fast IDE builds. URL: https://github.com/JakeWharton/dagger-reflect.
8. Dependency injection. URL: https://habr.com/ru/post/350068.
9. Gradle Build Tool. URL: https://gradle.org.
10. GitHub – android/architecture-components-samples: Samples for Android Archi-tecture Components. URL: https://github.com/android/ architecture-compo-nents-samples.
11. Room Persistence Library. URL: https://developer.android.com/topic/ librar-ies/architecture/room.
12. Lifecycle | Android Developers. URL: https://developer.android.com/ jet-pack/androidx/releases/lifecycle.
13. GitHub – butterknife/butterknife-reflect at master JakeWharton/butterknife. URL: https://github.com/JakeWharton/butterknife/ tree/master/ butterknife-reflect.