Preview

Russian Digital Libraries Journal

Advanced search

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

https://doi.org/10.26907/1562-5419-2020-23-5-985-996

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.

About the Authors

A. Galiullin
Higher School of Information Technology and Intelligent Systems
Russian Federation


I. S. Shakhova
Higher School of Information Technology and Intelligent Systems
Russian Federation


References

1. 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.


Review

For citations:


Galiullin A., Shakhova I.S. Comparative Analysis of the Performance of Metaprogramming Mechanisms in the Java Language. Russian Digital Libraries Journal. 2020;23(5):985-996. (In Russ.) https://doi.org/10.26907/1562-5419-2020-23-5-985-996

Views: 27


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 1562-5419 (Online)