Preview

Электронные библиотеки

Расширенный поиск

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

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

Аннотация

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

Об авторах

А. Ф. Галиуллин
Высшая школа информационных технологий и интеллектуальных систем Казанского (Приволжского) федерального университета
Россия


И. С. Шахова
Высшая школа информационных технологий и интеллектуальных систем Казанского (Приволжского) федерального университета
Россия


Список литературы

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.


Рецензия

Для цитирования:


Галиуллин А.Ф., Шахова И.С. Сравнительный анализ производительности механизмов метапрограммирования в языке Java. Электронные библиотеки. 2020;23(5):985-996. https://doi.org/10.26907/1562-5419-2020-23-5-985-996

For citation:


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

Просмотров: 22


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1562-5419 (Online)