Сравнительный анализ производительности механизмов метапрограммирования в языке Java

Main Article Content

Азат Фердинандович Галиуллин
Ирина Сергеевна Шахова

Аннотация

Использование определенных механизмов метапрограммирования при разработке программных библиотек на языке Java может негативно сказываться на времени сборки и работе конечного программного продукта, в котором они используются. Для того, чтобы нивелировать воздействие различных подходов, необходимо предложить комплексное решение, позволяющее регулировать их использование в зависимости от особенностей контекста, что, в свою очередь, требует проведения предварительного анализа. В данной статье рассмотрены существующие в языке Java механизмы метапрограммирования и представлены результаты сравнения влияния данных подходов на время сборки Android-приложений.

Article Details

Биографии авторов

Азат Фердинандович Галиуллин

Магистрант высшей школы информационных технологий и информационных систем КФУ, г. Казань.

Ирина Сергеевна Шахова

Старший преподаватель кафедры программной инженерии Высшей школы информационных технологий и интеллектуальных систем Казанского федерального университета. Сфера научных интересов – цифровые образовательные системы, индивидуализация образования, мобильное обучение.

Библиографические ссылки

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.


Наиболее читаемые статьи этого автора (авторов)