SEFeb 12, 2022

Reflekt: a Library for Compile-Time Reflection in Kotlin

arXiv:2202.06033v2
AI Analysis

This work addresses performance bottlenecks for developers using Kotlin in serverless environments, offering an incremental improvement over existing reflection methods.

The paper tackles the performance issue of run-time reflection in Kotlin, particularly for serverless applications, by introducing Reflekt, a compile-time reflection library that significantly boosts start-up times in Kotless frameworks.

Reflection in Kotlin is a powerful mechanism to introspect program behavior during its execution at run-time. However, among the variety of practical tasks involving reflection, there are scenarios when the poor performance of run-time approaches becomes a significant disadvantage. This problem manifests itself in Kotless, a popular framework for developing serverless applications, because the faster the applications launch, the less their cloud infrastructure costs. In this paper, we present Reflekt - a compile-time reflection library which allows to perform the search among classes, object expressions (which in Kotlin are implemented as singleton classes), and functions in Kotlin code based on the given search query. It comes with a convenient DSL and better performance comparing to the existing run-time reflection approaches. Our experiments show that replacing run-time reflection calls with Reflekt in serverless applications created with Kotless resulted in a significant performance boost in start-up time of these applications.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes