├── .gitignore ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── sloydev │ │ └── dependencyinjectionperformance │ │ ├── FibonacciJava.java │ │ ├── FibonacciKotlin.kt │ │ ├── InjectionTest.kt │ │ ├── Main.kt │ │ ├── MainActivity.kt │ │ ├── Utilities.kt │ │ ├── custom │ │ ├── CustomDI.kt │ │ ├── CustomJavaModule.kt │ │ └── CustomKotlinModule.kt │ │ ├── dagger2 │ │ ├── DaggerComponent.kt │ │ ├── DaggerJavaModule.kt │ │ └── DaggerKotlinModule.kt │ │ ├── katana │ │ ├── KatanaJavaModule.kt │ │ └── KatanaKotlinModule.kt │ │ ├── kodein │ │ ├── KodeinJavaModule.kt │ │ └── KodeinKotlinModule.kt │ │ └── koin │ │ ├── KoinJavaModule.kt │ │ └── KoinKotlinModule.kt │ └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ └── ic_launcher_background.xml │ ├── layout │ ├── activity_main.xml │ └── content_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ └── values │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Android Injection Performance 2 | 3 | This project aims to measure the performance of several Dependency Injection frameworks (or Service Locators) in different devices. 4 | 5 | ## Libraries tested 6 | - [Koin](https://insert-koin.io/) - 2.0.1 7 | - [Kodein](http://kodein.org/Kodein-DI/) - 5.3.0 8 | - [Dagger 2](https://google.github.io/dagger/) - 2.16 9 | - [Katana](https://github.com/rewe-digital-incubator/katana/) - 1.2.2 10 | 11 | ## The test 12 | The test data are classes with dependencies in a structure similar to Fibonacci sequence, to simulate multiple levels of transitive dependencies. 13 | For each library there is a test with Kotlin classes and one with Java classes, because some libraries seem to be affected by this difference. 14 | 15 | Each test injects one of this dependencies 100 times and prints the maximum time, the minimum and the average. 16 | 17 | The project contains an Android application that run the tests on its onCreate and prints the result to the Logcat. 18 | 19 | The actual test is implemented in the class [InjectionTest.kt](https://github.com/Sloy/android-dependency-injection-performance/blob/master/app/src/main/java/com/sloydev/dependencyinjectionperformance/InjectionTest.kt) 20 | 21 | ## Results 22 | Results can be quite different between different devices, so here are some results in different devices with different Android versions. Each table contains the **median** time of each library's setup and injection. More results are welcomed. 23 | 24 | - [Samsung Galaxy J5](#samsung-galaxy-j5) 25 | - [Samsung Galaxy S8](#samsung-galaxy-s8) 26 | - [Huawei P8 Lite](#huawei-p8-lite) 27 | - [Xiaomi MI A1](#xiaomi-mi-a1) 28 | - [OnePlus One](#oneplus-one) 29 | - [OnePlus 5](#oneplus-5) 30 | - [Nexus 6](#nexus-6) 31 | 32 | ### lge p1 with Android 6.0 33 | 34 | Koin 2.0 35 | Library | Setup Kotlin | Setup Java | Inject Kotlin | Inject Java 36 | --- | ---:| ---:| ---:| ---: 37 | **Custom** | 2.05 ms | 2.13 ms | 0.30 ms | 0.36 ms 38 | **Koin** | 10.72 ms | 11.01 ms | 1.40 ms | 1.48 ms 39 | **Kodein** | 39.95 ms | 37.38 ms | 3.58 ms | 3.76 ms 40 | **Katana** | 5.37 ms | 5.84 ms | 0.82 ms | 0.77 ms 41 | **Dagger** | 0.01 ms | 0.01 ms | 0.13 ms | 0.09 ms 42 | 43 | Koin 2.1 44 | Library | Setup Kotlin | Setup Java | Inject Kotlin | Inject Java 45 | --- | ---:| ---:| ---:| ---: 46 | **Custom** | 0.47 ms | 0.45 ms | 0.07 ms | 0.08 ms 47 | **Koin** | 4.11 ms | 4.19 ms | 0.29 ms | 0.28 ms 48 | **Kodein** | 14.50 ms | 14.58 ms | 0.77 ms | 0.78 ms 49 | **Katana** | 1.55 ms | 1.49 ms | 0.19 ms | 0.18 ms 50 | **Dagger** | 0.00 ms | 0.00 ms | 0.02 ms | 0.02 ms 51 | 52 | ### HONOR HNKIW-Q with Android 6.0.1 53 | 54 | Koin 2.1 55 | Library | Setup Kotlin | Setup Java | Inject Kotlin | Inject Java 56 | --- | ---:| ---:| ---:| ---: 57 | **Custom** | 0.46 ms | 0.41 ms | 0.06 ms | 0.08 ms 58 | **Koin** | 3.40 ms | 3.54 ms | 0.24 ms | 0.23 ms 59 | **Kodein** | 11.48 ms | 11.68 ms | 0.62 ms | 0.65 ms 60 | **Katana** | 1.60 ms | 1.61 ms | 0.15 ms | 0.14 ms 61 | **Dagger** | 0.00 ms | 0.00 ms | 0.02 ms | 0.02 ms 62 | 63 | ### Nokia B2N_sprout with Android 10 64 | 65 | Koin 2.1 66 | Library | Setup Kotlin | Setup Java | Inject Kotlin | Inject Java 67 | --- | ---:| ---:| ---:| ---: 68 | **Custom** | 0.09 ms | 0.09 ms | 0.12 ms | 0.08 ms 69 | **Koin** | 0.66 ms | 0.74 ms | 0.12 ms | 0.11 ms 70 | **Kodein** | 5.10 ms | 5.59 ms | 0.21 ms | 0.10 ms 71 | **Katana** | 0.47 ms | 0.42 ms | 0.12 ms | 0.10 ms 72 | **Dagger** | 0.00 ms | 0.00 ms | 0.04 ms | 0.04 ms -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'kotlin-android' 3 | apply plugin: 'kotlin-android-extensions' 4 | apply plugin: 'kotlin-kapt' 5 | 6 | android { 7 | compileSdkVersion 28 8 | defaultConfig { 9 | applicationId "com.sloydev.dependencyinjectionperformance" 10 | minSdkVersion 15 11 | targetSdkVersion 28 12 | versionCode 1 13 | versionName "1.0" 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | } 16 | buildTypes { 17 | release { 18 | minifyEnabled false 19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 20 | } 21 | } 22 | } 23 | 24 | dependencies { 25 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 26 | implementation 'androidx.appcompat:appcompat:1.0.2' 27 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3' 28 | implementation 'com.google.android.material:material:1.0.0' 29 | 30 | // Koin 31 | implementation "org.koin:koin-core:2.1.4" 32 | 33 | // Kodein 34 | implementation 'org.kodein.di:kodein-di-erased-jvm:5.3.0' 35 | 36 | // Dagger 37 | implementation 'com.google.dagger:dagger:2.16' 38 | kapt 'com.google.dagger:dagger-compiler:2.16' 39 | 40 | // Katana 41 | implementation 'com.github.rewe-digital-incubator.katana:katana-android:1.2.2' 42 | } 43 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/FibonacciKotlin.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | 4 | /** 5 | * Generated with https://gist.github.com/Sloy/12affca1e49ba052053ab4c8bfc5bcb4 6 | */ 7 | class Fib1 8 | class Fib2 9 | class Fib3(val fibM1: Fib2, val fibM2: Fib1) 10 | class Fib4(val fibM1: Fib3, val fibM2: Fib2) 11 | class Fib5(val fibM1: Fib4, val fibM2: Fib3) 12 | class Fib6(val fibM1: Fib5, val fibM2: Fib4) 13 | class Fib7(val fibM1: Fib6, val fibM2: Fib5) 14 | class Fib8(val fibM1: Fib7, val fibM2: Fib6) 15 | class Fib9(val fibM1: Fib8, val fibM2: Fib7) 16 | class Fib10(val fibM1: Fib9, val fibM2: Fib8) 17 | class Fib11(val fibM1: Fib10, val fibM2: Fib9) 18 | class Fib12(val fibM1: Fib11, val fibM2: Fib10) 19 | class Fib13(val fibM1: Fib12, val fibM2: Fib11) 20 | class Fib14(val fibM1: Fib13, val fibM2: Fib12) 21 | class Fib15(val fibM1: Fib14, val fibM2: Fib13) 22 | class Fib16(val fibM1: Fib15, val fibM2: Fib14) 23 | class Fib17(val fibM1: Fib16, val fibM2: Fib15) 24 | class Fib18(val fibM1: Fib17, val fibM2: Fib16) 25 | class Fib19(val fibM1: Fib18, val fibM2: Fib17) 26 | class Fib20(val fibM1: Fib19, val fibM2: Fib18) 27 | class Fib21(val fibM1: Fib20, val fibM2: Fib19) 28 | class Fib22(val fibM1: Fib21, val fibM2: Fib20) 29 | class Fib23(val fibM1: Fib22, val fibM2: Fib21) 30 | class Fib24(val fibM1: Fib23, val fibM2: Fib22) 31 | class Fib25(val fibM1: Fib24, val fibM2: Fib23) 32 | class Fib26(val fibM1: Fib25, val fibM2: Fib24) 33 | class Fib27(val fibM1: Fib26, val fibM2: Fib25) 34 | class Fib28(val fibM1: Fib27, val fibM2: Fib26) 35 | class Fib29(val fibM1: Fib28, val fibM2: Fib27) 36 | class Fib30(val fibM1: Fib29, val fibM2: Fib28) 37 | class Fib31(val fibM1: Fib30, val fibM2: Fib29) 38 | class Fib32(val fibM1: Fib31, val fibM2: Fib30) 39 | class Fib33(val fibM1: Fib32, val fibM2: Fib31) 40 | class Fib34(val fibM1: Fib33, val fibM2: Fib32) 41 | class Fib35(val fibM1: Fib34, val fibM2: Fib33) 42 | class Fib36(val fibM1: Fib35, val fibM2: Fib34) 43 | class Fib37(val fibM1: Fib36, val fibM2: Fib35) 44 | class Fib38(val fibM1: Fib37, val fibM2: Fib36) 45 | class Fib39(val fibM1: Fib38, val fibM2: Fib37) 46 | class Fib40(val fibM1: Fib39, val fibM2: Fib38) 47 | class Fib41(val fibM1: Fib40, val fibM2: Fib39) 48 | class Fib42(val fibM1: Fib41, val fibM2: Fib40) 49 | class Fib43(val fibM1: Fib42, val fibM2: Fib41) 50 | class Fib44(val fibM1: Fib43, val fibM2: Fib42) 51 | class Fib45(val fibM1: Fib44, val fibM2: Fib43) 52 | class Fib46(val fibM1: Fib45, val fibM2: Fib44) 53 | class Fib47(val fibM1: Fib46, val fibM2: Fib45) 54 | class Fib48(val fibM1: Fib47, val fibM2: Fib46) 55 | class Fib49(val fibM1: Fib48, val fibM2: Fib47) 56 | class Fib50(val fibM1: Fib49, val fibM2: Fib48) 57 | class Fib51(val fibM1: Fib50, val fibM2: Fib49) 58 | class Fib52(val fibM1: Fib51, val fibM2: Fib50) 59 | class Fib53(val fibM1: Fib52, val fibM2: Fib51) 60 | class Fib54(val fibM1: Fib53, val fibM2: Fib52) 61 | class Fib55(val fibM1: Fib54, val fibM2: Fib53) 62 | class Fib56(val fibM1: Fib55, val fibM2: Fib54) 63 | class Fib57(val fibM1: Fib56, val fibM2: Fib55) 64 | class Fib58(val fibM1: Fib57, val fibM2: Fib56) 65 | class Fib59(val fibM1: Fib58, val fibM2: Fib57) 66 | class Fib60(val fibM1: Fib59, val fibM2: Fib58) 67 | class Fib61(val fibM1: Fib60, val fibM2: Fib59) 68 | class Fib62(val fibM1: Fib61, val fibM2: Fib60) 69 | class Fib63(val fibM1: Fib62, val fibM2: Fib61) 70 | class Fib64(val fibM1: Fib63, val fibM2: Fib62) 71 | class Fib65(val fibM1: Fib64, val fibM2: Fib63) 72 | class Fib66(val fibM1: Fib65, val fibM2: Fib64) 73 | class Fib67(val fibM1: Fib66, val fibM2: Fib65) 74 | class Fib68(val fibM1: Fib67, val fibM2: Fib66) 75 | class Fib69(val fibM1: Fib68, val fibM2: Fib67) 76 | class Fib70(val fibM1: Fib69, val fibM2: Fib68) 77 | class Fib71(val fibM1: Fib70, val fibM2: Fib69) 78 | class Fib72(val fibM1: Fib71, val fibM2: Fib70) 79 | class Fib73(val fibM1: Fib72, val fibM2: Fib71) 80 | class Fib74(val fibM1: Fib73, val fibM2: Fib72) 81 | class Fib75(val fibM1: Fib74, val fibM2: Fib73) 82 | class Fib76(val fibM1: Fib75, val fibM2: Fib74) 83 | class Fib77(val fibM1: Fib76, val fibM2: Fib75) 84 | class Fib78(val fibM1: Fib77, val fibM2: Fib76) 85 | class Fib79(val fibM1: Fib78, val fibM2: Fib77) 86 | class Fib80(val fibM1: Fib79, val fibM2: Fib78) 87 | class Fib81(val fibM1: Fib80, val fibM2: Fib79) 88 | class Fib82(val fibM1: Fib81, val fibM2: Fib80) 89 | class Fib83(val fibM1: Fib82, val fibM2: Fib81) 90 | class Fib84(val fibM1: Fib83, val fibM2: Fib82) 91 | class Fib85(val fibM1: Fib84, val fibM2: Fib83) 92 | class Fib86(val fibM1: Fib85, val fibM2: Fib84) 93 | class Fib87(val fibM1: Fib86, val fibM2: Fib85) 94 | class Fib88(val fibM1: Fib87, val fibM2: Fib86) 95 | class Fib89(val fibM1: Fib88, val fibM2: Fib87) 96 | class Fib90(val fibM1: Fib89, val fibM2: Fib88) 97 | class Fib91(val fibM1: Fib90, val fibM2: Fib89) 98 | class Fib92(val fibM1: Fib91, val fibM2: Fib90) 99 | class Fib93(val fibM1: Fib92, val fibM2: Fib91) 100 | class Fib94(val fibM1: Fib93, val fibM2: Fib92) 101 | class Fib95(val fibM1: Fib94, val fibM2: Fib93) 102 | class Fib96(val fibM1: Fib95, val fibM2: Fib94) 103 | class Fib97(val fibM1: Fib96, val fibM2: Fib95) 104 | class Fib98(val fibM1: Fib97, val fibM2: Fib96) 105 | class Fib99(val fibM1: Fib98, val fibM2: Fib97) 106 | class Fib100(val fibM1: Fib99, val fibM2: Fib98) 107 | class Fib101(val fibM1: Fib100, val fibM2: Fib99) 108 | class Fib102(val fibM1: Fib101, val fibM2: Fib100) 109 | class Fib103(val fibM1: Fib102, val fibM2: Fib101) 110 | class Fib104(val fibM1: Fib103, val fibM2: Fib102) 111 | class Fib105(val fibM1: Fib104, val fibM2: Fib103) 112 | class Fib106(val fibM1: Fib105, val fibM2: Fib104) 113 | class Fib107(val fibM1: Fib106, val fibM2: Fib105) 114 | class Fib108(val fibM1: Fib107, val fibM2: Fib106) 115 | class Fib109(val fibM1: Fib108, val fibM2: Fib107) 116 | class Fib110(val fibM1: Fib109, val fibM2: Fib108) 117 | class Fib111(val fibM1: Fib110, val fibM2: Fib109) 118 | class Fib112(val fibM1: Fib111, val fibM2: Fib110) 119 | class Fib113(val fibM1: Fib112, val fibM2: Fib111) 120 | class Fib114(val fibM1: Fib113, val fibM2: Fib112) 121 | class Fib115(val fibM1: Fib114, val fibM2: Fib113) 122 | class Fib116(val fibM1: Fib115, val fibM2: Fib114) 123 | class Fib117(val fibM1: Fib116, val fibM2: Fib115) 124 | class Fib118(val fibM1: Fib117, val fibM2: Fib116) 125 | class Fib119(val fibM1: Fib118, val fibM2: Fib117) 126 | class Fib120(val fibM1: Fib119, val fibM2: Fib118) 127 | class Fib121(val fibM1: Fib120, val fibM2: Fib119) 128 | class Fib122(val fibM1: Fib121, val fibM2: Fib120) 129 | class Fib123(val fibM1: Fib122, val fibM2: Fib121) 130 | class Fib124(val fibM1: Fib123, val fibM2: Fib122) 131 | class Fib125(val fibM1: Fib124, val fibM2: Fib123) 132 | class Fib126(val fibM1: Fib125, val fibM2: Fib124) 133 | class Fib127(val fibM1: Fib126, val fibM2: Fib125) 134 | class Fib128(val fibM1: Fib127, val fibM2: Fib126) 135 | class Fib129(val fibM1: Fib128, val fibM2: Fib127) 136 | class Fib130(val fibM1: Fib129, val fibM2: Fib128) 137 | class Fib131(val fibM1: Fib130, val fibM2: Fib129) 138 | class Fib132(val fibM1: Fib131, val fibM2: Fib130) 139 | class Fib133(val fibM1: Fib132, val fibM2: Fib131) 140 | class Fib134(val fibM1: Fib133, val fibM2: Fib132) 141 | class Fib135(val fibM1: Fib134, val fibM2: Fib133) 142 | class Fib136(val fibM1: Fib135, val fibM2: Fib134) 143 | class Fib137(val fibM1: Fib136, val fibM2: Fib135) 144 | class Fib138(val fibM1: Fib137, val fibM2: Fib136) 145 | class Fib139(val fibM1: Fib138, val fibM2: Fib137) 146 | class Fib140(val fibM1: Fib139, val fibM2: Fib138) 147 | class Fib141(val fibM1: Fib140, val fibM2: Fib139) 148 | class Fib142(val fibM1: Fib141, val fibM2: Fib140) 149 | class Fib143(val fibM1: Fib142, val fibM2: Fib141) 150 | class Fib144(val fibM1: Fib143, val fibM2: Fib142) 151 | class Fib145(val fibM1: Fib144, val fibM2: Fib143) 152 | class Fib146(val fibM1: Fib145, val fibM2: Fib144) 153 | class Fib147(val fibM1: Fib146, val fibM2: Fib145) 154 | class Fib148(val fibM1: Fib147, val fibM2: Fib146) 155 | class Fib149(val fibM1: Fib148, val fibM2: Fib147) 156 | class Fib150(val fibM1: Fib149, val fibM2: Fib148) 157 | class Fib151(val fibM1: Fib150, val fibM2: Fib149) 158 | class Fib152(val fibM1: Fib151, val fibM2: Fib150) 159 | class Fib153(val fibM1: Fib152, val fibM2: Fib151) 160 | class Fib154(val fibM1: Fib153, val fibM2: Fib152) 161 | class Fib155(val fibM1: Fib154, val fibM2: Fib153) 162 | class Fib156(val fibM1: Fib155, val fibM2: Fib154) 163 | class Fib157(val fibM1: Fib156, val fibM2: Fib155) 164 | class Fib158(val fibM1: Fib157, val fibM2: Fib156) 165 | class Fib159(val fibM1: Fib158, val fibM2: Fib157) 166 | class Fib160(val fibM1: Fib159, val fibM2: Fib158) 167 | class Fib161(val fibM1: Fib160, val fibM2: Fib159) 168 | class Fib162(val fibM1: Fib161, val fibM2: Fib160) 169 | class Fib163(val fibM1: Fib162, val fibM2: Fib161) 170 | class Fib164(val fibM1: Fib163, val fibM2: Fib162) 171 | class Fib165(val fibM1: Fib164, val fibM2: Fib163) 172 | class Fib166(val fibM1: Fib165, val fibM2: Fib164) 173 | class Fib167(val fibM1: Fib166, val fibM2: Fib165) 174 | class Fib168(val fibM1: Fib167, val fibM2: Fib166) 175 | class Fib169(val fibM1: Fib168, val fibM2: Fib167) 176 | class Fib170(val fibM1: Fib169, val fibM2: Fib168) 177 | class Fib171(val fibM1: Fib170, val fibM2: Fib169) 178 | class Fib172(val fibM1: Fib171, val fibM2: Fib170) 179 | class Fib173(val fibM1: Fib172, val fibM2: Fib171) 180 | class Fib174(val fibM1: Fib173, val fibM2: Fib172) 181 | class Fib175(val fibM1: Fib174, val fibM2: Fib173) 182 | class Fib176(val fibM1: Fib175, val fibM2: Fib174) 183 | class Fib177(val fibM1: Fib176, val fibM2: Fib175) 184 | class Fib178(val fibM1: Fib177, val fibM2: Fib176) 185 | class Fib179(val fibM1: Fib178, val fibM2: Fib177) 186 | class Fib180(val fibM1: Fib179, val fibM2: Fib178) 187 | class Fib181(val fibM1: Fib180, val fibM2: Fib179) 188 | class Fib182(val fibM1: Fib181, val fibM2: Fib180) 189 | class Fib183(val fibM1: Fib182, val fibM2: Fib181) 190 | class Fib184(val fibM1: Fib183, val fibM2: Fib182) 191 | class Fib185(val fibM1: Fib184, val fibM2: Fib183) 192 | class Fib186(val fibM1: Fib185, val fibM2: Fib184) 193 | class Fib187(val fibM1: Fib186, val fibM2: Fib185) 194 | class Fib188(val fibM1: Fib187, val fibM2: Fib186) 195 | class Fib189(val fibM1: Fib188, val fibM2: Fib187) 196 | class Fib190(val fibM1: Fib189, val fibM2: Fib188) 197 | class Fib191(val fibM1: Fib190, val fibM2: Fib189) 198 | class Fib192(val fibM1: Fib191, val fibM2: Fib190) 199 | class Fib193(val fibM1: Fib192, val fibM2: Fib191) 200 | class Fib194(val fibM1: Fib193, val fibM2: Fib192) 201 | class Fib195(val fibM1: Fib194, val fibM2: Fib193) 202 | class Fib196(val fibM1: Fib195, val fibM2: Fib194) 203 | class Fib197(val fibM1: Fib196, val fibM2: Fib195) 204 | class Fib198(val fibM1: Fib197, val fibM2: Fib196) 205 | class Fib199(val fibM1: Fib198, val fibM2: Fib197) 206 | class Fib200(val fibM1: Fib199, val fibM2: Fib198) 207 | class Fib201(val fibM1: Fib200, val fibM2: Fib199) 208 | class Fib202(val fibM1: Fib201, val fibM2: Fib200) 209 | class Fib203(val fibM1: Fib202, val fibM2: Fib201) 210 | class Fib204(val fibM1: Fib203, val fibM2: Fib202) 211 | class Fib205(val fibM1: Fib204, val fibM2: Fib203) 212 | class Fib206(val fibM1: Fib205, val fibM2: Fib204) 213 | class Fib207(val fibM1: Fib206, val fibM2: Fib205) 214 | class Fib208(val fibM1: Fib207, val fibM2: Fib206) 215 | class Fib209(val fibM1: Fib208, val fibM2: Fib207) 216 | class Fib210(val fibM1: Fib209, val fibM2: Fib208) 217 | class Fib211(val fibM1: Fib210, val fibM2: Fib209) 218 | class Fib212(val fibM1: Fib211, val fibM2: Fib210) 219 | class Fib213(val fibM1: Fib212, val fibM2: Fib211) 220 | class Fib214(val fibM1: Fib213, val fibM2: Fib212) 221 | class Fib215(val fibM1: Fib214, val fibM2: Fib213) 222 | class Fib216(val fibM1: Fib215, val fibM2: Fib214) 223 | class Fib217(val fibM1: Fib216, val fibM2: Fib215) 224 | class Fib218(val fibM1: Fib217, val fibM2: Fib216) 225 | class Fib219(val fibM1: Fib218, val fibM2: Fib217) 226 | class Fib220(val fibM1: Fib219, val fibM2: Fib218) 227 | class Fib221(val fibM1: Fib220, val fibM2: Fib219) 228 | class Fib222(val fibM1: Fib221, val fibM2: Fib220) 229 | class Fib223(val fibM1: Fib222, val fibM2: Fib221) 230 | class Fib224(val fibM1: Fib223, val fibM2: Fib222) 231 | class Fib225(val fibM1: Fib224, val fibM2: Fib223) 232 | class Fib226(val fibM1: Fib225, val fibM2: Fib224) 233 | class Fib227(val fibM1: Fib226, val fibM2: Fib225) 234 | class Fib228(val fibM1: Fib227, val fibM2: Fib226) 235 | class Fib229(val fibM1: Fib228, val fibM2: Fib227) 236 | class Fib230(val fibM1: Fib229, val fibM2: Fib228) 237 | class Fib231(val fibM1: Fib230, val fibM2: Fib229) 238 | class Fib232(val fibM1: Fib231, val fibM2: Fib230) 239 | class Fib233(val fibM1: Fib232, val fibM2: Fib231) 240 | class Fib234(val fibM1: Fib233, val fibM2: Fib232) 241 | class Fib235(val fibM1: Fib234, val fibM2: Fib233) 242 | class Fib236(val fibM1: Fib235, val fibM2: Fib234) 243 | class Fib237(val fibM1: Fib236, val fibM2: Fib235) 244 | class Fib238(val fibM1: Fib237, val fibM2: Fib236) 245 | class Fib239(val fibM1: Fib238, val fibM2: Fib237) 246 | class Fib240(val fibM1: Fib239, val fibM2: Fib238) 247 | class Fib241(val fibM1: Fib240, val fibM2: Fib239) 248 | class Fib242(val fibM1: Fib241, val fibM2: Fib240) 249 | class Fib243(val fibM1: Fib242, val fibM2: Fib241) 250 | class Fib244(val fibM1: Fib243, val fibM2: Fib242) 251 | class Fib245(val fibM1: Fib244, val fibM2: Fib243) 252 | class Fib246(val fibM1: Fib245, val fibM2: Fib244) 253 | class Fib247(val fibM1: Fib246, val fibM2: Fib245) 254 | class Fib248(val fibM1: Fib247, val fibM2: Fib246) 255 | class Fib249(val fibM1: Fib248, val fibM2: Fib247) 256 | class Fib250(val fibM1: Fib249, val fibM2: Fib248) 257 | class Fib251(val fibM1: Fib250, val fibM2: Fib249) 258 | class Fib252(val fibM1: Fib251, val fibM2: Fib250) 259 | class Fib253(val fibM1: Fib252, val fibM2: Fib251) 260 | class Fib254(val fibM1: Fib253, val fibM2: Fib252) 261 | class Fib255(val fibM1: Fib254, val fibM2: Fib253) 262 | class Fib256(val fibM1: Fib255, val fibM2: Fib254) 263 | class Fib257(val fibM1: Fib256, val fibM2: Fib255) 264 | class Fib258(val fibM1: Fib257, val fibM2: Fib256) 265 | class Fib259(val fibM1: Fib258, val fibM2: Fib257) 266 | class Fib260(val fibM1: Fib259, val fibM2: Fib258) 267 | class Fib261(val fibM1: Fib260, val fibM2: Fib259) 268 | class Fib262(val fibM1: Fib261, val fibM2: Fib260) 269 | class Fib263(val fibM1: Fib262, val fibM2: Fib261) 270 | class Fib264(val fibM1: Fib263, val fibM2: Fib262) 271 | class Fib265(val fibM1: Fib264, val fibM2: Fib263) 272 | class Fib266(val fibM1: Fib265, val fibM2: Fib264) 273 | class Fib267(val fibM1: Fib266, val fibM2: Fib265) 274 | class Fib268(val fibM1: Fib267, val fibM2: Fib266) 275 | class Fib269(val fibM1: Fib268, val fibM2: Fib267) 276 | class Fib270(val fibM1: Fib269, val fibM2: Fib268) 277 | class Fib271(val fibM1: Fib270, val fibM2: Fib269) 278 | class Fib272(val fibM1: Fib271, val fibM2: Fib270) 279 | class Fib273(val fibM1: Fib272, val fibM2: Fib271) 280 | class Fib274(val fibM1: Fib273, val fibM2: Fib272) 281 | class Fib275(val fibM1: Fib274, val fibM2: Fib273) 282 | class Fib276(val fibM1: Fib275, val fibM2: Fib274) 283 | class Fib277(val fibM1: Fib276, val fibM2: Fib275) 284 | class Fib278(val fibM1: Fib277, val fibM2: Fib276) 285 | class Fib279(val fibM1: Fib278, val fibM2: Fib277) 286 | class Fib280(val fibM1: Fib279, val fibM2: Fib278) 287 | class Fib281(val fibM1: Fib280, val fibM2: Fib279) 288 | class Fib282(val fibM1: Fib281, val fibM2: Fib280) 289 | class Fib283(val fibM1: Fib282, val fibM2: Fib281) 290 | class Fib284(val fibM1: Fib283, val fibM2: Fib282) 291 | class Fib285(val fibM1: Fib284, val fibM2: Fib283) 292 | class Fib286(val fibM1: Fib285, val fibM2: Fib284) 293 | class Fib287(val fibM1: Fib286, val fibM2: Fib285) 294 | class Fib288(val fibM1: Fib287, val fibM2: Fib286) 295 | class Fib289(val fibM1: Fib288, val fibM2: Fib287) 296 | class Fib290(val fibM1: Fib289, val fibM2: Fib288) 297 | class Fib291(val fibM1: Fib290, val fibM2: Fib289) 298 | class Fib292(val fibM1: Fib291, val fibM2: Fib290) 299 | class Fib293(val fibM1: Fib292, val fibM2: Fib291) 300 | class Fib294(val fibM1: Fib293, val fibM2: Fib292) 301 | class Fib295(val fibM1: Fib294, val fibM2: Fib293) 302 | class Fib296(val fibM1: Fib295, val fibM2: Fib294) 303 | class Fib297(val fibM1: Fib296, val fibM2: Fib295) 304 | class Fib298(val fibM1: Fib297, val fibM2: Fib296) 305 | class Fib299(val fibM1: Fib298, val fibM2: Fib297) 306 | class Fib300(val fibM1: Fib299, val fibM2: Fib298) 307 | class Fib301(val fibM1: Fib300, val fibM2: Fib299) 308 | class Fib302(val fibM1: Fib301, val fibM2: Fib300) 309 | class Fib303(val fibM1: Fib302, val fibM2: Fib301) 310 | class Fib304(val fibM1: Fib303, val fibM2: Fib302) 311 | class Fib305(val fibM1: Fib304, val fibM2: Fib303) 312 | class Fib306(val fibM1: Fib305, val fibM2: Fib304) 313 | class Fib307(val fibM1: Fib306, val fibM2: Fib305) 314 | class Fib308(val fibM1: Fib307, val fibM2: Fib306) 315 | class Fib309(val fibM1: Fib308, val fibM2: Fib307) 316 | class Fib310(val fibM1: Fib309, val fibM2: Fib308) 317 | class Fib311(val fibM1: Fib310, val fibM2: Fib309) 318 | class Fib312(val fibM1: Fib311, val fibM2: Fib310) 319 | class Fib313(val fibM1: Fib312, val fibM2: Fib311) 320 | class Fib314(val fibM1: Fib313, val fibM2: Fib312) 321 | class Fib315(val fibM1: Fib314, val fibM2: Fib313) 322 | class Fib316(val fibM1: Fib315, val fibM2: Fib314) 323 | class Fib317(val fibM1: Fib316, val fibM2: Fib315) 324 | class Fib318(val fibM1: Fib317, val fibM2: Fib316) 325 | class Fib319(val fibM1: Fib318, val fibM2: Fib317) 326 | class Fib320(val fibM1: Fib319, val fibM2: Fib318) 327 | class Fib321(val fibM1: Fib320, val fibM2: Fib319) 328 | class Fib322(val fibM1: Fib321, val fibM2: Fib320) 329 | class Fib323(val fibM1: Fib322, val fibM2: Fib321) 330 | class Fib324(val fibM1: Fib323, val fibM2: Fib322) 331 | class Fib325(val fibM1: Fib324, val fibM2: Fib323) 332 | class Fib326(val fibM1: Fib325, val fibM2: Fib324) 333 | class Fib327(val fibM1: Fib326, val fibM2: Fib325) 334 | class Fib328(val fibM1: Fib327, val fibM2: Fib326) 335 | class Fib329(val fibM1: Fib328, val fibM2: Fib327) 336 | class Fib330(val fibM1: Fib329, val fibM2: Fib328) 337 | class Fib331(val fibM1: Fib330, val fibM2: Fib329) 338 | class Fib332(val fibM1: Fib331, val fibM2: Fib330) 339 | class Fib333(val fibM1: Fib332, val fibM2: Fib331) 340 | class Fib334(val fibM1: Fib333, val fibM2: Fib332) 341 | class Fib335(val fibM1: Fib334, val fibM2: Fib333) 342 | class Fib336(val fibM1: Fib335, val fibM2: Fib334) 343 | class Fib337(val fibM1: Fib336, val fibM2: Fib335) 344 | class Fib338(val fibM1: Fib337, val fibM2: Fib336) 345 | class Fib339(val fibM1: Fib338, val fibM2: Fib337) 346 | class Fib340(val fibM1: Fib339, val fibM2: Fib338) 347 | class Fib341(val fibM1: Fib340, val fibM2: Fib339) 348 | class Fib342(val fibM1: Fib341, val fibM2: Fib340) 349 | class Fib343(val fibM1: Fib342, val fibM2: Fib341) 350 | class Fib344(val fibM1: Fib343, val fibM2: Fib342) 351 | class Fib345(val fibM1: Fib344, val fibM2: Fib343) 352 | class Fib346(val fibM1: Fib345, val fibM2: Fib344) 353 | class Fib347(val fibM1: Fib346, val fibM2: Fib345) 354 | class Fib348(val fibM1: Fib347, val fibM2: Fib346) 355 | class Fib349(val fibM1: Fib348, val fibM2: Fib347) 356 | class Fib350(val fibM1: Fib349, val fibM2: Fib348) 357 | class Fib351(val fibM1: Fib350, val fibM2: Fib349) 358 | class Fib352(val fibM1: Fib351, val fibM2: Fib350) 359 | class Fib353(val fibM1: Fib352, val fibM2: Fib351) 360 | class Fib354(val fibM1: Fib353, val fibM2: Fib352) 361 | class Fib355(val fibM1: Fib354, val fibM2: Fib353) 362 | class Fib356(val fibM1: Fib355, val fibM2: Fib354) 363 | class Fib357(val fibM1: Fib356, val fibM2: Fib355) 364 | class Fib358(val fibM1: Fib357, val fibM2: Fib356) 365 | class Fib359(val fibM1: Fib358, val fibM2: Fib357) 366 | class Fib360(val fibM1: Fib359, val fibM2: Fib358) 367 | class Fib361(val fibM1: Fib360, val fibM2: Fib359) 368 | class Fib362(val fibM1: Fib361, val fibM2: Fib360) 369 | class Fib363(val fibM1: Fib362, val fibM2: Fib361) 370 | class Fib364(val fibM1: Fib363, val fibM2: Fib362) 371 | class Fib365(val fibM1: Fib364, val fibM2: Fib363) 372 | class Fib366(val fibM1: Fib365, val fibM2: Fib364) 373 | class Fib367(val fibM1: Fib366, val fibM2: Fib365) 374 | class Fib368(val fibM1: Fib367, val fibM2: Fib366) 375 | class Fib369(val fibM1: Fib368, val fibM2: Fib367) 376 | class Fib370(val fibM1: Fib369, val fibM2: Fib368) 377 | class Fib371(val fibM1: Fib370, val fibM2: Fib369) 378 | class Fib372(val fibM1: Fib371, val fibM2: Fib370) 379 | class Fib373(val fibM1: Fib372, val fibM2: Fib371) 380 | class Fib374(val fibM1: Fib373, val fibM2: Fib372) 381 | class Fib375(val fibM1: Fib374, val fibM2: Fib373) 382 | class Fib376(val fibM1: Fib375, val fibM2: Fib374) 383 | class Fib377(val fibM1: Fib376, val fibM2: Fib375) 384 | class Fib378(val fibM1: Fib377, val fibM2: Fib376) 385 | class Fib379(val fibM1: Fib378, val fibM2: Fib377) 386 | class Fib380(val fibM1: Fib379, val fibM2: Fib378) 387 | class Fib381(val fibM1: Fib380, val fibM2: Fib379) 388 | class Fib382(val fibM1: Fib381, val fibM2: Fib380) 389 | class Fib383(val fibM1: Fib382, val fibM2: Fib381) 390 | class Fib384(val fibM1: Fib383, val fibM2: Fib382) 391 | class Fib385(val fibM1: Fib384, val fibM2: Fib383) 392 | class Fib386(val fibM1: Fib385, val fibM2: Fib384) 393 | class Fib387(val fibM1: Fib386, val fibM2: Fib385) 394 | class Fib388(val fibM1: Fib387, val fibM2: Fib386) 395 | class Fib389(val fibM1: Fib388, val fibM2: Fib387) 396 | class Fib390(val fibM1: Fib389, val fibM2: Fib388) 397 | class Fib391(val fibM1: Fib390, val fibM2: Fib389) 398 | class Fib392(val fibM1: Fib391, val fibM2: Fib390) 399 | class Fib393(val fibM1: Fib392, val fibM2: Fib391) 400 | class Fib394(val fibM1: Fib393, val fibM2: Fib392) 401 | class Fib395(val fibM1: Fib394, val fibM2: Fib393) 402 | class Fib396(val fibM1: Fib395, val fibM2: Fib394) 403 | class Fib397(val fibM1: Fib396, val fibM2: Fib395) 404 | class Fib398(val fibM1: Fib397, val fibM2: Fib396) 405 | class Fib399(val fibM1: Fib398, val fibM2: Fib397) 406 | class Fib400(val fibM1: Fib399, val fibM2: Fib398) 407 | class Fib401(val fibM1: Fib400, val fibM2: Fib399) 408 | class Fib402(val fibM1: Fib401, val fibM2: Fib400) 409 | class Fib403(val fibM1: Fib402, val fibM2: Fib401) 410 | class Fib404(val fibM1: Fib403, val fibM2: Fib402) 411 | class Fib405(val fibM1: Fib404, val fibM2: Fib403) 412 | class Fib406(val fibM1: Fib405, val fibM2: Fib404) 413 | class Fib407(val fibM1: Fib406, val fibM2: Fib405) 414 | class Fib408(val fibM1: Fib407, val fibM2: Fib406) 415 | class Fib409(val fibM1: Fib408, val fibM2: Fib407) 416 | class Fib410(val fibM1: Fib409, val fibM2: Fib408) 417 | class Fib411(val fibM1: Fib410, val fibM2: Fib409) 418 | class Fib412(val fibM1: Fib411, val fibM2: Fib410) 419 | class Fib413(val fibM1: Fib412, val fibM2: Fib411) 420 | class Fib414(val fibM1: Fib413, val fibM2: Fib412) 421 | class Fib415(val fibM1: Fib414, val fibM2: Fib413) 422 | class Fib416(val fibM1: Fib415, val fibM2: Fib414) 423 | class Fib417(val fibM1: Fib416, val fibM2: Fib415) 424 | class Fib418(val fibM1: Fib417, val fibM2: Fib416) 425 | class Fib419(val fibM1: Fib418, val fibM2: Fib417) 426 | class Fib420(val fibM1: Fib419, val fibM2: Fib418) 427 | class Fib421(val fibM1: Fib420, val fibM2: Fib419) 428 | class Fib422(val fibM1: Fib421, val fibM2: Fib420) 429 | class Fib423(val fibM1: Fib422, val fibM2: Fib421) 430 | class Fib424(val fibM1: Fib423, val fibM2: Fib422) 431 | class Fib425(val fibM1: Fib424, val fibM2: Fib423) 432 | class Fib426(val fibM1: Fib425, val fibM2: Fib424) 433 | class Fib427(val fibM1: Fib426, val fibM2: Fib425) 434 | class Fib428(val fibM1: Fib427, val fibM2: Fib426) 435 | class Fib429(val fibM1: Fib428, val fibM2: Fib427) 436 | class Fib430(val fibM1: Fib429, val fibM2: Fib428) 437 | class Fib431(val fibM1: Fib430, val fibM2: Fib429) 438 | class Fib432(val fibM1: Fib431, val fibM2: Fib430) 439 | class Fib433(val fibM1: Fib432, val fibM2: Fib431) 440 | class Fib434(val fibM1: Fib433, val fibM2: Fib432) 441 | class Fib435(val fibM1: Fib434, val fibM2: Fib433) 442 | class Fib436(val fibM1: Fib435, val fibM2: Fib434) 443 | class Fib437(val fibM1: Fib436, val fibM2: Fib435) 444 | class Fib438(val fibM1: Fib437, val fibM2: Fib436) 445 | class Fib439(val fibM1: Fib438, val fibM2: Fib437) 446 | class Fib440(val fibM1: Fib439, val fibM2: Fib438) 447 | class Fib441(val fibM1: Fib440, val fibM2: Fib439) 448 | class Fib442(val fibM1: Fib441, val fibM2: Fib440) 449 | class Fib443(val fibM1: Fib442, val fibM2: Fib441) 450 | class Fib444(val fibM1: Fib443, val fibM2: Fib442) 451 | class Fib445(val fibM1: Fib444, val fibM2: Fib443) 452 | class Fib446(val fibM1: Fib445, val fibM2: Fib444) 453 | class Fib447(val fibM1: Fib446, val fibM2: Fib445) 454 | class Fib448(val fibM1: Fib447, val fibM2: Fib446) 455 | class Fib449(val fibM1: Fib448, val fibM2: Fib447) 456 | class Fib450(val fibM1: Fib449, val fibM2: Fib448) 457 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/InjectionTest.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | import android.os.Build 4 | import com.sloydev.dependencyinjectionperformance.custom.DIContainer 5 | import com.sloydev.dependencyinjectionperformance.custom.customJavaModule 6 | import com.sloydev.dependencyinjectionperformance.custom.customKotlinModule 7 | import com.sloydev.dependencyinjectionperformance.dagger2.DaggerJavaDaggerComponent 8 | import com.sloydev.dependencyinjectionperformance.dagger2.DaggerKotlinDaggerComponent 9 | import com.sloydev.dependencyinjectionperformance.dagger2.JavaDaggerComponent 10 | import com.sloydev.dependencyinjectionperformance.dagger2.KotlinDaggerComponent 11 | import com.sloydev.dependencyinjectionperformance.katana.katanaJavaModule 12 | import com.sloydev.dependencyinjectionperformance.katana.katanaKotlinModule 13 | import com.sloydev.dependencyinjectionperformance.koin.koinJavaModule 14 | import com.sloydev.dependencyinjectionperformance.koin.koinKotlinModule 15 | import org.kodein.di.Kodein 16 | import org.kodein.di.direct 17 | import org.kodein.di.erased.instance 18 | import org.koin.core.Koin 19 | import org.koin.core.context.startKoin 20 | import org.koin.core.context.stopKoin 21 | import org.rewedigital.katana.Component 22 | import org.rewedigital.katana.Katana 23 | import org.rewedigital.katana.android.environment.AndroidEnvironmentContext 24 | import org.rewedigital.katana.android.environment.AndroidEnvironmentContext.Profile.SPEED 25 | import org.rewedigital.katana.createComponent 26 | import javax.inject.Inject 27 | 28 | class InjectionTest { 29 | 30 | private val kotlinDaggerTest = KotlinDaggerTest() 31 | private val javaDaggerTest = JavaDaggerTest() 32 | 33 | private val rounds = 100 34 | 35 | fun runTests() { 36 | val results = listOf( 37 | customTest(), 38 | koinTest(), 39 | kodeinTest(), 40 | katanaTest(), 41 | daggerTest() 42 | ) 43 | reportMarkdown(results) 44 | } 45 | 46 | private fun reportMarkdown(results: List) { 47 | log("Done!") 48 | log(" ") 49 | log("${Build.BRAND} ${Build.DEVICE} with Android ${Build.VERSION.RELEASE}") 50 | log(" ") 51 | log("Library | Setup Kotlin | Setup Java | Inject Kotlin | Inject Java") 52 | log("--- | ---:| ---:| ---:| ---:") 53 | results.forEach { 54 | log("**${it.injectorName}** | ${it[Variant.KOTLIN].startupTime.median().format()} | ${it[Variant.JAVA].startupTime.median().format()} | ${it[Variant.KOTLIN].injectionTime.median().format()} | ${it[Variant.JAVA].injectionTime.median().format()}") 55 | } 56 | } 57 | 58 | private fun runTest( 59 | setup: () -> Unit, 60 | test: () -> Unit, 61 | teardown: () -> Unit = {} 62 | ): TestResult { 63 | val startup = (1..rounds).map { measureTime { setup() }.also { teardown() } } 64 | setup() 65 | 66 | val testDurations = (1..rounds).map { measureTime { test() } } 67 | teardown() 68 | return TestResult(startup, testDurations) 69 | } 70 | 71 | private fun koinTest(): LibraryResult { 72 | log("Running Koin...") 73 | lateinit var koin: Koin 74 | return LibraryResult("Koin", mapOf( 75 | Variant.KOTLIN to runTest( 76 | setup = { 77 | koin = startKoin { 78 | modules(koinKotlinModule) 79 | }.koin 80 | }, 81 | test = { koin.get() }, 82 | teardown = { stopKoin() } 83 | ), 84 | Variant.JAVA to runTest( 85 | setup = { 86 | koin = startKoin { 87 | modules(koinJavaModule) 88 | }.koin 89 | }, 90 | test = { koin.get() }, 91 | teardown = { stopKoin() } 92 | ) 93 | )) 94 | } 95 | 96 | private fun kodeinTest(): LibraryResult { 97 | log("Running Kodein...") 98 | lateinit var kodein: Kodein 99 | return LibraryResult("Kodein", mapOf( 100 | Variant.KOTLIN to runTest( 101 | setup = { kodein = Kodein { import(kodeinKotlinModule) } }, 102 | test = { kodein.direct.instance() } 103 | ), 104 | Variant.JAVA to runTest( 105 | setup = { kodein = Kodein { import(kodeinKotlinModule) } }, 106 | test = { kodein.direct.instance() } 107 | ) 108 | )) 109 | } 110 | 111 | private fun katanaTest(): LibraryResult { 112 | log("Running Katana...") 113 | Katana.environmentContext = AndroidEnvironmentContext(profile = SPEED) 114 | lateinit var component: Component 115 | return LibraryResult("Katana", mapOf( 116 | Variant.KOTLIN to runTest( 117 | setup = { component = createComponent(modules = listOf(katanaKotlinModule)) }, 118 | test = { component.injectNow() } 119 | ), 120 | Variant.JAVA to runTest( 121 | setup = { component = createComponent(modules = listOf(katanaJavaModule)) }, 122 | test = { component.injectNow() } 123 | ) 124 | )) 125 | } 126 | 127 | private fun customTest(): LibraryResult { 128 | log("Running Custom...") 129 | return LibraryResult("Custom", mapOf( 130 | Variant.KOTLIN to runTest( 131 | setup = { DIContainer.loadModule(customKotlinModule) }, 132 | test = { DIContainer.get() }, 133 | teardown = { DIContainer.unloadModules() } 134 | ), 135 | Variant.JAVA to runTest( 136 | setup = { DIContainer.loadModule(customJavaModule) }, 137 | test = { DIContainer.get() }, 138 | teardown = { DIContainer.unloadModules() } 139 | ) 140 | )) 141 | } 142 | 143 | private fun daggerTest(): LibraryResult { 144 | log("Running Dagger...") 145 | lateinit var kotlinComponent: KotlinDaggerComponent 146 | lateinit var javaComponent: JavaDaggerComponent 147 | return LibraryResult("Dagger", mapOf( 148 | Variant.KOTLIN to runTest( 149 | setup = { kotlinComponent = DaggerKotlinDaggerComponent.create() }, 150 | test = { kotlinComponent.inject(kotlinDaggerTest) } 151 | ), 152 | Variant.JAVA to runTest( 153 | setup = { javaComponent = DaggerJavaDaggerComponent.create() }, 154 | test = { javaComponent.inject(javaDaggerTest) } 155 | ) 156 | )) 157 | } 158 | 159 | class KotlinDaggerTest { 160 | @Inject 161 | lateinit var daggerFib8: Fib8 162 | } 163 | 164 | class JavaDaggerTest { 165 | @Inject 166 | lateinit var daggerFib8: FibonacciJava.Fib8 167 | } 168 | } 169 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/Main.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | import com.sloydev.dependencyinjectionperformance.koin.koinKotlinModule 4 | import org.koin.dsl.koinApplication 5 | 6 | fun main(vararg args: String) { 7 | val koin = koinApplication { 8 | modules(koinKotlinModule) 9 | }.koin 10 | koin.get() 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.google.android.material.snackbar.Snackbar 6 | import kotlinx.android.synthetic.main.activity_main.* 7 | 8 | class MainActivity : AppCompatActivity() { 9 | 10 | override fun onCreate(savedInstanceState: Bundle?) { 11 | super.onCreate(savedInstanceState) 12 | setContentView(R.layout.activity_main) 13 | setSupportActionBar(toolbar) 14 | 15 | fab.setOnClickListener { view -> 16 | Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 17 | .setAction("Action", null).show() 18 | } 19 | 20 | InjectionTest().runTests() 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/Utilities.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | import android.util.Log 4 | import java.util.* 5 | import kotlin.system.measureNanoTime 6 | 7 | typealias Milliseconds = Double 8 | 9 | data class LibraryResult(val injectorName: String, val results: Map) { 10 | operator fun get(variant: Variant) = results[variant]!! 11 | } 12 | 13 | data class TestResult( 14 | val startupTime: List, 15 | val injectionTime: List 16 | ) 17 | 18 | enum class Variant { 19 | KOTLIN, JAVA 20 | } 21 | 22 | fun Milliseconds?.format() = String.format(Locale.ENGLISH, "%.2f ms", this) 23 | 24 | fun measureTime(block: () -> Unit): Milliseconds = measureNanoTime(block) / 1000000.0 25 | 26 | fun List.median() = sorted().let { (it[it.size / 2] + it[(it.size - 1) / 2]) / 2 } 27 | 28 | 29 | fun log(msg: String) { 30 | Log.i("DI-TEST", msg) 31 | } -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/custom/CustomDI.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.custom 2 | 3 | import kotlin.reflect.KClass 4 | 5 | data class DefinitionKey(val clazz: Class, val name: String?) 6 | 7 | sealed class Definition(val key: DefinitionKey, val create: () -> T) { 8 | 9 | class Factory(key: DefinitionKey, create: () -> T) : Definition(key, create) 10 | 11 | class Singleton(key: DefinitionKey, create: () -> T) : Definition(key, create) 12 | } 13 | 14 | class Module(val definitions: List>) 15 | 16 | class ModuleBuilder(val definitions: MutableList>) { 17 | inline fun factory(name: String? = null, noinline block: () -> T): Definition.Factory { 18 | val factory = Definition.Factory(DefinitionKey(T::class.java, name), block) 19 | definitions += factory 20 | return factory 21 | } 22 | 23 | inline fun single(name: String? = null, noinline block: () -> T): Definition.Singleton { 24 | val singleton = Definition.Singleton(DefinitionKey(T::class.java, name), block) 25 | definitions += singleton 26 | return singleton 27 | } 28 | 29 | inline fun get(name: String? = null) = DIContainer.get(name) 30 | 31 | inline infix fun Definition.bind(iface: KClass) { 32 | definitions += Definition.Factory(DefinitionKey(iface.java, null)) { get(key.name) } 33 | } 34 | } 35 | 36 | fun module(block: ModuleBuilder.() -> Unit): Module { 37 | val builder = ModuleBuilder(arrayListOf()) 38 | builder.block() 39 | return Module(builder.definitions) 40 | } 41 | 42 | object DIContainer { 43 | 44 | private val definitions: MutableMap, Definition<*>> = HashMap() 45 | private val singletons: MutableMap, Any> = HashMap() 46 | 47 | fun loadModules(modules: List) { 48 | modules.forEach { loadModule(it) } 49 | } 50 | 51 | fun loadModule(module: Module) { 52 | module.definitions.forEach { 53 | definitions[it.key] = it 54 | singletons.remove(it.key) 55 | } 56 | } 57 | 58 | fun unloadModules() { 59 | definitions.clear() 60 | singletons.clear() 61 | } 62 | 63 | inline fun get(name: String? = null) = get(T::class.java, name) 64 | 65 | inline fun inject(name: String? = null) = inject(T::class.java, name) 66 | 67 | @JvmStatic 68 | @JvmOverloads 69 | fun get(clazz: Class, name: String? = null): T { 70 | val key = DefinitionKey(clazz, name) 71 | val singleton = singletons[key] 72 | if (singleton != null) { 73 | return singleton as T 74 | } 75 | 76 | val definition: Definition? = definitions[key] as Definition? 77 | if (definition != null) { 78 | val instance: T = definition.create() 79 | if (definition is Definition.Singleton) { 80 | singletons[key] = instance 81 | } 82 | return instance 83 | } else { 84 | throw IllegalStateException("No definition found for ${clazz.canonicalName} with name $name") 85 | } 86 | } 87 | 88 | @JvmStatic 89 | @JvmOverloads 90 | fun inject(clazz: Class, name: String? = null): Lazy { 91 | return lazy { get(clazz, name) } 92 | } 93 | } -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/custom/CustomJavaModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.custom 2 | 3 | import com.sloydev.dependencyinjectionperformance.FibonacciJava 4 | 5 | 6 | val customJavaModule = module { 7 | factory { FibonacciJava.Fib1() } 8 | factory { FibonacciJava.Fib2() } 9 | factory { FibonacciJava.Fib3(get(), get()) } 10 | factory { FibonacciJava.Fib4(get(), get()) } 11 | factory { FibonacciJava.Fib5(get(), get()) } 12 | factory { FibonacciJava.Fib6(get(), get()) } 13 | factory { FibonacciJava.Fib7(get(), get()) } 14 | factory { FibonacciJava.Fib8(get(), get()) } 15 | factory { FibonacciJava.Fib9(get(), get()) } 16 | factory { FibonacciJava.Fib10(get(), get()) } 17 | factory { FibonacciJava.Fib11(get(), get()) } 18 | factory { FibonacciJava.Fib12(get(), get()) } 19 | factory { FibonacciJava.Fib13(get(), get()) } 20 | factory { FibonacciJava.Fib14(get(), get()) } 21 | factory { FibonacciJava.Fib15(get(), get()) } 22 | factory { FibonacciJava.Fib16(get(), get()) } 23 | factory { FibonacciJava.Fib17(get(), get()) } 24 | factory { FibonacciJava.Fib18(get(), get()) } 25 | factory { FibonacciJava.Fib19(get(), get()) } 26 | factory { FibonacciJava.Fib20(get(), get()) } 27 | factory { FibonacciJava.Fib21(get(), get()) } 28 | factory { FibonacciJava.Fib22(get(), get()) } 29 | factory { FibonacciJava.Fib23(get(), get()) } 30 | factory { FibonacciJava.Fib24(get(), get()) } 31 | factory { FibonacciJava.Fib25(get(), get()) } 32 | factory { FibonacciJava.Fib26(get(), get()) } 33 | factory { FibonacciJava.Fib27(get(), get()) } 34 | factory { FibonacciJava.Fib28(get(), get()) } 35 | factory { FibonacciJava.Fib29(get(), get()) } 36 | factory { FibonacciJava.Fib30(get(), get()) } 37 | factory { FibonacciJava.Fib31(get(), get()) } 38 | factory { FibonacciJava.Fib32(get(), get()) } 39 | factory { FibonacciJava.Fib33(get(), get()) } 40 | factory { FibonacciJava.Fib34(get(), get()) } 41 | factory { FibonacciJava.Fib35(get(), get()) } 42 | factory { FibonacciJava.Fib36(get(), get()) } 43 | factory { FibonacciJava.Fib37(get(), get()) } 44 | factory { FibonacciJava.Fib38(get(), get()) } 45 | factory { FibonacciJava.Fib39(get(), get()) } 46 | factory { FibonacciJava.Fib40(get(), get()) } 47 | factory { FibonacciJava.Fib41(get(), get()) } 48 | factory { FibonacciJava.Fib42(get(), get()) } 49 | factory { FibonacciJava.Fib43(get(), get()) } 50 | factory { FibonacciJava.Fib44(get(), get()) } 51 | factory { FibonacciJava.Fib45(get(), get()) } 52 | factory { FibonacciJava.Fib46(get(), get()) } 53 | factory { FibonacciJava.Fib47(get(), get()) } 54 | factory { FibonacciJava.Fib48(get(), get()) } 55 | factory { FibonacciJava.Fib49(get(), get()) } 56 | factory { FibonacciJava.Fib50(get(), get()) } 57 | factory { FibonacciJava.Fib51(get(), get()) } 58 | factory { FibonacciJava.Fib52(get(), get()) } 59 | factory { FibonacciJava.Fib53(get(), get()) } 60 | factory { FibonacciJava.Fib54(get(), get()) } 61 | factory { FibonacciJava.Fib55(get(), get()) } 62 | factory { FibonacciJava.Fib56(get(), get()) } 63 | factory { FibonacciJava.Fib57(get(), get()) } 64 | factory { FibonacciJava.Fib58(get(), get()) } 65 | factory { FibonacciJava.Fib59(get(), get()) } 66 | factory { FibonacciJava.Fib60(get(), get()) } 67 | factory { FibonacciJava.Fib61(get(), get()) } 68 | factory { FibonacciJava.Fib62(get(), get()) } 69 | factory { FibonacciJava.Fib63(get(), get()) } 70 | factory { FibonacciJava.Fib64(get(), get()) } 71 | factory { FibonacciJava.Fib65(get(), get()) } 72 | factory { FibonacciJava.Fib66(get(), get()) } 73 | factory { FibonacciJava.Fib67(get(), get()) } 74 | factory { FibonacciJava.Fib68(get(), get()) } 75 | factory { FibonacciJava.Fib69(get(), get()) } 76 | factory { FibonacciJava.Fib70(get(), get()) } 77 | factory { FibonacciJava.Fib71(get(), get()) } 78 | factory { FibonacciJava.Fib72(get(), get()) } 79 | factory { FibonacciJava.Fib73(get(), get()) } 80 | factory { FibonacciJava.Fib74(get(), get()) } 81 | factory { FibonacciJava.Fib75(get(), get()) } 82 | factory { FibonacciJava.Fib76(get(), get()) } 83 | factory { FibonacciJava.Fib77(get(), get()) } 84 | factory { FibonacciJava.Fib78(get(), get()) } 85 | factory { FibonacciJava.Fib79(get(), get()) } 86 | factory { FibonacciJava.Fib80(get(), get()) } 87 | factory { FibonacciJava.Fib81(get(), get()) } 88 | factory { FibonacciJava.Fib82(get(), get()) } 89 | factory { FibonacciJava.Fib83(get(), get()) } 90 | factory { FibonacciJava.Fib84(get(), get()) } 91 | factory { FibonacciJava.Fib85(get(), get()) } 92 | factory { FibonacciJava.Fib86(get(), get()) } 93 | factory { FibonacciJava.Fib87(get(), get()) } 94 | factory { FibonacciJava.Fib88(get(), get()) } 95 | factory { FibonacciJava.Fib89(get(), get()) } 96 | factory { FibonacciJava.Fib90(get(), get()) } 97 | factory { FibonacciJava.Fib91(get(), get()) } 98 | factory { FibonacciJava.Fib92(get(), get()) } 99 | factory { FibonacciJava.Fib93(get(), get()) } 100 | factory { FibonacciJava.Fib94(get(), get()) } 101 | factory { FibonacciJava.Fib95(get(), get()) } 102 | factory { FibonacciJava.Fib96(get(), get()) } 103 | factory { FibonacciJava.Fib97(get(), get()) } 104 | factory { FibonacciJava.Fib98(get(), get()) } 105 | factory { FibonacciJava.Fib99(get(), get()) } 106 | factory { FibonacciJava.Fib100(get(), get()) } 107 | factory { FibonacciJava.Fib101(get(), get()) } 108 | factory { FibonacciJava.Fib102(get(), get()) } 109 | factory { FibonacciJava.Fib103(get(), get()) } 110 | factory { FibonacciJava.Fib104(get(), get()) } 111 | factory { FibonacciJava.Fib105(get(), get()) } 112 | factory { FibonacciJava.Fib106(get(), get()) } 113 | factory { FibonacciJava.Fib107(get(), get()) } 114 | factory { FibonacciJava.Fib108(get(), get()) } 115 | factory { FibonacciJava.Fib109(get(), get()) } 116 | factory { FibonacciJava.Fib110(get(), get()) } 117 | factory { FibonacciJava.Fib111(get(), get()) } 118 | factory { FibonacciJava.Fib112(get(), get()) } 119 | factory { FibonacciJava.Fib113(get(), get()) } 120 | factory { FibonacciJava.Fib114(get(), get()) } 121 | factory { FibonacciJava.Fib115(get(), get()) } 122 | factory { FibonacciJava.Fib116(get(), get()) } 123 | factory { FibonacciJava.Fib117(get(), get()) } 124 | factory { FibonacciJava.Fib118(get(), get()) } 125 | factory { FibonacciJava.Fib119(get(), get()) } 126 | factory { FibonacciJava.Fib120(get(), get()) } 127 | factory { FibonacciJava.Fib121(get(), get()) } 128 | factory { FibonacciJava.Fib122(get(), get()) } 129 | factory { FibonacciJava.Fib123(get(), get()) } 130 | factory { FibonacciJava.Fib124(get(), get()) } 131 | factory { FibonacciJava.Fib125(get(), get()) } 132 | factory { FibonacciJava.Fib126(get(), get()) } 133 | factory { FibonacciJava.Fib127(get(), get()) } 134 | factory { FibonacciJava.Fib128(get(), get()) } 135 | factory { FibonacciJava.Fib129(get(), get()) } 136 | factory { FibonacciJava.Fib130(get(), get()) } 137 | factory { FibonacciJava.Fib131(get(), get()) } 138 | factory { FibonacciJava.Fib132(get(), get()) } 139 | factory { FibonacciJava.Fib133(get(), get()) } 140 | factory { FibonacciJava.Fib134(get(), get()) } 141 | factory { FibonacciJava.Fib135(get(), get()) } 142 | factory { FibonacciJava.Fib136(get(), get()) } 143 | factory { FibonacciJava.Fib137(get(), get()) } 144 | factory { FibonacciJava.Fib138(get(), get()) } 145 | factory { FibonacciJava.Fib139(get(), get()) } 146 | factory { FibonacciJava.Fib140(get(), get()) } 147 | factory { FibonacciJava.Fib141(get(), get()) } 148 | factory { FibonacciJava.Fib142(get(), get()) } 149 | factory { FibonacciJava.Fib143(get(), get()) } 150 | factory { FibonacciJava.Fib144(get(), get()) } 151 | factory { FibonacciJava.Fib145(get(), get()) } 152 | factory { FibonacciJava.Fib146(get(), get()) } 153 | factory { FibonacciJava.Fib147(get(), get()) } 154 | factory { FibonacciJava.Fib148(get(), get()) } 155 | factory { FibonacciJava.Fib149(get(), get()) } 156 | factory { FibonacciJava.Fib150(get(), get()) } 157 | factory { FibonacciJava.Fib151(get(), get()) } 158 | factory { FibonacciJava.Fib152(get(), get()) } 159 | factory { FibonacciJava.Fib153(get(), get()) } 160 | factory { FibonacciJava.Fib154(get(), get()) } 161 | factory { FibonacciJava.Fib155(get(), get()) } 162 | factory { FibonacciJava.Fib156(get(), get()) } 163 | factory { FibonacciJava.Fib157(get(), get()) } 164 | factory { FibonacciJava.Fib158(get(), get()) } 165 | factory { FibonacciJava.Fib159(get(), get()) } 166 | factory { FibonacciJava.Fib160(get(), get()) } 167 | factory { FibonacciJava.Fib161(get(), get()) } 168 | factory { FibonacciJava.Fib162(get(), get()) } 169 | factory { FibonacciJava.Fib163(get(), get()) } 170 | factory { FibonacciJava.Fib164(get(), get()) } 171 | factory { FibonacciJava.Fib165(get(), get()) } 172 | factory { FibonacciJava.Fib166(get(), get()) } 173 | factory { FibonacciJava.Fib167(get(), get()) } 174 | factory { FibonacciJava.Fib168(get(), get()) } 175 | factory { FibonacciJava.Fib169(get(), get()) } 176 | factory { FibonacciJava.Fib170(get(), get()) } 177 | factory { FibonacciJava.Fib171(get(), get()) } 178 | factory { FibonacciJava.Fib172(get(), get()) } 179 | factory { FibonacciJava.Fib173(get(), get()) } 180 | factory { FibonacciJava.Fib174(get(), get()) } 181 | factory { FibonacciJava.Fib175(get(), get()) } 182 | factory { FibonacciJava.Fib176(get(), get()) } 183 | factory { FibonacciJava.Fib177(get(), get()) } 184 | factory { FibonacciJava.Fib178(get(), get()) } 185 | factory { FibonacciJava.Fib179(get(), get()) } 186 | factory { FibonacciJava.Fib180(get(), get()) } 187 | factory { FibonacciJava.Fib181(get(), get()) } 188 | factory { FibonacciJava.Fib182(get(), get()) } 189 | factory { FibonacciJava.Fib183(get(), get()) } 190 | factory { FibonacciJava.Fib184(get(), get()) } 191 | factory { FibonacciJava.Fib185(get(), get()) } 192 | factory { FibonacciJava.Fib186(get(), get()) } 193 | factory { FibonacciJava.Fib187(get(), get()) } 194 | factory { FibonacciJava.Fib188(get(), get()) } 195 | factory { FibonacciJava.Fib189(get(), get()) } 196 | factory { FibonacciJava.Fib190(get(), get()) } 197 | factory { FibonacciJava.Fib191(get(), get()) } 198 | factory { FibonacciJava.Fib192(get(), get()) } 199 | factory { FibonacciJava.Fib193(get(), get()) } 200 | factory { FibonacciJava.Fib194(get(), get()) } 201 | factory { FibonacciJava.Fib195(get(), get()) } 202 | factory { FibonacciJava.Fib196(get(), get()) } 203 | factory { FibonacciJava.Fib197(get(), get()) } 204 | factory { FibonacciJava.Fib198(get(), get()) } 205 | factory { FibonacciJava.Fib199(get(), get()) } 206 | factory { FibonacciJava.Fib200(get(), get()) } 207 | factory { FibonacciJava.Fib201(get(), get()) } 208 | factory { FibonacciJava.Fib202(get(), get()) } 209 | factory { FibonacciJava.Fib203(get(), get()) } 210 | factory { FibonacciJava.Fib204(get(), get()) } 211 | factory { FibonacciJava.Fib205(get(), get()) } 212 | factory { FibonacciJava.Fib206(get(), get()) } 213 | factory { FibonacciJava.Fib207(get(), get()) } 214 | factory { FibonacciJava.Fib208(get(), get()) } 215 | factory { FibonacciJava.Fib209(get(), get()) } 216 | factory { FibonacciJava.Fib210(get(), get()) } 217 | factory { FibonacciJava.Fib211(get(), get()) } 218 | factory { FibonacciJava.Fib212(get(), get()) } 219 | factory { FibonacciJava.Fib213(get(), get()) } 220 | factory { FibonacciJava.Fib214(get(), get()) } 221 | factory { FibonacciJava.Fib215(get(), get()) } 222 | factory { FibonacciJava.Fib216(get(), get()) } 223 | factory { FibonacciJava.Fib217(get(), get()) } 224 | factory { FibonacciJava.Fib218(get(), get()) } 225 | factory { FibonacciJava.Fib219(get(), get()) } 226 | factory { FibonacciJava.Fib220(get(), get()) } 227 | factory { FibonacciJava.Fib221(get(), get()) } 228 | factory { FibonacciJava.Fib222(get(), get()) } 229 | factory { FibonacciJava.Fib223(get(), get()) } 230 | factory { FibonacciJava.Fib224(get(), get()) } 231 | factory { FibonacciJava.Fib225(get(), get()) } 232 | factory { FibonacciJava.Fib226(get(), get()) } 233 | factory { FibonacciJava.Fib227(get(), get()) } 234 | factory { FibonacciJava.Fib228(get(), get()) } 235 | factory { FibonacciJava.Fib229(get(), get()) } 236 | factory { FibonacciJava.Fib230(get(), get()) } 237 | factory { FibonacciJava.Fib231(get(), get()) } 238 | factory { FibonacciJava.Fib232(get(), get()) } 239 | factory { FibonacciJava.Fib233(get(), get()) } 240 | factory { FibonacciJava.Fib234(get(), get()) } 241 | factory { FibonacciJava.Fib235(get(), get()) } 242 | factory { FibonacciJava.Fib236(get(), get()) } 243 | factory { FibonacciJava.Fib237(get(), get()) } 244 | factory { FibonacciJava.Fib238(get(), get()) } 245 | factory { FibonacciJava.Fib239(get(), get()) } 246 | factory { FibonacciJava.Fib240(get(), get()) } 247 | factory { FibonacciJava.Fib241(get(), get()) } 248 | factory { FibonacciJava.Fib242(get(), get()) } 249 | factory { FibonacciJava.Fib243(get(), get()) } 250 | factory { FibonacciJava.Fib244(get(), get()) } 251 | factory { FibonacciJava.Fib245(get(), get()) } 252 | factory { FibonacciJava.Fib246(get(), get()) } 253 | factory { FibonacciJava.Fib247(get(), get()) } 254 | factory { FibonacciJava.Fib248(get(), get()) } 255 | factory { FibonacciJava.Fib249(get(), get()) } 256 | factory { FibonacciJava.Fib250(get(), get()) } 257 | factory { FibonacciJava.Fib251(get(), get()) } 258 | factory { FibonacciJava.Fib252(get(), get()) } 259 | factory { FibonacciJava.Fib253(get(), get()) } 260 | factory { FibonacciJava.Fib254(get(), get()) } 261 | factory { FibonacciJava.Fib255(get(), get()) } 262 | factory { FibonacciJava.Fib256(get(), get()) } 263 | factory { FibonacciJava.Fib257(get(), get()) } 264 | factory { FibonacciJava.Fib258(get(), get()) } 265 | factory { FibonacciJava.Fib259(get(), get()) } 266 | factory { FibonacciJava.Fib260(get(), get()) } 267 | factory { FibonacciJava.Fib261(get(), get()) } 268 | factory { FibonacciJava.Fib262(get(), get()) } 269 | factory { FibonacciJava.Fib263(get(), get()) } 270 | factory { FibonacciJava.Fib264(get(), get()) } 271 | factory { FibonacciJava.Fib265(get(), get()) } 272 | factory { FibonacciJava.Fib266(get(), get()) } 273 | factory { FibonacciJava.Fib267(get(), get()) } 274 | factory { FibonacciJava.Fib268(get(), get()) } 275 | factory { FibonacciJava.Fib269(get(), get()) } 276 | factory { FibonacciJava.Fib270(get(), get()) } 277 | factory { FibonacciJava.Fib271(get(), get()) } 278 | factory { FibonacciJava.Fib272(get(), get()) } 279 | factory { FibonacciJava.Fib273(get(), get()) } 280 | factory { FibonacciJava.Fib274(get(), get()) } 281 | factory { FibonacciJava.Fib275(get(), get()) } 282 | factory { FibonacciJava.Fib276(get(), get()) } 283 | factory { FibonacciJava.Fib277(get(), get()) } 284 | factory { FibonacciJava.Fib278(get(), get()) } 285 | factory { FibonacciJava.Fib279(get(), get()) } 286 | factory { FibonacciJava.Fib280(get(), get()) } 287 | factory { FibonacciJava.Fib281(get(), get()) } 288 | factory { FibonacciJava.Fib282(get(), get()) } 289 | factory { FibonacciJava.Fib283(get(), get()) } 290 | factory { FibonacciJava.Fib284(get(), get()) } 291 | factory { FibonacciJava.Fib285(get(), get()) } 292 | factory { FibonacciJava.Fib286(get(), get()) } 293 | factory { FibonacciJava.Fib287(get(), get()) } 294 | factory { FibonacciJava.Fib288(get(), get()) } 295 | factory { FibonacciJava.Fib289(get(), get()) } 296 | factory { FibonacciJava.Fib290(get(), get()) } 297 | factory { FibonacciJava.Fib291(get(), get()) } 298 | factory { FibonacciJava.Fib292(get(), get()) } 299 | factory { FibonacciJava.Fib293(get(), get()) } 300 | factory { FibonacciJava.Fib294(get(), get()) } 301 | factory { FibonacciJava.Fib295(get(), get()) } 302 | factory { FibonacciJava.Fib296(get(), get()) } 303 | factory { FibonacciJava.Fib297(get(), get()) } 304 | factory { FibonacciJava.Fib298(get(), get()) } 305 | factory { FibonacciJava.Fib299(get(), get()) } 306 | factory { FibonacciJava.Fib300(get(), get()) } 307 | factory { FibonacciJava.Fib301(get(), get()) } 308 | factory { FibonacciJava.Fib302(get(), get()) } 309 | factory { FibonacciJava.Fib303(get(), get()) } 310 | factory { FibonacciJava.Fib304(get(), get()) } 311 | factory { FibonacciJava.Fib305(get(), get()) } 312 | factory { FibonacciJava.Fib306(get(), get()) } 313 | factory { FibonacciJava.Fib307(get(), get()) } 314 | factory { FibonacciJava.Fib308(get(), get()) } 315 | factory { FibonacciJava.Fib309(get(), get()) } 316 | factory { FibonacciJava.Fib310(get(), get()) } 317 | factory { FibonacciJava.Fib311(get(), get()) } 318 | factory { FibonacciJava.Fib312(get(), get()) } 319 | factory { FibonacciJava.Fib313(get(), get()) } 320 | factory { FibonacciJava.Fib314(get(), get()) } 321 | factory { FibonacciJava.Fib315(get(), get()) } 322 | factory { FibonacciJava.Fib316(get(), get()) } 323 | factory { FibonacciJava.Fib317(get(), get()) } 324 | factory { FibonacciJava.Fib318(get(), get()) } 325 | factory { FibonacciJava.Fib319(get(), get()) } 326 | factory { FibonacciJava.Fib320(get(), get()) } 327 | factory { FibonacciJava.Fib321(get(), get()) } 328 | factory { FibonacciJava.Fib322(get(), get()) } 329 | factory { FibonacciJava.Fib323(get(), get()) } 330 | factory { FibonacciJava.Fib324(get(), get()) } 331 | factory { FibonacciJava.Fib325(get(), get()) } 332 | factory { FibonacciJava.Fib326(get(), get()) } 333 | factory { FibonacciJava.Fib327(get(), get()) } 334 | factory { FibonacciJava.Fib328(get(), get()) } 335 | factory { FibonacciJava.Fib329(get(), get()) } 336 | factory { FibonacciJava.Fib330(get(), get()) } 337 | factory { FibonacciJava.Fib331(get(), get()) } 338 | factory { FibonacciJava.Fib332(get(), get()) } 339 | factory { FibonacciJava.Fib333(get(), get()) } 340 | factory { FibonacciJava.Fib334(get(), get()) } 341 | factory { FibonacciJava.Fib335(get(), get()) } 342 | factory { FibonacciJava.Fib336(get(), get()) } 343 | factory { FibonacciJava.Fib337(get(), get()) } 344 | factory { FibonacciJava.Fib338(get(), get()) } 345 | factory { FibonacciJava.Fib339(get(), get()) } 346 | factory { FibonacciJava.Fib340(get(), get()) } 347 | factory { FibonacciJava.Fib341(get(), get()) } 348 | factory { FibonacciJava.Fib342(get(), get()) } 349 | factory { FibonacciJava.Fib343(get(), get()) } 350 | factory { FibonacciJava.Fib344(get(), get()) } 351 | factory { FibonacciJava.Fib345(get(), get()) } 352 | factory { FibonacciJava.Fib346(get(), get()) } 353 | factory { FibonacciJava.Fib347(get(), get()) } 354 | factory { FibonacciJava.Fib348(get(), get()) } 355 | factory { FibonacciJava.Fib349(get(), get()) } 356 | factory { FibonacciJava.Fib350(get(), get()) } 357 | factory { FibonacciJava.Fib351(get(), get()) } 358 | factory { FibonacciJava.Fib352(get(), get()) } 359 | factory { FibonacciJava.Fib353(get(), get()) } 360 | factory { FibonacciJava.Fib354(get(), get()) } 361 | factory { FibonacciJava.Fib355(get(), get()) } 362 | factory { FibonacciJava.Fib356(get(), get()) } 363 | factory { FibonacciJava.Fib357(get(), get()) } 364 | factory { FibonacciJava.Fib358(get(), get()) } 365 | factory { FibonacciJava.Fib359(get(), get()) } 366 | factory { FibonacciJava.Fib360(get(), get()) } 367 | factory { FibonacciJava.Fib361(get(), get()) } 368 | factory { FibonacciJava.Fib362(get(), get()) } 369 | factory { FibonacciJava.Fib363(get(), get()) } 370 | factory { FibonacciJava.Fib364(get(), get()) } 371 | factory { FibonacciJava.Fib365(get(), get()) } 372 | factory { FibonacciJava.Fib366(get(), get()) } 373 | factory { FibonacciJava.Fib367(get(), get()) } 374 | factory { FibonacciJava.Fib368(get(), get()) } 375 | factory { FibonacciJava.Fib369(get(), get()) } 376 | factory { FibonacciJava.Fib370(get(), get()) } 377 | factory { FibonacciJava.Fib371(get(), get()) } 378 | factory { FibonacciJava.Fib372(get(), get()) } 379 | factory { FibonacciJava.Fib373(get(), get()) } 380 | factory { FibonacciJava.Fib374(get(), get()) } 381 | factory { FibonacciJava.Fib375(get(), get()) } 382 | factory { FibonacciJava.Fib376(get(), get()) } 383 | factory { FibonacciJava.Fib377(get(), get()) } 384 | factory { FibonacciJava.Fib378(get(), get()) } 385 | factory { FibonacciJava.Fib379(get(), get()) } 386 | factory { FibonacciJava.Fib380(get(), get()) } 387 | factory { FibonacciJava.Fib381(get(), get()) } 388 | factory { FibonacciJava.Fib382(get(), get()) } 389 | factory { FibonacciJava.Fib383(get(), get()) } 390 | factory { FibonacciJava.Fib384(get(), get()) } 391 | factory { FibonacciJava.Fib385(get(), get()) } 392 | factory { FibonacciJava.Fib386(get(), get()) } 393 | factory { FibonacciJava.Fib387(get(), get()) } 394 | factory { FibonacciJava.Fib388(get(), get()) } 395 | factory { FibonacciJava.Fib389(get(), get()) } 396 | factory { FibonacciJava.Fib390(get(), get()) } 397 | factory { FibonacciJava.Fib391(get(), get()) } 398 | factory { FibonacciJava.Fib392(get(), get()) } 399 | factory { FibonacciJava.Fib393(get(), get()) } 400 | factory { FibonacciJava.Fib394(get(), get()) } 401 | factory { FibonacciJava.Fib395(get(), get()) } 402 | factory { FibonacciJava.Fib396(get(), get()) } 403 | factory { FibonacciJava.Fib397(get(), get()) } 404 | factory { FibonacciJava.Fib398(get(), get()) } 405 | factory { FibonacciJava.Fib399(get(), get()) } 406 | factory { FibonacciJava.Fib400(get(), get()) } 407 | factory { FibonacciJava.Fib401(get(), get()) } 408 | factory { FibonacciJava.Fib402(get(), get()) } 409 | factory { FibonacciJava.Fib403(get(), get()) } 410 | factory { FibonacciJava.Fib404(get(), get()) } 411 | factory { FibonacciJava.Fib405(get(), get()) } 412 | factory { FibonacciJava.Fib406(get(), get()) } 413 | factory { FibonacciJava.Fib407(get(), get()) } 414 | factory { FibonacciJava.Fib408(get(), get()) } 415 | factory { FibonacciJava.Fib409(get(), get()) } 416 | factory { FibonacciJava.Fib410(get(), get()) } 417 | factory { FibonacciJava.Fib411(get(), get()) } 418 | factory { FibonacciJava.Fib412(get(), get()) } 419 | factory { FibonacciJava.Fib413(get(), get()) } 420 | factory { FibonacciJava.Fib414(get(), get()) } 421 | factory { FibonacciJava.Fib415(get(), get()) } 422 | factory { FibonacciJava.Fib416(get(), get()) } 423 | factory { FibonacciJava.Fib417(get(), get()) } 424 | factory { FibonacciJava.Fib418(get(), get()) } 425 | factory { FibonacciJava.Fib419(get(), get()) } 426 | factory { FibonacciJava.Fib420(get(), get()) } 427 | factory { FibonacciJava.Fib421(get(), get()) } 428 | factory { FibonacciJava.Fib422(get(), get()) } 429 | factory { FibonacciJava.Fib423(get(), get()) } 430 | factory { FibonacciJava.Fib424(get(), get()) } 431 | factory { FibonacciJava.Fib425(get(), get()) } 432 | factory { FibonacciJava.Fib426(get(), get()) } 433 | factory { FibonacciJava.Fib427(get(), get()) } 434 | factory { FibonacciJava.Fib428(get(), get()) } 435 | factory { FibonacciJava.Fib429(get(), get()) } 436 | factory { FibonacciJava.Fib430(get(), get()) } 437 | factory { FibonacciJava.Fib431(get(), get()) } 438 | factory { FibonacciJava.Fib432(get(), get()) } 439 | factory { FibonacciJava.Fib433(get(), get()) } 440 | factory { FibonacciJava.Fib434(get(), get()) } 441 | factory { FibonacciJava.Fib435(get(), get()) } 442 | factory { FibonacciJava.Fib436(get(), get()) } 443 | factory { FibonacciJava.Fib437(get(), get()) } 444 | factory { FibonacciJava.Fib438(get(), get()) } 445 | factory { FibonacciJava.Fib439(get(), get()) } 446 | factory { FibonacciJava.Fib440(get(), get()) } 447 | factory { FibonacciJava.Fib441(get(), get()) } 448 | factory { FibonacciJava.Fib442(get(), get()) } 449 | factory { FibonacciJava.Fib443(get(), get()) } 450 | factory { FibonacciJava.Fib444(get(), get()) } 451 | factory { FibonacciJava.Fib445(get(), get()) } 452 | factory { FibonacciJava.Fib446(get(), get()) } 453 | factory { FibonacciJava.Fib447(get(), get()) } 454 | factory { FibonacciJava.Fib448(get(), get()) } 455 | factory { FibonacciJava.Fib449(get(), get()) } 456 | factory { FibonacciJava.Fib450(get(), get()) } 457 | 458 | } 459 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/custom/CustomKotlinModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.custom 2 | 3 | import com.sloydev.dependencyinjectionperformance.* 4 | 5 | val customKotlinModule = module { 6 | single { Fib1() } 7 | single { Fib2() } 8 | factory { Fib3(get(), get()) } 9 | factory { Fib4(get(), get()) } 10 | factory { Fib5(get(), get()) } 11 | factory { Fib6(get(), get()) } 12 | factory { Fib7(get(), get()) } 13 | factory { Fib8(get(), get()) } 14 | factory { Fib9(get(), get()) } 15 | factory { Fib10(get(), get()) } 16 | factory { Fib11(get(), get()) } 17 | factory { Fib12(get(), get()) } 18 | factory { Fib13(get(), get()) } 19 | factory { Fib14(get(), get()) } 20 | factory { Fib15(get(), get()) } 21 | factory { Fib16(get(), get()) } 22 | factory { Fib17(get(), get()) } 23 | factory { Fib18(get(), get()) } 24 | factory { Fib19(get(), get()) } 25 | factory { Fib20(get(), get()) } 26 | factory { Fib21(get(), get()) } 27 | factory { Fib22(get(), get()) } 28 | factory { Fib23(get(), get()) } 29 | factory { Fib24(get(), get()) } 30 | factory { Fib25(get(), get()) } 31 | factory { Fib26(get(), get()) } 32 | factory { Fib27(get(), get()) } 33 | factory { Fib28(get(), get()) } 34 | factory { Fib29(get(), get()) } 35 | factory { Fib30(get(), get()) } 36 | factory { Fib31(get(), get()) } 37 | factory { Fib32(get(), get()) } 38 | factory { Fib33(get(), get()) } 39 | factory { Fib34(get(), get()) } 40 | factory { Fib35(get(), get()) } 41 | factory { Fib36(get(), get()) } 42 | factory { Fib37(get(), get()) } 43 | factory { Fib38(get(), get()) } 44 | factory { Fib39(get(), get()) } 45 | factory { Fib40(get(), get()) } 46 | factory { Fib41(get(), get()) } 47 | factory { Fib42(get(), get()) } 48 | factory { Fib43(get(), get()) } 49 | factory { Fib44(get(), get()) } 50 | factory { Fib45(get(), get()) } 51 | factory { Fib46(get(), get()) } 52 | factory { Fib47(get(), get()) } 53 | factory { Fib48(get(), get()) } 54 | factory { Fib49(get(), get()) } 55 | factory { Fib50(get(), get()) } 56 | factory { Fib51(get(), get()) } 57 | factory { Fib52(get(), get()) } 58 | factory { Fib53(get(), get()) } 59 | factory { Fib54(get(), get()) } 60 | factory { Fib55(get(), get()) } 61 | factory { Fib56(get(), get()) } 62 | factory { Fib57(get(), get()) } 63 | factory { Fib58(get(), get()) } 64 | factory { Fib59(get(), get()) } 65 | factory { Fib60(get(), get()) } 66 | factory { Fib61(get(), get()) } 67 | factory { Fib62(get(), get()) } 68 | factory { Fib63(get(), get()) } 69 | factory { Fib64(get(), get()) } 70 | factory { Fib65(get(), get()) } 71 | factory { Fib66(get(), get()) } 72 | factory { Fib67(get(), get()) } 73 | factory { Fib68(get(), get()) } 74 | factory { Fib69(get(), get()) } 75 | factory { Fib70(get(), get()) } 76 | factory { Fib71(get(), get()) } 77 | factory { Fib72(get(), get()) } 78 | factory { Fib73(get(), get()) } 79 | factory { Fib74(get(), get()) } 80 | factory { Fib75(get(), get()) } 81 | factory { Fib76(get(), get()) } 82 | factory { Fib77(get(), get()) } 83 | factory { Fib78(get(), get()) } 84 | factory { Fib79(get(), get()) } 85 | factory { Fib80(get(), get()) } 86 | factory { Fib81(get(), get()) } 87 | factory { Fib82(get(), get()) } 88 | factory { Fib83(get(), get()) } 89 | factory { Fib84(get(), get()) } 90 | factory { Fib85(get(), get()) } 91 | factory { Fib86(get(), get()) } 92 | factory { Fib87(get(), get()) } 93 | factory { Fib88(get(), get()) } 94 | factory { Fib89(get(), get()) } 95 | factory { Fib90(get(), get()) } 96 | factory { Fib91(get(), get()) } 97 | factory { Fib92(get(), get()) } 98 | factory { Fib93(get(), get()) } 99 | factory { Fib94(get(), get()) } 100 | factory { Fib95(get(), get()) } 101 | factory { Fib96(get(), get()) } 102 | factory { Fib97(get(), get()) } 103 | factory { Fib98(get(), get()) } 104 | factory { Fib99(get(), get()) } 105 | factory { Fib100(get(), get()) } 106 | factory { Fib101(get(), get()) } 107 | factory { Fib102(get(), get()) } 108 | factory { Fib103(get(), get()) } 109 | factory { Fib104(get(), get()) } 110 | factory { Fib105(get(), get()) } 111 | factory { Fib106(get(), get()) } 112 | factory { Fib107(get(), get()) } 113 | factory { Fib108(get(), get()) } 114 | factory { Fib109(get(), get()) } 115 | factory { Fib110(get(), get()) } 116 | factory { Fib111(get(), get()) } 117 | factory { Fib112(get(), get()) } 118 | factory { Fib113(get(), get()) } 119 | factory { Fib114(get(), get()) } 120 | factory { Fib115(get(), get()) } 121 | factory { Fib116(get(), get()) } 122 | factory { Fib117(get(), get()) } 123 | factory { Fib118(get(), get()) } 124 | factory { Fib119(get(), get()) } 125 | factory { Fib120(get(), get()) } 126 | factory { Fib121(get(), get()) } 127 | factory { Fib122(get(), get()) } 128 | factory { Fib123(get(), get()) } 129 | factory { Fib124(get(), get()) } 130 | factory { Fib125(get(), get()) } 131 | factory { Fib126(get(), get()) } 132 | factory { Fib127(get(), get()) } 133 | factory { Fib128(get(), get()) } 134 | factory { Fib129(get(), get()) } 135 | factory { Fib130(get(), get()) } 136 | factory { Fib131(get(), get()) } 137 | factory { Fib132(get(), get()) } 138 | factory { Fib133(get(), get()) } 139 | factory { Fib134(get(), get()) } 140 | factory { Fib135(get(), get()) } 141 | factory { Fib136(get(), get()) } 142 | factory { Fib137(get(), get()) } 143 | factory { Fib138(get(), get()) } 144 | factory { Fib139(get(), get()) } 145 | factory { Fib140(get(), get()) } 146 | factory { Fib141(get(), get()) } 147 | factory { Fib142(get(), get()) } 148 | factory { Fib143(get(), get()) } 149 | factory { Fib144(get(), get()) } 150 | factory { Fib145(get(), get()) } 151 | factory { Fib146(get(), get()) } 152 | factory { Fib147(get(), get()) } 153 | factory { Fib148(get(), get()) } 154 | factory { Fib149(get(), get()) } 155 | factory { Fib150(get(), get()) } 156 | factory { Fib151(get(), get()) } 157 | factory { Fib152(get(), get()) } 158 | factory { Fib153(get(), get()) } 159 | factory { Fib154(get(), get()) } 160 | factory { Fib155(get(), get()) } 161 | factory { Fib156(get(), get()) } 162 | factory { Fib157(get(), get()) } 163 | factory { Fib158(get(), get()) } 164 | factory { Fib159(get(), get()) } 165 | factory { Fib160(get(), get()) } 166 | factory { Fib161(get(), get()) } 167 | factory { Fib162(get(), get()) } 168 | factory { Fib163(get(), get()) } 169 | factory { Fib164(get(), get()) } 170 | factory { Fib165(get(), get()) } 171 | factory { Fib166(get(), get()) } 172 | factory { Fib167(get(), get()) } 173 | factory { Fib168(get(), get()) } 174 | factory { Fib169(get(), get()) } 175 | factory { Fib170(get(), get()) } 176 | factory { Fib171(get(), get()) } 177 | factory { Fib172(get(), get()) } 178 | factory { Fib173(get(), get()) } 179 | factory { Fib174(get(), get()) } 180 | factory { Fib175(get(), get()) } 181 | factory { Fib176(get(), get()) } 182 | factory { Fib177(get(), get()) } 183 | factory { Fib178(get(), get()) } 184 | factory { Fib179(get(), get()) } 185 | factory { Fib180(get(), get()) } 186 | factory { Fib181(get(), get()) } 187 | factory { Fib182(get(), get()) } 188 | factory { Fib183(get(), get()) } 189 | factory { Fib184(get(), get()) } 190 | factory { Fib185(get(), get()) } 191 | factory { Fib186(get(), get()) } 192 | factory { Fib187(get(), get()) } 193 | factory { Fib188(get(), get()) } 194 | factory { Fib189(get(), get()) } 195 | factory { Fib190(get(), get()) } 196 | factory { Fib191(get(), get()) } 197 | factory { Fib192(get(), get()) } 198 | factory { Fib193(get(), get()) } 199 | factory { Fib194(get(), get()) } 200 | factory { Fib195(get(), get()) } 201 | factory { Fib196(get(), get()) } 202 | factory { Fib197(get(), get()) } 203 | factory { Fib198(get(), get()) } 204 | factory { Fib199(get(), get()) } 205 | factory { Fib200(get(), get()) } 206 | factory { Fib201(get(), get()) } 207 | factory { Fib202(get(), get()) } 208 | factory { Fib203(get(), get()) } 209 | factory { Fib204(get(), get()) } 210 | factory { Fib205(get(), get()) } 211 | factory { Fib206(get(), get()) } 212 | factory { Fib207(get(), get()) } 213 | factory { Fib208(get(), get()) } 214 | factory { Fib209(get(), get()) } 215 | factory { Fib210(get(), get()) } 216 | factory { Fib211(get(), get()) } 217 | factory { Fib212(get(), get()) } 218 | factory { Fib213(get(), get()) } 219 | factory { Fib214(get(), get()) } 220 | factory { Fib215(get(), get()) } 221 | factory { Fib216(get(), get()) } 222 | factory { Fib217(get(), get()) } 223 | factory { Fib218(get(), get()) } 224 | factory { Fib219(get(), get()) } 225 | factory { Fib220(get(), get()) } 226 | factory { Fib221(get(), get()) } 227 | factory { Fib222(get(), get()) } 228 | factory { Fib223(get(), get()) } 229 | factory { Fib224(get(), get()) } 230 | factory { Fib225(get(), get()) } 231 | factory { Fib226(get(), get()) } 232 | factory { Fib227(get(), get()) } 233 | factory { Fib228(get(), get()) } 234 | factory { Fib229(get(), get()) } 235 | factory { Fib230(get(), get()) } 236 | factory { Fib231(get(), get()) } 237 | factory { Fib232(get(), get()) } 238 | factory { Fib233(get(), get()) } 239 | factory { Fib234(get(), get()) } 240 | factory { Fib235(get(), get()) } 241 | factory { Fib236(get(), get()) } 242 | factory { Fib237(get(), get()) } 243 | factory { Fib238(get(), get()) } 244 | factory { Fib239(get(), get()) } 245 | factory { Fib240(get(), get()) } 246 | factory { Fib241(get(), get()) } 247 | factory { Fib242(get(), get()) } 248 | factory { Fib243(get(), get()) } 249 | factory { Fib244(get(), get()) } 250 | factory { Fib245(get(), get()) } 251 | factory { Fib246(get(), get()) } 252 | factory { Fib247(get(), get()) } 253 | factory { Fib248(get(), get()) } 254 | factory { Fib249(get(), get()) } 255 | factory { Fib250(get(), get()) } 256 | factory { Fib251(get(), get()) } 257 | factory { Fib252(get(), get()) } 258 | factory { Fib253(get(), get()) } 259 | factory { Fib254(get(), get()) } 260 | factory { Fib255(get(), get()) } 261 | factory { Fib256(get(), get()) } 262 | factory { Fib257(get(), get()) } 263 | factory { Fib258(get(), get()) } 264 | factory { Fib259(get(), get()) } 265 | factory { Fib260(get(), get()) } 266 | factory { Fib261(get(), get()) } 267 | factory { Fib262(get(), get()) } 268 | factory { Fib263(get(), get()) } 269 | factory { Fib264(get(), get()) } 270 | factory { Fib265(get(), get()) } 271 | factory { Fib266(get(), get()) } 272 | factory { Fib267(get(), get()) } 273 | factory { Fib268(get(), get()) } 274 | factory { Fib269(get(), get()) } 275 | factory { Fib270(get(), get()) } 276 | factory { Fib271(get(), get()) } 277 | factory { Fib272(get(), get()) } 278 | factory { Fib273(get(), get()) } 279 | factory { Fib274(get(), get()) } 280 | factory { Fib275(get(), get()) } 281 | factory { Fib276(get(), get()) } 282 | factory { Fib277(get(), get()) } 283 | factory { Fib278(get(), get()) } 284 | factory { Fib279(get(), get()) } 285 | factory { Fib280(get(), get()) } 286 | factory { Fib281(get(), get()) } 287 | factory { Fib282(get(), get()) } 288 | factory { Fib283(get(), get()) } 289 | factory { Fib284(get(), get()) } 290 | factory { Fib285(get(), get()) } 291 | factory { Fib286(get(), get()) } 292 | factory { Fib287(get(), get()) } 293 | factory { Fib288(get(), get()) } 294 | factory { Fib289(get(), get()) } 295 | factory { Fib290(get(), get()) } 296 | factory { Fib291(get(), get()) } 297 | factory { Fib292(get(), get()) } 298 | factory { Fib293(get(), get()) } 299 | factory { Fib294(get(), get()) } 300 | factory { Fib295(get(), get()) } 301 | factory { Fib296(get(), get()) } 302 | factory { Fib297(get(), get()) } 303 | factory { Fib298(get(), get()) } 304 | factory { Fib299(get(), get()) } 305 | factory { Fib300(get(), get()) } 306 | factory { Fib301(get(), get()) } 307 | factory { Fib302(get(), get()) } 308 | factory { Fib303(get(), get()) } 309 | factory { Fib304(get(), get()) } 310 | factory { Fib305(get(), get()) } 311 | factory { Fib306(get(), get()) } 312 | factory { Fib307(get(), get()) } 313 | factory { Fib308(get(), get()) } 314 | factory { Fib309(get(), get()) } 315 | factory { Fib310(get(), get()) } 316 | factory { Fib311(get(), get()) } 317 | factory { Fib312(get(), get()) } 318 | factory { Fib313(get(), get()) } 319 | factory { Fib314(get(), get()) } 320 | factory { Fib315(get(), get()) } 321 | factory { Fib316(get(), get()) } 322 | factory { Fib317(get(), get()) } 323 | factory { Fib318(get(), get()) } 324 | factory { Fib319(get(), get()) } 325 | factory { Fib320(get(), get()) } 326 | factory { Fib321(get(), get()) } 327 | factory { Fib322(get(), get()) } 328 | factory { Fib323(get(), get()) } 329 | factory { Fib324(get(), get()) } 330 | factory { Fib325(get(), get()) } 331 | factory { Fib326(get(), get()) } 332 | factory { Fib327(get(), get()) } 333 | factory { Fib328(get(), get()) } 334 | factory { Fib329(get(), get()) } 335 | factory { Fib330(get(), get()) } 336 | factory { Fib331(get(), get()) } 337 | factory { Fib332(get(), get()) } 338 | factory { Fib333(get(), get()) } 339 | factory { Fib334(get(), get()) } 340 | factory { Fib335(get(), get()) } 341 | factory { Fib336(get(), get()) } 342 | factory { Fib337(get(), get()) } 343 | factory { Fib338(get(), get()) } 344 | factory { Fib339(get(), get()) } 345 | factory { Fib340(get(), get()) } 346 | factory { Fib341(get(), get()) } 347 | factory { Fib342(get(), get()) } 348 | factory { Fib343(get(), get()) } 349 | factory { Fib344(get(), get()) } 350 | factory { Fib345(get(), get()) } 351 | factory { Fib346(get(), get()) } 352 | factory { Fib347(get(), get()) } 353 | factory { Fib348(get(), get()) } 354 | factory { Fib349(get(), get()) } 355 | factory { Fib350(get(), get()) } 356 | factory { Fib351(get(), get()) } 357 | factory { Fib352(get(), get()) } 358 | factory { Fib353(get(), get()) } 359 | factory { Fib354(get(), get()) } 360 | factory { Fib355(get(), get()) } 361 | factory { Fib356(get(), get()) } 362 | factory { Fib357(get(), get()) } 363 | factory { Fib358(get(), get()) } 364 | factory { Fib359(get(), get()) } 365 | factory { Fib360(get(), get()) } 366 | factory { Fib361(get(), get()) } 367 | factory { Fib362(get(), get()) } 368 | factory { Fib363(get(), get()) } 369 | factory { Fib364(get(), get()) } 370 | factory { Fib365(get(), get()) } 371 | factory { Fib366(get(), get()) } 372 | factory { Fib367(get(), get()) } 373 | factory { Fib368(get(), get()) } 374 | factory { Fib369(get(), get()) } 375 | factory { Fib370(get(), get()) } 376 | factory { Fib371(get(), get()) } 377 | factory { Fib372(get(), get()) } 378 | factory { Fib373(get(), get()) } 379 | factory { Fib374(get(), get()) } 380 | factory { Fib375(get(), get()) } 381 | factory { Fib376(get(), get()) } 382 | factory { Fib377(get(), get()) } 383 | factory { Fib378(get(), get()) } 384 | factory { Fib379(get(), get()) } 385 | factory { Fib380(get(), get()) } 386 | factory { Fib381(get(), get()) } 387 | factory { Fib382(get(), get()) } 388 | factory { Fib383(get(), get()) } 389 | factory { Fib384(get(), get()) } 390 | factory { Fib385(get(), get()) } 391 | factory { Fib386(get(), get()) } 392 | factory { Fib387(get(), get()) } 393 | factory { Fib388(get(), get()) } 394 | factory { Fib389(get(), get()) } 395 | factory { Fib390(get(), get()) } 396 | factory { Fib391(get(), get()) } 397 | factory { Fib392(get(), get()) } 398 | factory { Fib393(get(), get()) } 399 | factory { Fib394(get(), get()) } 400 | factory { Fib395(get(), get()) } 401 | factory { Fib396(get(), get()) } 402 | factory { Fib397(get(), get()) } 403 | factory { Fib398(get(), get()) } 404 | factory { Fib399(get(), get()) } 405 | factory { Fib400(get(), get()) } 406 | factory { Fib401(get(), get()) } 407 | factory { Fib402(get(), get()) } 408 | factory { Fib403(get(), get()) } 409 | factory { Fib404(get(), get()) } 410 | factory { Fib405(get(), get()) } 411 | factory { Fib406(get(), get()) } 412 | factory { Fib407(get(), get()) } 413 | factory { Fib408(get(), get()) } 414 | factory { Fib409(get(), get()) } 415 | factory { Fib410(get(), get()) } 416 | factory { Fib411(get(), get()) } 417 | factory { Fib412(get(), get()) } 418 | factory { Fib413(get(), get()) } 419 | factory { Fib414(get(), get()) } 420 | factory { Fib415(get(), get()) } 421 | factory { Fib416(get(), get()) } 422 | factory { Fib417(get(), get()) } 423 | factory { Fib418(get(), get()) } 424 | factory { Fib419(get(), get()) } 425 | factory { Fib420(get(), get()) } 426 | factory { Fib421(get(), get()) } 427 | factory { Fib422(get(), get()) } 428 | factory { Fib423(get(), get()) } 429 | factory { Fib424(get(), get()) } 430 | factory { Fib425(get(), get()) } 431 | factory { Fib426(get(), get()) } 432 | factory { Fib427(get(), get()) } 433 | factory { Fib428(get(), get()) } 434 | factory { Fib429(get(), get()) } 435 | factory { Fib430(get(), get()) } 436 | factory { Fib431(get(), get()) } 437 | factory { Fib432(get(), get()) } 438 | factory { Fib433(get(), get()) } 439 | factory { Fib434(get(), get()) } 440 | factory { Fib435(get(), get()) } 441 | factory { Fib436(get(), get()) } 442 | factory { Fib437(get(), get()) } 443 | factory { Fib438(get(), get()) } 444 | factory { Fib439(get(), get()) } 445 | factory { Fib440(get(), get()) } 446 | factory { Fib441(get(), get()) } 447 | factory { Fib442(get(), get()) } 448 | factory { Fib443(get(), get()) } 449 | factory { Fib444(get(), get()) } 450 | factory { Fib445(get(), get()) } 451 | factory { Fib446(get(), get()) } 452 | factory { Fib447(get(), get()) } 453 | factory { Fib448(get(), get()) } 454 | factory { Fib449(get(), get()) } 455 | factory { Fib450(get(), get()) } 456 | } 457 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/dagger2/DaggerComponent.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.dagger2 2 | 3 | import com.sloydev.dependencyinjectionperformance.InjectionTest 4 | import dagger.Component 5 | 6 | @Component(modules = [KotlinDaggerModule::class]) 7 | interface KotlinDaggerComponent { 8 | fun inject(injectionTest: InjectionTest.KotlinDaggerTest) 9 | } 10 | 11 | @Component(modules = [JavaDaggerModule::class]) 12 | interface JavaDaggerComponent { 13 | fun inject(injectionTest: InjectionTest.JavaDaggerTest) 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/katana/KatanaKotlinModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.katana 2 | 3 | import com.sloydev.dependencyinjectionperformance.* 4 | import org.rewedigital.katana.bind 5 | import org.rewedigital.katana.createModule 6 | import org.rewedigital.katana.factory 7 | import org.rewedigital.katana.get 8 | 9 | val katanaKotlinModule = createModule("katanaKotlinModule") { 10 | bind { factory { Fib1() } } 11 | bind { factory { Fib2() } } 12 | bind { factory { Fib3(get(), get()) } } 13 | bind { factory { Fib4(get(), get()) } } 14 | bind { factory { Fib5(get(), get()) } } 15 | bind { factory { Fib6(get(), get()) } } 16 | bind { factory { Fib7(get(), get()) } } 17 | bind { factory { Fib8(get(), get()) } } 18 | bind { factory { Fib9(get(), get()) } } 19 | bind { factory { Fib10(get(), get()) } } 20 | bind { factory { Fib11(get(), get()) } } 21 | bind { factory { Fib12(get(), get()) } } 22 | bind { factory { Fib13(get(), get()) } } 23 | bind { factory { Fib14(get(), get()) } } 24 | bind { factory { Fib15(get(), get()) } } 25 | bind { factory { Fib16(get(), get()) } } 26 | bind { factory { Fib17(get(), get()) } } 27 | bind { factory { Fib18(get(), get()) } } 28 | bind { factory { Fib19(get(), get()) } } 29 | bind { factory { Fib20(get(), get()) } } 30 | bind { factory { Fib21(get(), get()) } } 31 | bind { factory { Fib22(get(), get()) } } 32 | bind { factory { Fib23(get(), get()) } } 33 | bind { factory { Fib24(get(), get()) } } 34 | bind { factory { Fib25(get(), get()) } } 35 | bind { factory { Fib26(get(), get()) } } 36 | bind { factory { Fib27(get(), get()) } } 37 | bind { factory { Fib28(get(), get()) } } 38 | bind { factory { Fib29(get(), get()) } } 39 | bind { factory { Fib30(get(), get()) } } 40 | bind { factory { Fib31(get(), get()) } } 41 | bind { factory { Fib32(get(), get()) } } 42 | bind { factory { Fib33(get(), get()) } } 43 | bind { factory { Fib34(get(), get()) } } 44 | bind { factory { Fib35(get(), get()) } } 45 | bind { factory { Fib36(get(), get()) } } 46 | bind { factory { Fib37(get(), get()) } } 47 | bind { factory { Fib38(get(), get()) } } 48 | bind { factory { Fib39(get(), get()) } } 49 | bind { factory { Fib40(get(), get()) } } 50 | bind { factory { Fib41(get(), get()) } } 51 | bind { factory { Fib42(get(), get()) } } 52 | bind { factory { Fib43(get(), get()) } } 53 | bind { factory { Fib44(get(), get()) } } 54 | bind { factory { Fib45(get(), get()) } } 55 | bind { factory { Fib46(get(), get()) } } 56 | bind { factory { Fib47(get(), get()) } } 57 | bind { factory { Fib48(get(), get()) } } 58 | bind { factory { Fib49(get(), get()) } } 59 | bind { factory { Fib50(get(), get()) } } 60 | bind { factory { Fib51(get(), get()) } } 61 | bind { factory { Fib52(get(), get()) } } 62 | bind { factory { Fib53(get(), get()) } } 63 | bind { factory { Fib54(get(), get()) } } 64 | bind { factory { Fib55(get(), get()) } } 65 | bind { factory { Fib56(get(), get()) } } 66 | bind { factory { Fib57(get(), get()) } } 67 | bind { factory { Fib58(get(), get()) } } 68 | bind { factory { Fib59(get(), get()) } } 69 | bind { factory { Fib60(get(), get()) } } 70 | bind { factory { Fib61(get(), get()) } } 71 | bind { factory { Fib62(get(), get()) } } 72 | bind { factory { Fib63(get(), get()) } } 73 | bind { factory { Fib64(get(), get()) } } 74 | bind { factory { Fib65(get(), get()) } } 75 | bind { factory { Fib66(get(), get()) } } 76 | bind { factory { Fib67(get(), get()) } } 77 | bind { factory { Fib68(get(), get()) } } 78 | bind { factory { Fib69(get(), get()) } } 79 | bind { factory { Fib70(get(), get()) } } 80 | bind { factory { Fib71(get(), get()) } } 81 | bind { factory { Fib72(get(), get()) } } 82 | bind { factory { Fib73(get(), get()) } } 83 | bind { factory { Fib74(get(), get()) } } 84 | bind { factory { Fib75(get(), get()) } } 85 | bind { factory { Fib76(get(), get()) } } 86 | bind { factory { Fib77(get(), get()) } } 87 | bind { factory { Fib78(get(), get()) } } 88 | bind { factory { Fib79(get(), get()) } } 89 | bind { factory { Fib80(get(), get()) } } 90 | bind { factory { Fib81(get(), get()) } } 91 | bind { factory { Fib82(get(), get()) } } 92 | bind { factory { Fib83(get(), get()) } } 93 | bind { factory { Fib84(get(), get()) } } 94 | bind { factory { Fib85(get(), get()) } } 95 | bind { factory { Fib86(get(), get()) } } 96 | bind { factory { Fib87(get(), get()) } } 97 | bind { factory { Fib88(get(), get()) } } 98 | bind { factory { Fib89(get(), get()) } } 99 | bind { factory { Fib90(get(), get()) } } 100 | bind { factory { Fib91(get(), get()) } } 101 | bind { factory { Fib92(get(), get()) } } 102 | bind { factory { Fib93(get(), get()) } } 103 | bind { factory { Fib94(get(), get()) } } 104 | bind { factory { Fib95(get(), get()) } } 105 | bind { factory { Fib96(get(), get()) } } 106 | bind { factory { Fib97(get(), get()) } } 107 | bind { factory { Fib98(get(), get()) } } 108 | bind { factory { Fib99(get(), get()) } } 109 | bind { factory { Fib100(get(), get()) } } 110 | bind { factory { Fib101(get(), get()) } } 111 | bind { factory { Fib102(get(), get()) } } 112 | bind { factory { Fib103(get(), get()) } } 113 | bind { factory { Fib104(get(), get()) } } 114 | bind { factory { Fib105(get(), get()) } } 115 | bind { factory { Fib106(get(), get()) } } 116 | bind { factory { Fib107(get(), get()) } } 117 | bind { factory { Fib108(get(), get()) } } 118 | bind { factory { Fib109(get(), get()) } } 119 | bind { factory { Fib110(get(), get()) } } 120 | bind { factory { Fib111(get(), get()) } } 121 | bind { factory { Fib112(get(), get()) } } 122 | bind { factory { Fib113(get(), get()) } } 123 | bind { factory { Fib114(get(), get()) } } 124 | bind { factory { Fib115(get(), get()) } } 125 | bind { factory { Fib116(get(), get()) } } 126 | bind { factory { Fib117(get(), get()) } } 127 | bind { factory { Fib118(get(), get()) } } 128 | bind { factory { Fib119(get(), get()) } } 129 | bind { factory { Fib120(get(), get()) } } 130 | bind { factory { Fib121(get(), get()) } } 131 | bind { factory { Fib122(get(), get()) } } 132 | bind { factory { Fib123(get(), get()) } } 133 | bind { factory { Fib124(get(), get()) } } 134 | bind { factory { Fib125(get(), get()) } } 135 | bind { factory { Fib126(get(), get()) } } 136 | bind { factory { Fib127(get(), get()) } } 137 | bind { factory { Fib128(get(), get()) } } 138 | bind { factory { Fib129(get(), get()) } } 139 | bind { factory { Fib130(get(), get()) } } 140 | bind { factory { Fib131(get(), get()) } } 141 | bind { factory { Fib132(get(), get()) } } 142 | bind { factory { Fib133(get(), get()) } } 143 | bind { factory { Fib134(get(), get()) } } 144 | bind { factory { Fib135(get(), get()) } } 145 | bind { factory { Fib136(get(), get()) } } 146 | bind { factory { Fib137(get(), get()) } } 147 | bind { factory { Fib138(get(), get()) } } 148 | bind { factory { Fib139(get(), get()) } } 149 | bind { factory { Fib140(get(), get()) } } 150 | bind { factory { Fib141(get(), get()) } } 151 | bind { factory { Fib142(get(), get()) } } 152 | bind { factory { Fib143(get(), get()) } } 153 | bind { factory { Fib144(get(), get()) } } 154 | bind { factory { Fib145(get(), get()) } } 155 | bind { factory { Fib146(get(), get()) } } 156 | bind { factory { Fib147(get(), get()) } } 157 | bind { factory { Fib148(get(), get()) } } 158 | bind { factory { Fib149(get(), get()) } } 159 | bind { factory { Fib150(get(), get()) } } 160 | bind { factory { Fib151(get(), get()) } } 161 | bind { factory { Fib152(get(), get()) } } 162 | bind { factory { Fib153(get(), get()) } } 163 | bind { factory { Fib154(get(), get()) } } 164 | bind { factory { Fib155(get(), get()) } } 165 | bind { factory { Fib156(get(), get()) } } 166 | bind { factory { Fib157(get(), get()) } } 167 | bind { factory { Fib158(get(), get()) } } 168 | bind { factory { Fib159(get(), get()) } } 169 | bind { factory { Fib160(get(), get()) } } 170 | bind { factory { Fib161(get(), get()) } } 171 | bind { factory { Fib162(get(), get()) } } 172 | bind { factory { Fib163(get(), get()) } } 173 | bind { factory { Fib164(get(), get()) } } 174 | bind { factory { Fib165(get(), get()) } } 175 | bind { factory { Fib166(get(), get()) } } 176 | bind { factory { Fib167(get(), get()) } } 177 | bind { factory { Fib168(get(), get()) } } 178 | bind { factory { Fib169(get(), get()) } } 179 | bind { factory { Fib170(get(), get()) } } 180 | bind { factory { Fib171(get(), get()) } } 181 | bind { factory { Fib172(get(), get()) } } 182 | bind { factory { Fib173(get(), get()) } } 183 | bind { factory { Fib174(get(), get()) } } 184 | bind { factory { Fib175(get(), get()) } } 185 | bind { factory { Fib176(get(), get()) } } 186 | bind { factory { Fib177(get(), get()) } } 187 | bind { factory { Fib178(get(), get()) } } 188 | bind { factory { Fib179(get(), get()) } } 189 | bind { factory { Fib180(get(), get()) } } 190 | bind { factory { Fib181(get(), get()) } } 191 | bind { factory { Fib182(get(), get()) } } 192 | bind { factory { Fib183(get(), get()) } } 193 | bind { factory { Fib184(get(), get()) } } 194 | bind { factory { Fib185(get(), get()) } } 195 | bind { factory { Fib186(get(), get()) } } 196 | bind { factory { Fib187(get(), get()) } } 197 | bind { factory { Fib188(get(), get()) } } 198 | bind { factory { Fib189(get(), get()) } } 199 | bind { factory { Fib190(get(), get()) } } 200 | bind { factory { Fib191(get(), get()) } } 201 | bind { factory { Fib192(get(), get()) } } 202 | bind { factory { Fib193(get(), get()) } } 203 | bind { factory { Fib194(get(), get()) } } 204 | bind { factory { Fib195(get(), get()) } } 205 | bind { factory { Fib196(get(), get()) } } 206 | bind { factory { Fib197(get(), get()) } } 207 | bind { factory { Fib198(get(), get()) } } 208 | bind { factory { Fib199(get(), get()) } } 209 | bind { factory { Fib200(get(), get()) } } 210 | bind { factory { Fib201(get(), get()) } } 211 | bind { factory { Fib202(get(), get()) } } 212 | bind { factory { Fib203(get(), get()) } } 213 | bind { factory { Fib204(get(), get()) } } 214 | bind { factory { Fib205(get(), get()) } } 215 | bind { factory { Fib206(get(), get()) } } 216 | bind { factory { Fib207(get(), get()) } } 217 | bind { factory { Fib208(get(), get()) } } 218 | bind { factory { Fib209(get(), get()) } } 219 | bind { factory { Fib210(get(), get()) } } 220 | bind { factory { Fib211(get(), get()) } } 221 | bind { factory { Fib212(get(), get()) } } 222 | bind { factory { Fib213(get(), get()) } } 223 | bind { factory { Fib214(get(), get()) } } 224 | bind { factory { Fib215(get(), get()) } } 225 | bind { factory { Fib216(get(), get()) } } 226 | bind { factory { Fib217(get(), get()) } } 227 | bind { factory { Fib218(get(), get()) } } 228 | bind { factory { Fib219(get(), get()) } } 229 | bind { factory { Fib220(get(), get()) } } 230 | bind { factory { Fib221(get(), get()) } } 231 | bind { factory { Fib222(get(), get()) } } 232 | bind { factory { Fib223(get(), get()) } } 233 | bind { factory { Fib224(get(), get()) } } 234 | bind { factory { Fib225(get(), get()) } } 235 | bind { factory { Fib226(get(), get()) } } 236 | bind { factory { Fib227(get(), get()) } } 237 | bind { factory { Fib228(get(), get()) } } 238 | bind { factory { Fib229(get(), get()) } } 239 | bind { factory { Fib230(get(), get()) } } 240 | bind { factory { Fib231(get(), get()) } } 241 | bind { factory { Fib232(get(), get()) } } 242 | bind { factory { Fib233(get(), get()) } } 243 | bind { factory { Fib234(get(), get()) } } 244 | bind { factory { Fib235(get(), get()) } } 245 | bind { factory { Fib236(get(), get()) } } 246 | bind { factory { Fib237(get(), get()) } } 247 | bind { factory { Fib238(get(), get()) } } 248 | bind { factory { Fib239(get(), get()) } } 249 | bind { factory { Fib240(get(), get()) } } 250 | bind { factory { Fib241(get(), get()) } } 251 | bind { factory { Fib242(get(), get()) } } 252 | bind { factory { Fib243(get(), get()) } } 253 | bind { factory { Fib244(get(), get()) } } 254 | bind { factory { Fib245(get(), get()) } } 255 | bind { factory { Fib246(get(), get()) } } 256 | bind { factory { Fib247(get(), get()) } } 257 | bind { factory { Fib248(get(), get()) } } 258 | bind { factory { Fib249(get(), get()) } } 259 | bind { factory { Fib250(get(), get()) } } 260 | bind { factory { Fib251(get(), get()) } } 261 | bind { factory { Fib252(get(), get()) } } 262 | bind { factory { Fib253(get(), get()) } } 263 | bind { factory { Fib254(get(), get()) } } 264 | bind { factory { Fib255(get(), get()) } } 265 | bind { factory { Fib256(get(), get()) } } 266 | bind { factory { Fib257(get(), get()) } } 267 | bind { factory { Fib258(get(), get()) } } 268 | bind { factory { Fib259(get(), get()) } } 269 | bind { factory { Fib260(get(), get()) } } 270 | bind { factory { Fib261(get(), get()) } } 271 | bind { factory { Fib262(get(), get()) } } 272 | bind { factory { Fib263(get(), get()) } } 273 | bind { factory { Fib264(get(), get()) } } 274 | bind { factory { Fib265(get(), get()) } } 275 | bind { factory { Fib266(get(), get()) } } 276 | bind { factory { Fib267(get(), get()) } } 277 | bind { factory { Fib268(get(), get()) } } 278 | bind { factory { Fib269(get(), get()) } } 279 | bind { factory { Fib270(get(), get()) } } 280 | bind { factory { Fib271(get(), get()) } } 281 | bind { factory { Fib272(get(), get()) } } 282 | bind { factory { Fib273(get(), get()) } } 283 | bind { factory { Fib274(get(), get()) } } 284 | bind { factory { Fib275(get(), get()) } } 285 | bind { factory { Fib276(get(), get()) } } 286 | bind { factory { Fib277(get(), get()) } } 287 | bind { factory { Fib278(get(), get()) } } 288 | bind { factory { Fib279(get(), get()) } } 289 | bind { factory { Fib280(get(), get()) } } 290 | bind { factory { Fib281(get(), get()) } } 291 | bind { factory { Fib282(get(), get()) } } 292 | bind { factory { Fib283(get(), get()) } } 293 | bind { factory { Fib284(get(), get()) } } 294 | bind { factory { Fib285(get(), get()) } } 295 | bind { factory { Fib286(get(), get()) } } 296 | bind { factory { Fib287(get(), get()) } } 297 | bind { factory { Fib288(get(), get()) } } 298 | bind { factory { Fib289(get(), get()) } } 299 | bind { factory { Fib290(get(), get()) } } 300 | bind { factory { Fib291(get(), get()) } } 301 | bind { factory { Fib292(get(), get()) } } 302 | bind { factory { Fib293(get(), get()) } } 303 | bind { factory { Fib294(get(), get()) } } 304 | bind { factory { Fib295(get(), get()) } } 305 | bind { factory { Fib296(get(), get()) } } 306 | bind { factory { Fib297(get(), get()) } } 307 | bind { factory { Fib298(get(), get()) } } 308 | bind { factory { Fib299(get(), get()) } } 309 | bind { factory { Fib300(get(), get()) } } 310 | bind { factory { Fib301(get(), get()) } } 311 | bind { factory { Fib302(get(), get()) } } 312 | bind { factory { Fib303(get(), get()) } } 313 | bind { factory { Fib304(get(), get()) } } 314 | bind { factory { Fib305(get(), get()) } } 315 | bind { factory { Fib306(get(), get()) } } 316 | bind { factory { Fib307(get(), get()) } } 317 | bind { factory { Fib308(get(), get()) } } 318 | bind { factory { Fib309(get(), get()) } } 319 | bind { factory { Fib310(get(), get()) } } 320 | bind { factory { Fib311(get(), get()) } } 321 | bind { factory { Fib312(get(), get()) } } 322 | bind { factory { Fib313(get(), get()) } } 323 | bind { factory { Fib314(get(), get()) } } 324 | bind { factory { Fib315(get(), get()) } } 325 | bind { factory { Fib316(get(), get()) } } 326 | bind { factory { Fib317(get(), get()) } } 327 | bind { factory { Fib318(get(), get()) } } 328 | bind { factory { Fib319(get(), get()) } } 329 | bind { factory { Fib320(get(), get()) } } 330 | bind { factory { Fib321(get(), get()) } } 331 | bind { factory { Fib322(get(), get()) } } 332 | bind { factory { Fib323(get(), get()) } } 333 | bind { factory { Fib324(get(), get()) } } 334 | bind { factory { Fib325(get(), get()) } } 335 | bind { factory { Fib326(get(), get()) } } 336 | bind { factory { Fib327(get(), get()) } } 337 | bind { factory { Fib328(get(), get()) } } 338 | bind { factory { Fib329(get(), get()) } } 339 | bind { factory { Fib330(get(), get()) } } 340 | bind { factory { Fib331(get(), get()) } } 341 | bind { factory { Fib332(get(), get()) } } 342 | bind { factory { Fib333(get(), get()) } } 343 | bind { factory { Fib334(get(), get()) } } 344 | bind { factory { Fib335(get(), get()) } } 345 | bind { factory { Fib336(get(), get()) } } 346 | bind { factory { Fib337(get(), get()) } } 347 | bind { factory { Fib338(get(), get()) } } 348 | bind { factory { Fib339(get(), get()) } } 349 | bind { factory { Fib340(get(), get()) } } 350 | bind { factory { Fib341(get(), get()) } } 351 | bind { factory { Fib342(get(), get()) } } 352 | bind { factory { Fib343(get(), get()) } } 353 | bind { factory { Fib344(get(), get()) } } 354 | bind { factory { Fib345(get(), get()) } } 355 | bind { factory { Fib346(get(), get()) } } 356 | bind { factory { Fib347(get(), get()) } } 357 | bind { factory { Fib348(get(), get()) } } 358 | bind { factory { Fib349(get(), get()) } } 359 | bind { factory { Fib350(get(), get()) } } 360 | bind { factory { Fib351(get(), get()) } } 361 | bind { factory { Fib352(get(), get()) } } 362 | bind { factory { Fib353(get(), get()) } } 363 | bind { factory { Fib354(get(), get()) } } 364 | bind { factory { Fib355(get(), get()) } } 365 | bind { factory { Fib356(get(), get()) } } 366 | bind { factory { Fib357(get(), get()) } } 367 | bind { factory { Fib358(get(), get()) } } 368 | bind { factory { Fib359(get(), get()) } } 369 | bind { factory { Fib360(get(), get()) } } 370 | bind { factory { Fib361(get(), get()) } } 371 | bind { factory { Fib362(get(), get()) } } 372 | bind { factory { Fib363(get(), get()) } } 373 | bind { factory { Fib364(get(), get()) } } 374 | bind { factory { Fib365(get(), get()) } } 375 | bind { factory { Fib366(get(), get()) } } 376 | bind { factory { Fib367(get(), get()) } } 377 | bind { factory { Fib368(get(), get()) } } 378 | bind { factory { Fib369(get(), get()) } } 379 | bind { factory { Fib370(get(), get()) } } 380 | bind { factory { Fib371(get(), get()) } } 381 | bind { factory { Fib372(get(), get()) } } 382 | bind { factory { Fib373(get(), get()) } } 383 | bind { factory { Fib374(get(), get()) } } 384 | bind { factory { Fib375(get(), get()) } } 385 | bind { factory { Fib376(get(), get()) } } 386 | bind { factory { Fib377(get(), get()) } } 387 | bind { factory { Fib378(get(), get()) } } 388 | bind { factory { Fib379(get(), get()) } } 389 | bind { factory { Fib380(get(), get()) } } 390 | bind { factory { Fib381(get(), get()) } } 391 | bind { factory { Fib382(get(), get()) } } 392 | bind { factory { Fib383(get(), get()) } } 393 | bind { factory { Fib384(get(), get()) } } 394 | bind { factory { Fib385(get(), get()) } } 395 | bind { factory { Fib386(get(), get()) } } 396 | bind { factory { Fib387(get(), get()) } } 397 | bind { factory { Fib388(get(), get()) } } 398 | bind { factory { Fib389(get(), get()) } } 399 | bind { factory { Fib390(get(), get()) } } 400 | bind { factory { Fib391(get(), get()) } } 401 | bind { factory { Fib392(get(), get()) } } 402 | bind { factory { Fib393(get(), get()) } } 403 | bind { factory { Fib394(get(), get()) } } 404 | bind { factory { Fib395(get(), get()) } } 405 | bind { factory { Fib396(get(), get()) } } 406 | bind { factory { Fib397(get(), get()) } } 407 | bind { factory { Fib398(get(), get()) } } 408 | bind { factory { Fib399(get(), get()) } } 409 | bind { factory { Fib400(get(), get()) } } 410 | bind { factory { Fib401(get(), get()) } } 411 | bind { factory { Fib402(get(), get()) } } 412 | bind { factory { Fib403(get(), get()) } } 413 | bind { factory { Fib404(get(), get()) } } 414 | bind { factory { Fib405(get(), get()) } } 415 | bind { factory { Fib406(get(), get()) } } 416 | bind { factory { Fib407(get(), get()) } } 417 | bind { factory { Fib408(get(), get()) } } 418 | bind { factory { Fib409(get(), get()) } } 419 | bind { factory { Fib410(get(), get()) } } 420 | bind { factory { Fib411(get(), get()) } } 421 | bind { factory { Fib412(get(), get()) } } 422 | bind { factory { Fib413(get(), get()) } } 423 | bind { factory { Fib414(get(), get()) } } 424 | bind { factory { Fib415(get(), get()) } } 425 | bind { factory { Fib416(get(), get()) } } 426 | bind { factory { Fib417(get(), get()) } } 427 | bind { factory { Fib418(get(), get()) } } 428 | bind { factory { Fib419(get(), get()) } } 429 | bind { factory { Fib420(get(), get()) } } 430 | bind { factory { Fib421(get(), get()) } } 431 | bind { factory { Fib422(get(), get()) } } 432 | bind { factory { Fib423(get(), get()) } } 433 | bind { factory { Fib424(get(), get()) } } 434 | bind { factory { Fib425(get(), get()) } } 435 | bind { factory { Fib426(get(), get()) } } 436 | bind { factory { Fib427(get(), get()) } } 437 | bind { factory { Fib428(get(), get()) } } 438 | bind { factory { Fib429(get(), get()) } } 439 | bind { factory { Fib430(get(), get()) } } 440 | bind { factory { Fib431(get(), get()) } } 441 | bind { factory { Fib432(get(), get()) } } 442 | bind { factory { Fib433(get(), get()) } } 443 | bind { factory { Fib434(get(), get()) } } 444 | bind { factory { Fib435(get(), get()) } } 445 | bind { factory { Fib436(get(), get()) } } 446 | bind { factory { Fib437(get(), get()) } } 447 | bind { factory { Fib438(get(), get()) } } 448 | bind { factory { Fib439(get(), get()) } } 449 | bind { factory { Fib440(get(), get()) } } 450 | bind { factory { Fib441(get(), get()) } } 451 | bind { factory { Fib442(get(), get()) } } 452 | bind { factory { Fib443(get(), get()) } } 453 | bind { factory { Fib444(get(), get()) } } 454 | bind { factory { Fib445(get(), get()) } } 455 | bind { factory { Fib446(get(), get()) } } 456 | bind { factory { Fib447(get(), get()) } } 457 | bind { factory { Fib448(get(), get()) } } 458 | bind { factory { Fib449(get(), get()) } } 459 | bind { factory { Fib450(get(), get()) } } 460 | } 461 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/kodein/KodeinKotlinModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance 2 | 3 | 4 | import org.kodein.di.Kodein 5 | import org.kodein.di.erased.bind 6 | import org.kodein.di.erased.instance 7 | import org.kodein.di.erased.provider 8 | 9 | /** 10 | * Generated with https://gist.github.com/Sloy/12affca1e49ba052053ab4c8bfc5bcb4 11 | */ 12 | val kodeinKotlinModule = Kodein.Module("fib") { 13 | bind() with provider { Fib1() } 14 | bind() with provider { Fib2() } 15 | bind() with provider { Fib3(instance(), instance()) } 16 | bind() with provider { Fib4(instance(), instance()) } 17 | bind() with provider { Fib5(instance(), instance()) } 18 | bind() with provider { Fib6(instance(), instance()) } 19 | bind() with provider { Fib7(instance(), instance()) } 20 | bind() with provider { Fib8(instance(), instance()) } 21 | bind() with provider { Fib9(instance(), instance()) } 22 | bind() with provider { Fib10(instance(), instance()) } 23 | bind() with provider { Fib11(instance(), instance()) } 24 | bind() with provider { Fib12(instance(), instance()) } 25 | bind() with provider { Fib13(instance(), instance()) } 26 | bind() with provider { Fib14(instance(), instance()) } 27 | bind() with provider { Fib15(instance(), instance()) } 28 | bind() with provider { Fib16(instance(), instance()) } 29 | bind() with provider { Fib17(instance(), instance()) } 30 | bind() with provider { Fib18(instance(), instance()) } 31 | bind() with provider { Fib19(instance(), instance()) } 32 | bind() with provider { Fib20(instance(), instance()) } 33 | bind() with provider { Fib21(instance(), instance()) } 34 | bind() with provider { Fib22(instance(), instance()) } 35 | bind() with provider { Fib23(instance(), instance()) } 36 | bind() with provider { Fib24(instance(), instance()) } 37 | bind() with provider { Fib25(instance(), instance()) } 38 | bind() with provider { Fib26(instance(), instance()) } 39 | bind() with provider { Fib27(instance(), instance()) } 40 | bind() with provider { Fib28(instance(), instance()) } 41 | bind() with provider { Fib29(instance(), instance()) } 42 | bind() with provider { Fib30(instance(), instance()) } 43 | bind() with provider { Fib31(instance(), instance()) } 44 | bind() with provider { Fib32(instance(), instance()) } 45 | bind() with provider { Fib33(instance(), instance()) } 46 | bind() with provider { Fib34(instance(), instance()) } 47 | bind() with provider { Fib35(instance(), instance()) } 48 | bind() with provider { Fib36(instance(), instance()) } 49 | bind() with provider { Fib37(instance(), instance()) } 50 | bind() with provider { Fib38(instance(), instance()) } 51 | bind() with provider { Fib39(instance(), instance()) } 52 | bind() with provider { Fib40(instance(), instance()) } 53 | bind() with provider { Fib41(instance(), instance()) } 54 | bind() with provider { Fib42(instance(), instance()) } 55 | bind() with provider { Fib43(instance(), instance()) } 56 | bind() with provider { Fib44(instance(), instance()) } 57 | bind() with provider { Fib45(instance(), instance()) } 58 | bind() with provider { Fib46(instance(), instance()) } 59 | bind() with provider { Fib47(instance(), instance()) } 60 | bind() with provider { Fib48(instance(), instance()) } 61 | bind() with provider { Fib49(instance(), instance()) } 62 | bind() with provider { Fib50(instance(), instance()) } 63 | bind() with provider { Fib51(instance(), instance()) } 64 | bind() with provider { Fib52(instance(), instance()) } 65 | bind() with provider { Fib53(instance(), instance()) } 66 | bind() with provider { Fib54(instance(), instance()) } 67 | bind() with provider { Fib55(instance(), instance()) } 68 | bind() with provider { Fib56(instance(), instance()) } 69 | bind() with provider { Fib57(instance(), instance()) } 70 | bind() with provider { Fib58(instance(), instance()) } 71 | bind() with provider { Fib59(instance(), instance()) } 72 | bind() with provider { Fib60(instance(), instance()) } 73 | bind() with provider { Fib61(instance(), instance()) } 74 | bind() with provider { Fib62(instance(), instance()) } 75 | bind() with provider { Fib63(instance(), instance()) } 76 | bind() with provider { Fib64(instance(), instance()) } 77 | bind() with provider { Fib65(instance(), instance()) } 78 | bind() with provider { Fib66(instance(), instance()) } 79 | bind() with provider { Fib67(instance(), instance()) } 80 | bind() with provider { Fib68(instance(), instance()) } 81 | bind() with provider { Fib69(instance(), instance()) } 82 | bind() with provider { Fib70(instance(), instance()) } 83 | bind() with provider { Fib71(instance(), instance()) } 84 | bind() with provider { Fib72(instance(), instance()) } 85 | bind() with provider { Fib73(instance(), instance()) } 86 | bind() with provider { Fib74(instance(), instance()) } 87 | bind() with provider { Fib75(instance(), instance()) } 88 | bind() with provider { Fib76(instance(), instance()) } 89 | bind() with provider { Fib77(instance(), instance()) } 90 | bind() with provider { Fib78(instance(), instance()) } 91 | bind() with provider { Fib79(instance(), instance()) } 92 | bind() with provider { Fib80(instance(), instance()) } 93 | bind() with provider { Fib81(instance(), instance()) } 94 | bind() with provider { Fib82(instance(), instance()) } 95 | bind() with provider { Fib83(instance(), instance()) } 96 | bind() with provider { Fib84(instance(), instance()) } 97 | bind() with provider { Fib85(instance(), instance()) } 98 | bind() with provider { Fib86(instance(), instance()) } 99 | bind() with provider { Fib87(instance(), instance()) } 100 | bind() with provider { Fib88(instance(), instance()) } 101 | bind() with provider { Fib89(instance(), instance()) } 102 | bind() with provider { Fib90(instance(), instance()) } 103 | bind() with provider { Fib91(instance(), instance()) } 104 | bind() with provider { Fib92(instance(), instance()) } 105 | bind() with provider { Fib93(instance(), instance()) } 106 | bind() with provider { Fib94(instance(), instance()) } 107 | bind() with provider { Fib95(instance(), instance()) } 108 | bind() with provider { Fib96(instance(), instance()) } 109 | bind() with provider { Fib97(instance(), instance()) } 110 | bind() with provider { Fib98(instance(), instance()) } 111 | bind() with provider { Fib99(instance(), instance()) } 112 | bind() with provider { Fib100(instance(), instance()) } 113 | bind() with provider { Fib101(instance(), instance()) } 114 | bind() with provider { Fib102(instance(), instance()) } 115 | bind() with provider { Fib103(instance(), instance()) } 116 | bind() with provider { Fib104(instance(), instance()) } 117 | bind() with provider { Fib105(instance(), instance()) } 118 | bind() with provider { Fib106(instance(), instance()) } 119 | bind() with provider { Fib107(instance(), instance()) } 120 | bind() with provider { Fib108(instance(), instance()) } 121 | bind() with provider { Fib109(instance(), instance()) } 122 | bind() with provider { Fib110(instance(), instance()) } 123 | bind() with provider { Fib111(instance(), instance()) } 124 | bind() with provider { Fib112(instance(), instance()) } 125 | bind() with provider { Fib113(instance(), instance()) } 126 | bind() with provider { Fib114(instance(), instance()) } 127 | bind() with provider { Fib115(instance(), instance()) } 128 | bind() with provider { Fib116(instance(), instance()) } 129 | bind() with provider { Fib117(instance(), instance()) } 130 | bind() with provider { Fib118(instance(), instance()) } 131 | bind() with provider { Fib119(instance(), instance()) } 132 | bind() with provider { Fib120(instance(), instance()) } 133 | bind() with provider { Fib121(instance(), instance()) } 134 | bind() with provider { Fib122(instance(), instance()) } 135 | bind() with provider { Fib123(instance(), instance()) } 136 | bind() with provider { Fib124(instance(), instance()) } 137 | bind() with provider { Fib125(instance(), instance()) } 138 | bind() with provider { Fib126(instance(), instance()) } 139 | bind() with provider { Fib127(instance(), instance()) } 140 | bind() with provider { Fib128(instance(), instance()) } 141 | bind() with provider { Fib129(instance(), instance()) } 142 | bind() with provider { Fib130(instance(), instance()) } 143 | bind() with provider { Fib131(instance(), instance()) } 144 | bind() with provider { Fib132(instance(), instance()) } 145 | bind() with provider { Fib133(instance(), instance()) } 146 | bind() with provider { Fib134(instance(), instance()) } 147 | bind() with provider { Fib135(instance(), instance()) } 148 | bind() with provider { Fib136(instance(), instance()) } 149 | bind() with provider { Fib137(instance(), instance()) } 150 | bind() with provider { Fib138(instance(), instance()) } 151 | bind() with provider { Fib139(instance(), instance()) } 152 | bind() with provider { Fib140(instance(), instance()) } 153 | bind() with provider { Fib141(instance(), instance()) } 154 | bind() with provider { Fib142(instance(), instance()) } 155 | bind() with provider { Fib143(instance(), instance()) } 156 | bind() with provider { Fib144(instance(), instance()) } 157 | bind() with provider { Fib145(instance(), instance()) } 158 | bind() with provider { Fib146(instance(), instance()) } 159 | bind() with provider { Fib147(instance(), instance()) } 160 | bind() with provider { Fib148(instance(), instance()) } 161 | bind() with provider { Fib149(instance(), instance()) } 162 | bind() with provider { Fib150(instance(), instance()) } 163 | bind() with provider { Fib151(instance(), instance()) } 164 | bind() with provider { Fib152(instance(), instance()) } 165 | bind() with provider { Fib153(instance(), instance()) } 166 | bind() with provider { Fib154(instance(), instance()) } 167 | bind() with provider { Fib155(instance(), instance()) } 168 | bind() with provider { Fib156(instance(), instance()) } 169 | bind() with provider { Fib157(instance(), instance()) } 170 | bind() with provider { Fib158(instance(), instance()) } 171 | bind() with provider { Fib159(instance(), instance()) } 172 | bind() with provider { Fib160(instance(), instance()) } 173 | bind() with provider { Fib161(instance(), instance()) } 174 | bind() with provider { Fib162(instance(), instance()) } 175 | bind() with provider { Fib163(instance(), instance()) } 176 | bind() with provider { Fib164(instance(), instance()) } 177 | bind() with provider { Fib165(instance(), instance()) } 178 | bind() with provider { Fib166(instance(), instance()) } 179 | bind() with provider { Fib167(instance(), instance()) } 180 | bind() with provider { Fib168(instance(), instance()) } 181 | bind() with provider { Fib169(instance(), instance()) } 182 | bind() with provider { Fib170(instance(), instance()) } 183 | bind() with provider { Fib171(instance(), instance()) } 184 | bind() with provider { Fib172(instance(), instance()) } 185 | bind() with provider { Fib173(instance(), instance()) } 186 | bind() with provider { Fib174(instance(), instance()) } 187 | bind() with provider { Fib175(instance(), instance()) } 188 | bind() with provider { Fib176(instance(), instance()) } 189 | bind() with provider { Fib177(instance(), instance()) } 190 | bind() with provider { Fib178(instance(), instance()) } 191 | bind() with provider { Fib179(instance(), instance()) } 192 | bind() with provider { Fib180(instance(), instance()) } 193 | bind() with provider { Fib181(instance(), instance()) } 194 | bind() with provider { Fib182(instance(), instance()) } 195 | bind() with provider { Fib183(instance(), instance()) } 196 | bind() with provider { Fib184(instance(), instance()) } 197 | bind() with provider { Fib185(instance(), instance()) } 198 | bind() with provider { Fib186(instance(), instance()) } 199 | bind() with provider { Fib187(instance(), instance()) } 200 | bind() with provider { Fib188(instance(), instance()) } 201 | bind() with provider { Fib189(instance(), instance()) } 202 | bind() with provider { Fib190(instance(), instance()) } 203 | bind() with provider { Fib191(instance(), instance()) } 204 | bind() with provider { Fib192(instance(), instance()) } 205 | bind() with provider { Fib193(instance(), instance()) } 206 | bind() with provider { Fib194(instance(), instance()) } 207 | bind() with provider { Fib195(instance(), instance()) } 208 | bind() with provider { Fib196(instance(), instance()) } 209 | bind() with provider { Fib197(instance(), instance()) } 210 | bind() with provider { Fib198(instance(), instance()) } 211 | bind() with provider { Fib199(instance(), instance()) } 212 | bind() with provider { Fib200(instance(), instance()) } 213 | bind() with provider { Fib201(instance(), instance()) } 214 | bind() with provider { Fib202(instance(), instance()) } 215 | bind() with provider { Fib203(instance(), instance()) } 216 | bind() with provider { Fib204(instance(), instance()) } 217 | bind() with provider { Fib205(instance(), instance()) } 218 | bind() with provider { Fib206(instance(), instance()) } 219 | bind() with provider { Fib207(instance(), instance()) } 220 | bind() with provider { Fib208(instance(), instance()) } 221 | bind() with provider { Fib209(instance(), instance()) } 222 | bind() with provider { Fib210(instance(), instance()) } 223 | bind() with provider { Fib211(instance(), instance()) } 224 | bind() with provider { Fib212(instance(), instance()) } 225 | bind() with provider { Fib213(instance(), instance()) } 226 | bind() with provider { Fib214(instance(), instance()) } 227 | bind() with provider { Fib215(instance(), instance()) } 228 | bind() with provider { Fib216(instance(), instance()) } 229 | bind() with provider { Fib217(instance(), instance()) } 230 | bind() with provider { Fib218(instance(), instance()) } 231 | bind() with provider { Fib219(instance(), instance()) } 232 | bind() with provider { Fib220(instance(), instance()) } 233 | bind() with provider { Fib221(instance(), instance()) } 234 | bind() with provider { Fib222(instance(), instance()) } 235 | bind() with provider { Fib223(instance(), instance()) } 236 | bind() with provider { Fib224(instance(), instance()) } 237 | bind() with provider { Fib225(instance(), instance()) } 238 | bind() with provider { Fib226(instance(), instance()) } 239 | bind() with provider { Fib227(instance(), instance()) } 240 | bind() with provider { Fib228(instance(), instance()) } 241 | bind() with provider { Fib229(instance(), instance()) } 242 | bind() with provider { Fib230(instance(), instance()) } 243 | bind() with provider { Fib231(instance(), instance()) } 244 | bind() with provider { Fib232(instance(), instance()) } 245 | bind() with provider { Fib233(instance(), instance()) } 246 | bind() with provider { Fib234(instance(), instance()) } 247 | bind() with provider { Fib235(instance(), instance()) } 248 | bind() with provider { Fib236(instance(), instance()) } 249 | bind() with provider { Fib237(instance(), instance()) } 250 | bind() with provider { Fib238(instance(), instance()) } 251 | bind() with provider { Fib239(instance(), instance()) } 252 | bind() with provider { Fib240(instance(), instance()) } 253 | bind() with provider { Fib241(instance(), instance()) } 254 | bind() with provider { Fib242(instance(), instance()) } 255 | bind() with provider { Fib243(instance(), instance()) } 256 | bind() with provider { Fib244(instance(), instance()) } 257 | bind() with provider { Fib245(instance(), instance()) } 258 | bind() with provider { Fib246(instance(), instance()) } 259 | bind() with provider { Fib247(instance(), instance()) } 260 | bind() with provider { Fib248(instance(), instance()) } 261 | bind() with provider { Fib249(instance(), instance()) } 262 | bind() with provider { Fib250(instance(), instance()) } 263 | bind() with provider { Fib251(instance(), instance()) } 264 | bind() with provider { Fib252(instance(), instance()) } 265 | bind() with provider { Fib253(instance(), instance()) } 266 | bind() with provider { Fib254(instance(), instance()) } 267 | bind() with provider { Fib255(instance(), instance()) } 268 | bind() with provider { Fib256(instance(), instance()) } 269 | bind() with provider { Fib257(instance(), instance()) } 270 | bind() with provider { Fib258(instance(), instance()) } 271 | bind() with provider { Fib259(instance(), instance()) } 272 | bind() with provider { Fib260(instance(), instance()) } 273 | bind() with provider { Fib261(instance(), instance()) } 274 | bind() with provider { Fib262(instance(), instance()) } 275 | bind() with provider { Fib263(instance(), instance()) } 276 | bind() with provider { Fib264(instance(), instance()) } 277 | bind() with provider { Fib265(instance(), instance()) } 278 | bind() with provider { Fib266(instance(), instance()) } 279 | bind() with provider { Fib267(instance(), instance()) } 280 | bind() with provider { Fib268(instance(), instance()) } 281 | bind() with provider { Fib269(instance(), instance()) } 282 | bind() with provider { Fib270(instance(), instance()) } 283 | bind() with provider { Fib271(instance(), instance()) } 284 | bind() with provider { Fib272(instance(), instance()) } 285 | bind() with provider { Fib273(instance(), instance()) } 286 | bind() with provider { Fib274(instance(), instance()) } 287 | bind() with provider { Fib275(instance(), instance()) } 288 | bind() with provider { Fib276(instance(), instance()) } 289 | bind() with provider { Fib277(instance(), instance()) } 290 | bind() with provider { Fib278(instance(), instance()) } 291 | bind() with provider { Fib279(instance(), instance()) } 292 | bind() with provider { Fib280(instance(), instance()) } 293 | bind() with provider { Fib281(instance(), instance()) } 294 | bind() with provider { Fib282(instance(), instance()) } 295 | bind() with provider { Fib283(instance(), instance()) } 296 | bind() with provider { Fib284(instance(), instance()) } 297 | bind() with provider { Fib285(instance(), instance()) } 298 | bind() with provider { Fib286(instance(), instance()) } 299 | bind() with provider { Fib287(instance(), instance()) } 300 | bind() with provider { Fib288(instance(), instance()) } 301 | bind() with provider { Fib289(instance(), instance()) } 302 | bind() with provider { Fib290(instance(), instance()) } 303 | bind() with provider { Fib291(instance(), instance()) } 304 | bind() with provider { Fib292(instance(), instance()) } 305 | bind() with provider { Fib293(instance(), instance()) } 306 | bind() with provider { Fib294(instance(), instance()) } 307 | bind() with provider { Fib295(instance(), instance()) } 308 | bind() with provider { Fib296(instance(), instance()) } 309 | bind() with provider { Fib297(instance(), instance()) } 310 | bind() with provider { Fib298(instance(), instance()) } 311 | bind() with provider { Fib299(instance(), instance()) } 312 | bind() with provider { Fib300(instance(), instance()) } 313 | bind() with provider { Fib301(instance(), instance()) } 314 | bind() with provider { Fib302(instance(), instance()) } 315 | bind() with provider { Fib303(instance(), instance()) } 316 | bind() with provider { Fib304(instance(), instance()) } 317 | bind() with provider { Fib305(instance(), instance()) } 318 | bind() with provider { Fib306(instance(), instance()) } 319 | bind() with provider { Fib307(instance(), instance()) } 320 | bind() with provider { Fib308(instance(), instance()) } 321 | bind() with provider { Fib309(instance(), instance()) } 322 | bind() with provider { Fib310(instance(), instance()) } 323 | bind() with provider { Fib311(instance(), instance()) } 324 | bind() with provider { Fib312(instance(), instance()) } 325 | bind() with provider { Fib313(instance(), instance()) } 326 | bind() with provider { Fib314(instance(), instance()) } 327 | bind() with provider { Fib315(instance(), instance()) } 328 | bind() with provider { Fib316(instance(), instance()) } 329 | bind() with provider { Fib317(instance(), instance()) } 330 | bind() with provider { Fib318(instance(), instance()) } 331 | bind() with provider { Fib319(instance(), instance()) } 332 | bind() with provider { Fib320(instance(), instance()) } 333 | bind() with provider { Fib321(instance(), instance()) } 334 | bind() with provider { Fib322(instance(), instance()) } 335 | bind() with provider { Fib323(instance(), instance()) } 336 | bind() with provider { Fib324(instance(), instance()) } 337 | bind() with provider { Fib325(instance(), instance()) } 338 | bind() with provider { Fib326(instance(), instance()) } 339 | bind() with provider { Fib327(instance(), instance()) } 340 | bind() with provider { Fib328(instance(), instance()) } 341 | bind() with provider { Fib329(instance(), instance()) } 342 | bind() with provider { Fib330(instance(), instance()) } 343 | bind() with provider { Fib331(instance(), instance()) } 344 | bind() with provider { Fib332(instance(), instance()) } 345 | bind() with provider { Fib333(instance(), instance()) } 346 | bind() with provider { Fib334(instance(), instance()) } 347 | bind() with provider { Fib335(instance(), instance()) } 348 | bind() with provider { Fib336(instance(), instance()) } 349 | bind() with provider { Fib337(instance(), instance()) } 350 | bind() with provider { Fib338(instance(), instance()) } 351 | bind() with provider { Fib339(instance(), instance()) } 352 | bind() with provider { Fib340(instance(), instance()) } 353 | bind() with provider { Fib341(instance(), instance()) } 354 | bind() with provider { Fib342(instance(), instance()) } 355 | bind() with provider { Fib343(instance(), instance()) } 356 | bind() with provider { Fib344(instance(), instance()) } 357 | bind() with provider { Fib345(instance(), instance()) } 358 | bind() with provider { Fib346(instance(), instance()) } 359 | bind() with provider { Fib347(instance(), instance()) } 360 | bind() with provider { Fib348(instance(), instance()) } 361 | bind() with provider { Fib349(instance(), instance()) } 362 | bind() with provider { Fib350(instance(), instance()) } 363 | bind() with provider { Fib351(instance(), instance()) } 364 | bind() with provider { Fib352(instance(), instance()) } 365 | bind() with provider { Fib353(instance(), instance()) } 366 | bind() with provider { Fib354(instance(), instance()) } 367 | bind() with provider { Fib355(instance(), instance()) } 368 | bind() with provider { Fib356(instance(), instance()) } 369 | bind() with provider { Fib357(instance(), instance()) } 370 | bind() with provider { Fib358(instance(), instance()) } 371 | bind() with provider { Fib359(instance(), instance()) } 372 | bind() with provider { Fib360(instance(), instance()) } 373 | bind() with provider { Fib361(instance(), instance()) } 374 | bind() with provider { Fib362(instance(), instance()) } 375 | bind() with provider { Fib363(instance(), instance()) } 376 | bind() with provider { Fib364(instance(), instance()) } 377 | bind() with provider { Fib365(instance(), instance()) } 378 | bind() with provider { Fib366(instance(), instance()) } 379 | bind() with provider { Fib367(instance(), instance()) } 380 | bind() with provider { Fib368(instance(), instance()) } 381 | bind() with provider { Fib369(instance(), instance()) } 382 | bind() with provider { Fib370(instance(), instance()) } 383 | bind() with provider { Fib371(instance(), instance()) } 384 | bind() with provider { Fib372(instance(), instance()) } 385 | bind() with provider { Fib373(instance(), instance()) } 386 | bind() with provider { Fib374(instance(), instance()) } 387 | bind() with provider { Fib375(instance(), instance()) } 388 | bind() with provider { Fib376(instance(), instance()) } 389 | bind() with provider { Fib377(instance(), instance()) } 390 | bind() with provider { Fib378(instance(), instance()) } 391 | bind() with provider { Fib379(instance(), instance()) } 392 | bind() with provider { Fib380(instance(), instance()) } 393 | bind() with provider { Fib381(instance(), instance()) } 394 | bind() with provider { Fib382(instance(), instance()) } 395 | bind() with provider { Fib383(instance(), instance()) } 396 | bind() with provider { Fib384(instance(), instance()) } 397 | bind() with provider { Fib385(instance(), instance()) } 398 | bind() with provider { Fib386(instance(), instance()) } 399 | bind() with provider { Fib387(instance(), instance()) } 400 | bind() with provider { Fib388(instance(), instance()) } 401 | bind() with provider { Fib389(instance(), instance()) } 402 | bind() with provider { Fib390(instance(), instance()) } 403 | bind() with provider { Fib391(instance(), instance()) } 404 | bind() with provider { Fib392(instance(), instance()) } 405 | bind() with provider { Fib393(instance(), instance()) } 406 | bind() with provider { Fib394(instance(), instance()) } 407 | bind() with provider { Fib395(instance(), instance()) } 408 | bind() with provider { Fib396(instance(), instance()) } 409 | bind() with provider { Fib397(instance(), instance()) } 410 | bind() with provider { Fib398(instance(), instance()) } 411 | bind() with provider { Fib399(instance(), instance()) } 412 | bind() with provider { Fib400(instance(), instance()) } 413 | bind() with provider { Fib401(instance(), instance()) } 414 | bind() with provider { Fib402(instance(), instance()) } 415 | bind() with provider { Fib403(instance(), instance()) } 416 | bind() with provider { Fib404(instance(), instance()) } 417 | bind() with provider { Fib405(instance(), instance()) } 418 | bind() with provider { Fib406(instance(), instance()) } 419 | bind() with provider { Fib407(instance(), instance()) } 420 | bind() with provider { Fib408(instance(), instance()) } 421 | bind() with provider { Fib409(instance(), instance()) } 422 | bind() with provider { Fib410(instance(), instance()) } 423 | bind() with provider { Fib411(instance(), instance()) } 424 | bind() with provider { Fib412(instance(), instance()) } 425 | bind() with provider { Fib413(instance(), instance()) } 426 | bind() with provider { Fib414(instance(), instance()) } 427 | bind() with provider { Fib415(instance(), instance()) } 428 | bind() with provider { Fib416(instance(), instance()) } 429 | bind() with provider { Fib417(instance(), instance()) } 430 | bind() with provider { Fib418(instance(), instance()) } 431 | bind() with provider { Fib419(instance(), instance()) } 432 | bind() with provider { Fib420(instance(), instance()) } 433 | bind() with provider { Fib421(instance(), instance()) } 434 | bind() with provider { Fib422(instance(), instance()) } 435 | bind() with provider { Fib423(instance(), instance()) } 436 | bind() with provider { Fib424(instance(), instance()) } 437 | bind() with provider { Fib425(instance(), instance()) } 438 | bind() with provider { Fib426(instance(), instance()) } 439 | bind() with provider { Fib427(instance(), instance()) } 440 | bind() with provider { Fib428(instance(), instance()) } 441 | bind() with provider { Fib429(instance(), instance()) } 442 | bind() with provider { Fib430(instance(), instance()) } 443 | bind() with provider { Fib431(instance(), instance()) } 444 | bind() with provider { Fib432(instance(), instance()) } 445 | bind() with provider { Fib433(instance(), instance()) } 446 | bind() with provider { Fib434(instance(), instance()) } 447 | bind() with provider { Fib435(instance(), instance()) } 448 | bind() with provider { Fib436(instance(), instance()) } 449 | bind() with provider { Fib437(instance(), instance()) } 450 | bind() with provider { Fib438(instance(), instance()) } 451 | bind() with provider { Fib439(instance(), instance()) } 452 | bind() with provider { Fib440(instance(), instance()) } 453 | bind() with provider { Fib441(instance(), instance()) } 454 | bind() with provider { Fib442(instance(), instance()) } 455 | bind() with provider { Fib443(instance(), instance()) } 456 | bind() with provider { Fib444(instance(), instance()) } 457 | bind() with provider { Fib445(instance(), instance()) } 458 | bind() with provider { Fib446(instance(), instance()) } 459 | bind() with provider { Fib447(instance(), instance()) } 460 | bind() with provider { Fib448(instance(), instance()) } 461 | bind() with provider { Fib449(instance(), instance()) } 462 | bind() with provider { Fib450(instance(), instance()) } 463 | } 464 | -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/koin/KoinJavaModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.koin 2 | 3 | import com.sloydev.dependencyinjectionperformance.FibonacciJava 4 | import org.koin.dsl.module 5 | 6 | /** 7 | * Generated with https://gist.github.com/Sloy/12affca1e49ba052053ab4c8bfc5bcb4 8 | */ 9 | val koinJavaModule = module { 10 | factory { FibonacciJava.Fib1() } 11 | factory { FibonacciJava.Fib2() } 12 | factory { FibonacciJava.Fib3(get(), get()) } 13 | factory { FibonacciJava.Fib4(get(), get()) } 14 | factory { FibonacciJava.Fib5(get(), get()) } 15 | factory { FibonacciJava.Fib6(get(), get()) } 16 | factory { FibonacciJava.Fib7(get(), get()) } 17 | factory { FibonacciJava.Fib8(get(), get()) } 18 | factory { FibonacciJava.Fib9(get(), get()) } 19 | factory { FibonacciJava.Fib10(get(), get()) } 20 | factory { FibonacciJava.Fib11(get(), get()) } 21 | factory { FibonacciJava.Fib12(get(), get()) } 22 | factory { FibonacciJava.Fib13(get(), get()) } 23 | factory { FibonacciJava.Fib14(get(), get()) } 24 | factory { FibonacciJava.Fib15(get(), get()) } 25 | factory { FibonacciJava.Fib16(get(), get()) } 26 | factory { FibonacciJava.Fib17(get(), get()) } 27 | factory { FibonacciJava.Fib18(get(), get()) } 28 | factory { FibonacciJava.Fib19(get(), get()) } 29 | factory { FibonacciJava.Fib20(get(), get()) } 30 | factory { FibonacciJava.Fib21(get(), get()) } 31 | factory { FibonacciJava.Fib22(get(), get()) } 32 | factory { FibonacciJava.Fib23(get(), get()) } 33 | factory { FibonacciJava.Fib24(get(), get()) } 34 | factory { FibonacciJava.Fib25(get(), get()) } 35 | factory { FibonacciJava.Fib26(get(), get()) } 36 | factory { FibonacciJava.Fib27(get(), get()) } 37 | factory { FibonacciJava.Fib28(get(), get()) } 38 | factory { FibonacciJava.Fib29(get(), get()) } 39 | factory { FibonacciJava.Fib30(get(), get()) } 40 | factory { FibonacciJava.Fib31(get(), get()) } 41 | factory { FibonacciJava.Fib32(get(), get()) } 42 | factory { FibonacciJava.Fib33(get(), get()) } 43 | factory { FibonacciJava.Fib34(get(), get()) } 44 | factory { FibonacciJava.Fib35(get(), get()) } 45 | factory { FibonacciJava.Fib36(get(), get()) } 46 | factory { FibonacciJava.Fib37(get(), get()) } 47 | factory { FibonacciJava.Fib38(get(), get()) } 48 | factory { FibonacciJava.Fib39(get(), get()) } 49 | factory { FibonacciJava.Fib40(get(), get()) } 50 | factory { FibonacciJava.Fib41(get(), get()) } 51 | factory { FibonacciJava.Fib42(get(), get()) } 52 | factory { FibonacciJava.Fib43(get(), get()) } 53 | factory { FibonacciJava.Fib44(get(), get()) } 54 | factory { FibonacciJava.Fib45(get(), get()) } 55 | factory { FibonacciJava.Fib46(get(), get()) } 56 | factory { FibonacciJava.Fib47(get(), get()) } 57 | factory { FibonacciJava.Fib48(get(), get()) } 58 | factory { FibonacciJava.Fib49(get(), get()) } 59 | factory { FibonacciJava.Fib50(get(), get()) } 60 | factory { FibonacciJava.Fib51(get(), get()) } 61 | factory { FibonacciJava.Fib52(get(), get()) } 62 | factory { FibonacciJava.Fib53(get(), get()) } 63 | factory { FibonacciJava.Fib54(get(), get()) } 64 | factory { FibonacciJava.Fib55(get(), get()) } 65 | factory { FibonacciJava.Fib56(get(), get()) } 66 | factory { FibonacciJava.Fib57(get(), get()) } 67 | factory { FibonacciJava.Fib58(get(), get()) } 68 | factory { FibonacciJava.Fib59(get(), get()) } 69 | factory { FibonacciJava.Fib60(get(), get()) } 70 | factory { FibonacciJava.Fib61(get(), get()) } 71 | factory { FibonacciJava.Fib62(get(), get()) } 72 | factory { FibonacciJava.Fib63(get(), get()) } 73 | factory { FibonacciJava.Fib64(get(), get()) } 74 | factory { FibonacciJava.Fib65(get(), get()) } 75 | factory { FibonacciJava.Fib66(get(), get()) } 76 | factory { FibonacciJava.Fib67(get(), get()) } 77 | factory { FibonacciJava.Fib68(get(), get()) } 78 | factory { FibonacciJava.Fib69(get(), get()) } 79 | factory { FibonacciJava.Fib70(get(), get()) } 80 | factory { FibonacciJava.Fib71(get(), get()) } 81 | factory { FibonacciJava.Fib72(get(), get()) } 82 | factory { FibonacciJava.Fib73(get(), get()) } 83 | factory { FibonacciJava.Fib74(get(), get()) } 84 | factory { FibonacciJava.Fib75(get(), get()) } 85 | factory { FibonacciJava.Fib76(get(), get()) } 86 | factory { FibonacciJava.Fib77(get(), get()) } 87 | factory { FibonacciJava.Fib78(get(), get()) } 88 | factory { FibonacciJava.Fib79(get(), get()) } 89 | factory { FibonacciJava.Fib80(get(), get()) } 90 | factory { FibonacciJava.Fib81(get(), get()) } 91 | factory { FibonacciJava.Fib82(get(), get()) } 92 | factory { FibonacciJava.Fib83(get(), get()) } 93 | factory { FibonacciJava.Fib84(get(), get()) } 94 | factory { FibonacciJava.Fib85(get(), get()) } 95 | factory { FibonacciJava.Fib86(get(), get()) } 96 | factory { FibonacciJava.Fib87(get(), get()) } 97 | factory { FibonacciJava.Fib88(get(), get()) } 98 | factory { FibonacciJava.Fib89(get(), get()) } 99 | factory { FibonacciJava.Fib90(get(), get()) } 100 | factory { FibonacciJava.Fib91(get(), get()) } 101 | factory { FibonacciJava.Fib92(get(), get()) } 102 | factory { FibonacciJava.Fib93(get(), get()) } 103 | factory { FibonacciJava.Fib94(get(), get()) } 104 | factory { FibonacciJava.Fib95(get(), get()) } 105 | factory { FibonacciJava.Fib96(get(), get()) } 106 | factory { FibonacciJava.Fib97(get(), get()) } 107 | factory { FibonacciJava.Fib98(get(), get()) } 108 | factory { FibonacciJava.Fib99(get(), get()) } 109 | factory { FibonacciJava.Fib100(get(), get()) } 110 | factory { FibonacciJava.Fib101(get(), get()) } 111 | factory { FibonacciJava.Fib102(get(), get()) } 112 | factory { FibonacciJava.Fib103(get(), get()) } 113 | factory { FibonacciJava.Fib104(get(), get()) } 114 | factory { FibonacciJava.Fib105(get(), get()) } 115 | factory { FibonacciJava.Fib106(get(), get()) } 116 | factory { FibonacciJava.Fib107(get(), get()) } 117 | factory { FibonacciJava.Fib108(get(), get()) } 118 | factory { FibonacciJava.Fib109(get(), get()) } 119 | factory { FibonacciJava.Fib110(get(), get()) } 120 | factory { FibonacciJava.Fib111(get(), get()) } 121 | factory { FibonacciJava.Fib112(get(), get()) } 122 | factory { FibonacciJava.Fib113(get(), get()) } 123 | factory { FibonacciJava.Fib114(get(), get()) } 124 | factory { FibonacciJava.Fib115(get(), get()) } 125 | factory { FibonacciJava.Fib116(get(), get()) } 126 | factory { FibonacciJava.Fib117(get(), get()) } 127 | factory { FibonacciJava.Fib118(get(), get()) } 128 | factory { FibonacciJava.Fib119(get(), get()) } 129 | factory { FibonacciJava.Fib120(get(), get()) } 130 | factory { FibonacciJava.Fib121(get(), get()) } 131 | factory { FibonacciJava.Fib122(get(), get()) } 132 | factory { FibonacciJava.Fib123(get(), get()) } 133 | factory { FibonacciJava.Fib124(get(), get()) } 134 | factory { FibonacciJava.Fib125(get(), get()) } 135 | factory { FibonacciJava.Fib126(get(), get()) } 136 | factory { FibonacciJava.Fib127(get(), get()) } 137 | factory { FibonacciJava.Fib128(get(), get()) } 138 | factory { FibonacciJava.Fib129(get(), get()) } 139 | factory { FibonacciJava.Fib130(get(), get()) } 140 | factory { FibonacciJava.Fib131(get(), get()) } 141 | factory { FibonacciJava.Fib132(get(), get()) } 142 | factory { FibonacciJava.Fib133(get(), get()) } 143 | factory { FibonacciJava.Fib134(get(), get()) } 144 | factory { FibonacciJava.Fib135(get(), get()) } 145 | factory { FibonacciJava.Fib136(get(), get()) } 146 | factory { FibonacciJava.Fib137(get(), get()) } 147 | factory { FibonacciJava.Fib138(get(), get()) } 148 | factory { FibonacciJava.Fib139(get(), get()) } 149 | factory { FibonacciJava.Fib140(get(), get()) } 150 | factory { FibonacciJava.Fib141(get(), get()) } 151 | factory { FibonacciJava.Fib142(get(), get()) } 152 | factory { FibonacciJava.Fib143(get(), get()) } 153 | factory { FibonacciJava.Fib144(get(), get()) } 154 | factory { FibonacciJava.Fib145(get(), get()) } 155 | factory { FibonacciJava.Fib146(get(), get()) } 156 | factory { FibonacciJava.Fib147(get(), get()) } 157 | factory { FibonacciJava.Fib148(get(), get()) } 158 | factory { FibonacciJava.Fib149(get(), get()) } 159 | factory { FibonacciJava.Fib150(get(), get()) } 160 | factory { FibonacciJava.Fib151(get(), get()) } 161 | factory { FibonacciJava.Fib152(get(), get()) } 162 | factory { FibonacciJava.Fib153(get(), get()) } 163 | factory { FibonacciJava.Fib154(get(), get()) } 164 | factory { FibonacciJava.Fib155(get(), get()) } 165 | factory { FibonacciJava.Fib156(get(), get()) } 166 | factory { FibonacciJava.Fib157(get(), get()) } 167 | factory { FibonacciJava.Fib158(get(), get()) } 168 | factory { FibonacciJava.Fib159(get(), get()) } 169 | factory { FibonacciJava.Fib160(get(), get()) } 170 | factory { FibonacciJava.Fib161(get(), get()) } 171 | factory { FibonacciJava.Fib162(get(), get()) } 172 | factory { FibonacciJava.Fib163(get(), get()) } 173 | factory { FibonacciJava.Fib164(get(), get()) } 174 | factory { FibonacciJava.Fib165(get(), get()) } 175 | factory { FibonacciJava.Fib166(get(), get()) } 176 | factory { FibonacciJava.Fib167(get(), get()) } 177 | factory { FibonacciJava.Fib168(get(), get()) } 178 | factory { FibonacciJava.Fib169(get(), get()) } 179 | factory { FibonacciJava.Fib170(get(), get()) } 180 | factory { FibonacciJava.Fib171(get(), get()) } 181 | factory { FibonacciJava.Fib172(get(), get()) } 182 | factory { FibonacciJava.Fib173(get(), get()) } 183 | factory { FibonacciJava.Fib174(get(), get()) } 184 | factory { FibonacciJava.Fib175(get(), get()) } 185 | factory { FibonacciJava.Fib176(get(), get()) } 186 | factory { FibonacciJava.Fib177(get(), get()) } 187 | factory { FibonacciJava.Fib178(get(), get()) } 188 | factory { FibonacciJava.Fib179(get(), get()) } 189 | factory { FibonacciJava.Fib180(get(), get()) } 190 | factory { FibonacciJava.Fib181(get(), get()) } 191 | factory { FibonacciJava.Fib182(get(), get()) } 192 | factory { FibonacciJava.Fib183(get(), get()) } 193 | factory { FibonacciJava.Fib184(get(), get()) } 194 | factory { FibonacciJava.Fib185(get(), get()) } 195 | factory { FibonacciJava.Fib186(get(), get()) } 196 | factory { FibonacciJava.Fib187(get(), get()) } 197 | factory { FibonacciJava.Fib188(get(), get()) } 198 | factory { FibonacciJava.Fib189(get(), get()) } 199 | factory { FibonacciJava.Fib190(get(), get()) } 200 | factory { FibonacciJava.Fib191(get(), get()) } 201 | factory { FibonacciJava.Fib192(get(), get()) } 202 | factory { FibonacciJava.Fib193(get(), get()) } 203 | factory { FibonacciJava.Fib194(get(), get()) } 204 | factory { FibonacciJava.Fib195(get(), get()) } 205 | factory { FibonacciJava.Fib196(get(), get()) } 206 | factory { FibonacciJava.Fib197(get(), get()) } 207 | factory { FibonacciJava.Fib198(get(), get()) } 208 | factory { FibonacciJava.Fib199(get(), get()) } 209 | factory { FibonacciJava.Fib200(get(), get()) } 210 | factory { FibonacciJava.Fib201(get(), get()) } 211 | factory { FibonacciJava.Fib202(get(), get()) } 212 | factory { FibonacciJava.Fib203(get(), get()) } 213 | factory { FibonacciJava.Fib204(get(), get()) } 214 | factory { FibonacciJava.Fib205(get(), get()) } 215 | factory { FibonacciJava.Fib206(get(), get()) } 216 | factory { FibonacciJava.Fib207(get(), get()) } 217 | factory { FibonacciJava.Fib208(get(), get()) } 218 | factory { FibonacciJava.Fib209(get(), get()) } 219 | factory { FibonacciJava.Fib210(get(), get()) } 220 | factory { FibonacciJava.Fib211(get(), get()) } 221 | factory { FibonacciJava.Fib212(get(), get()) } 222 | factory { FibonacciJava.Fib213(get(), get()) } 223 | factory { FibonacciJava.Fib214(get(), get()) } 224 | factory { FibonacciJava.Fib215(get(), get()) } 225 | factory { FibonacciJava.Fib216(get(), get()) } 226 | factory { FibonacciJava.Fib217(get(), get()) } 227 | factory { FibonacciJava.Fib218(get(), get()) } 228 | factory { FibonacciJava.Fib219(get(), get()) } 229 | factory { FibonacciJava.Fib220(get(), get()) } 230 | factory { FibonacciJava.Fib221(get(), get()) } 231 | factory { FibonacciJava.Fib222(get(), get()) } 232 | factory { FibonacciJava.Fib223(get(), get()) } 233 | factory { FibonacciJava.Fib224(get(), get()) } 234 | factory { FibonacciJava.Fib225(get(), get()) } 235 | factory { FibonacciJava.Fib226(get(), get()) } 236 | factory { FibonacciJava.Fib227(get(), get()) } 237 | factory { FibonacciJava.Fib228(get(), get()) } 238 | factory { FibonacciJava.Fib229(get(), get()) } 239 | factory { FibonacciJava.Fib230(get(), get()) } 240 | factory { FibonacciJava.Fib231(get(), get()) } 241 | factory { FibonacciJava.Fib232(get(), get()) } 242 | factory { FibonacciJava.Fib233(get(), get()) } 243 | factory { FibonacciJava.Fib234(get(), get()) } 244 | factory { FibonacciJava.Fib235(get(), get()) } 245 | factory { FibonacciJava.Fib236(get(), get()) } 246 | factory { FibonacciJava.Fib237(get(), get()) } 247 | factory { FibonacciJava.Fib238(get(), get()) } 248 | factory { FibonacciJava.Fib239(get(), get()) } 249 | factory { FibonacciJava.Fib240(get(), get()) } 250 | factory { FibonacciJava.Fib241(get(), get()) } 251 | factory { FibonacciJava.Fib242(get(), get()) } 252 | factory { FibonacciJava.Fib243(get(), get()) } 253 | factory { FibonacciJava.Fib244(get(), get()) } 254 | factory { FibonacciJava.Fib245(get(), get()) } 255 | factory { FibonacciJava.Fib246(get(), get()) } 256 | factory { FibonacciJava.Fib247(get(), get()) } 257 | factory { FibonacciJava.Fib248(get(), get()) } 258 | factory { FibonacciJava.Fib249(get(), get()) } 259 | factory { FibonacciJava.Fib250(get(), get()) } 260 | factory { FibonacciJava.Fib251(get(), get()) } 261 | factory { FibonacciJava.Fib252(get(), get()) } 262 | factory { FibonacciJava.Fib253(get(), get()) } 263 | factory { FibonacciJava.Fib254(get(), get()) } 264 | factory { FibonacciJava.Fib255(get(), get()) } 265 | factory { FibonacciJava.Fib256(get(), get()) } 266 | factory { FibonacciJava.Fib257(get(), get()) } 267 | factory { FibonacciJava.Fib258(get(), get()) } 268 | factory { FibonacciJava.Fib259(get(), get()) } 269 | factory { FibonacciJava.Fib260(get(), get()) } 270 | factory { FibonacciJava.Fib261(get(), get()) } 271 | factory { FibonacciJava.Fib262(get(), get()) } 272 | factory { FibonacciJava.Fib263(get(), get()) } 273 | factory { FibonacciJava.Fib264(get(), get()) } 274 | factory { FibonacciJava.Fib265(get(), get()) } 275 | factory { FibonacciJava.Fib266(get(), get()) } 276 | factory { FibonacciJava.Fib267(get(), get()) } 277 | factory { FibonacciJava.Fib268(get(), get()) } 278 | factory { FibonacciJava.Fib269(get(), get()) } 279 | factory { FibonacciJava.Fib270(get(), get()) } 280 | factory { FibonacciJava.Fib271(get(), get()) } 281 | factory { FibonacciJava.Fib272(get(), get()) } 282 | factory { FibonacciJava.Fib273(get(), get()) } 283 | factory { FibonacciJava.Fib274(get(), get()) } 284 | factory { FibonacciJava.Fib275(get(), get()) } 285 | factory { FibonacciJava.Fib276(get(), get()) } 286 | factory { FibonacciJava.Fib277(get(), get()) } 287 | factory { FibonacciJava.Fib278(get(), get()) } 288 | factory { FibonacciJava.Fib279(get(), get()) } 289 | factory { FibonacciJava.Fib280(get(), get()) } 290 | factory { FibonacciJava.Fib281(get(), get()) } 291 | factory { FibonacciJava.Fib282(get(), get()) } 292 | factory { FibonacciJava.Fib283(get(), get()) } 293 | factory { FibonacciJava.Fib284(get(), get()) } 294 | factory { FibonacciJava.Fib285(get(), get()) } 295 | factory { FibonacciJava.Fib286(get(), get()) } 296 | factory { FibonacciJava.Fib287(get(), get()) } 297 | factory { FibonacciJava.Fib288(get(), get()) } 298 | factory { FibonacciJava.Fib289(get(), get()) } 299 | factory { FibonacciJava.Fib290(get(), get()) } 300 | factory { FibonacciJava.Fib291(get(), get()) } 301 | factory { FibonacciJava.Fib292(get(), get()) } 302 | factory { FibonacciJava.Fib293(get(), get()) } 303 | factory { FibonacciJava.Fib294(get(), get()) } 304 | factory { FibonacciJava.Fib295(get(), get()) } 305 | factory { FibonacciJava.Fib296(get(), get()) } 306 | factory { FibonacciJava.Fib297(get(), get()) } 307 | factory { FibonacciJava.Fib298(get(), get()) } 308 | factory { FibonacciJava.Fib299(get(), get()) } 309 | factory { FibonacciJava.Fib300(get(), get()) } 310 | factory { FibonacciJava.Fib301(get(), get()) } 311 | factory { FibonacciJava.Fib302(get(), get()) } 312 | factory { FibonacciJava.Fib303(get(), get()) } 313 | factory { FibonacciJava.Fib304(get(), get()) } 314 | factory { FibonacciJava.Fib305(get(), get()) } 315 | factory { FibonacciJava.Fib306(get(), get()) } 316 | factory { FibonacciJava.Fib307(get(), get()) } 317 | factory { FibonacciJava.Fib308(get(), get()) } 318 | factory { FibonacciJava.Fib309(get(), get()) } 319 | factory { FibonacciJava.Fib310(get(), get()) } 320 | factory { FibonacciJava.Fib311(get(), get()) } 321 | factory { FibonacciJava.Fib312(get(), get()) } 322 | factory { FibonacciJava.Fib313(get(), get()) } 323 | factory { FibonacciJava.Fib314(get(), get()) } 324 | factory { FibonacciJava.Fib315(get(), get()) } 325 | factory { FibonacciJava.Fib316(get(), get()) } 326 | factory { FibonacciJava.Fib317(get(), get()) } 327 | factory { FibonacciJava.Fib318(get(), get()) } 328 | factory { FibonacciJava.Fib319(get(), get()) } 329 | factory { FibonacciJava.Fib320(get(), get()) } 330 | factory { FibonacciJava.Fib321(get(), get()) } 331 | factory { FibonacciJava.Fib322(get(), get()) } 332 | factory { FibonacciJava.Fib323(get(), get()) } 333 | factory { FibonacciJava.Fib324(get(), get()) } 334 | factory { FibonacciJava.Fib325(get(), get()) } 335 | factory { FibonacciJava.Fib326(get(), get()) } 336 | factory { FibonacciJava.Fib327(get(), get()) } 337 | factory { FibonacciJava.Fib328(get(), get()) } 338 | factory { FibonacciJava.Fib329(get(), get()) } 339 | factory { FibonacciJava.Fib330(get(), get()) } 340 | factory { FibonacciJava.Fib331(get(), get()) } 341 | factory { FibonacciJava.Fib332(get(), get()) } 342 | factory { FibonacciJava.Fib333(get(), get()) } 343 | factory { FibonacciJava.Fib334(get(), get()) } 344 | factory { FibonacciJava.Fib335(get(), get()) } 345 | factory { FibonacciJava.Fib336(get(), get()) } 346 | factory { FibonacciJava.Fib337(get(), get()) } 347 | factory { FibonacciJava.Fib338(get(), get()) } 348 | factory { FibonacciJava.Fib339(get(), get()) } 349 | factory { FibonacciJava.Fib340(get(), get()) } 350 | factory { FibonacciJava.Fib341(get(), get()) } 351 | factory { FibonacciJava.Fib342(get(), get()) } 352 | factory { FibonacciJava.Fib343(get(), get()) } 353 | factory { FibonacciJava.Fib344(get(), get()) } 354 | factory { FibonacciJava.Fib345(get(), get()) } 355 | factory { FibonacciJava.Fib346(get(), get()) } 356 | factory { FibonacciJava.Fib347(get(), get()) } 357 | factory { FibonacciJava.Fib348(get(), get()) } 358 | factory { FibonacciJava.Fib349(get(), get()) } 359 | factory { FibonacciJava.Fib350(get(), get()) } 360 | factory { FibonacciJava.Fib351(get(), get()) } 361 | factory { FibonacciJava.Fib352(get(), get()) } 362 | factory { FibonacciJava.Fib353(get(), get()) } 363 | factory { FibonacciJava.Fib354(get(), get()) } 364 | factory { FibonacciJava.Fib355(get(), get()) } 365 | factory { FibonacciJava.Fib356(get(), get()) } 366 | factory { FibonacciJava.Fib357(get(), get()) } 367 | factory { FibonacciJava.Fib358(get(), get()) } 368 | factory { FibonacciJava.Fib359(get(), get()) } 369 | factory { FibonacciJava.Fib360(get(), get()) } 370 | factory { FibonacciJava.Fib361(get(), get()) } 371 | factory { FibonacciJava.Fib362(get(), get()) } 372 | factory { FibonacciJava.Fib363(get(), get()) } 373 | factory { FibonacciJava.Fib364(get(), get()) } 374 | factory { FibonacciJava.Fib365(get(), get()) } 375 | factory { FibonacciJava.Fib366(get(), get()) } 376 | factory { FibonacciJava.Fib367(get(), get()) } 377 | factory { FibonacciJava.Fib368(get(), get()) } 378 | factory { FibonacciJava.Fib369(get(), get()) } 379 | factory { FibonacciJava.Fib370(get(), get()) } 380 | factory { FibonacciJava.Fib371(get(), get()) } 381 | factory { FibonacciJava.Fib372(get(), get()) } 382 | factory { FibonacciJava.Fib373(get(), get()) } 383 | factory { FibonacciJava.Fib374(get(), get()) } 384 | factory { FibonacciJava.Fib375(get(), get()) } 385 | factory { FibonacciJava.Fib376(get(), get()) } 386 | factory { FibonacciJava.Fib377(get(), get()) } 387 | factory { FibonacciJava.Fib378(get(), get()) } 388 | factory { FibonacciJava.Fib379(get(), get()) } 389 | factory { FibonacciJava.Fib380(get(), get()) } 390 | factory { FibonacciJava.Fib381(get(), get()) } 391 | factory { FibonacciJava.Fib382(get(), get()) } 392 | factory { FibonacciJava.Fib383(get(), get()) } 393 | factory { FibonacciJava.Fib384(get(), get()) } 394 | factory { FibonacciJava.Fib385(get(), get()) } 395 | factory { FibonacciJava.Fib386(get(), get()) } 396 | factory { FibonacciJava.Fib387(get(), get()) } 397 | factory { FibonacciJava.Fib388(get(), get()) } 398 | factory { FibonacciJava.Fib389(get(), get()) } 399 | factory { FibonacciJava.Fib390(get(), get()) } 400 | factory { FibonacciJava.Fib391(get(), get()) } 401 | factory { FibonacciJava.Fib392(get(), get()) } 402 | factory { FibonacciJava.Fib393(get(), get()) } 403 | factory { FibonacciJava.Fib394(get(), get()) } 404 | factory { FibonacciJava.Fib395(get(), get()) } 405 | factory { FibonacciJava.Fib396(get(), get()) } 406 | factory { FibonacciJava.Fib397(get(), get()) } 407 | factory { FibonacciJava.Fib398(get(), get()) } 408 | factory { FibonacciJava.Fib399(get(), get()) } 409 | factory { FibonacciJava.Fib400(get(), get()) } 410 | factory { FibonacciJava.Fib401(get(), get()) } 411 | factory { FibonacciJava.Fib402(get(), get()) } 412 | factory { FibonacciJava.Fib403(get(), get()) } 413 | factory { FibonacciJava.Fib404(get(), get()) } 414 | factory { FibonacciJava.Fib405(get(), get()) } 415 | factory { FibonacciJava.Fib406(get(), get()) } 416 | factory { FibonacciJava.Fib407(get(), get()) } 417 | factory { FibonacciJava.Fib408(get(), get()) } 418 | factory { FibonacciJava.Fib409(get(), get()) } 419 | factory { FibonacciJava.Fib410(get(), get()) } 420 | factory { FibonacciJava.Fib411(get(), get()) } 421 | factory { FibonacciJava.Fib412(get(), get()) } 422 | factory { FibonacciJava.Fib413(get(), get()) } 423 | factory { FibonacciJava.Fib414(get(), get()) } 424 | factory { FibonacciJava.Fib415(get(), get()) } 425 | factory { FibonacciJava.Fib416(get(), get()) } 426 | factory { FibonacciJava.Fib417(get(), get()) } 427 | factory { FibonacciJava.Fib418(get(), get()) } 428 | factory { FibonacciJava.Fib419(get(), get()) } 429 | factory { FibonacciJava.Fib420(get(), get()) } 430 | factory { FibonacciJava.Fib421(get(), get()) } 431 | factory { FibonacciJava.Fib422(get(), get()) } 432 | factory { FibonacciJava.Fib423(get(), get()) } 433 | factory { FibonacciJava.Fib424(get(), get()) } 434 | factory { FibonacciJava.Fib425(get(), get()) } 435 | factory { FibonacciJava.Fib426(get(), get()) } 436 | factory { FibonacciJava.Fib427(get(), get()) } 437 | factory { FibonacciJava.Fib428(get(), get()) } 438 | factory { FibonacciJava.Fib429(get(), get()) } 439 | factory { FibonacciJava.Fib430(get(), get()) } 440 | factory { FibonacciJava.Fib431(get(), get()) } 441 | factory { FibonacciJava.Fib432(get(), get()) } 442 | factory { FibonacciJava.Fib433(get(), get()) } 443 | factory { FibonacciJava.Fib434(get(), get()) } 444 | factory { FibonacciJava.Fib435(get(), get()) } 445 | factory { FibonacciJava.Fib436(get(), get()) } 446 | factory { FibonacciJava.Fib437(get(), get()) } 447 | factory { FibonacciJava.Fib438(get(), get()) } 448 | factory { FibonacciJava.Fib439(get(), get()) } 449 | factory { FibonacciJava.Fib440(get(), get()) } 450 | factory { FibonacciJava.Fib441(get(), get()) } 451 | factory { FibonacciJava.Fib442(get(), get()) } 452 | factory { FibonacciJava.Fib443(get(), get()) } 453 | factory { FibonacciJava.Fib444(get(), get()) } 454 | factory { FibonacciJava.Fib445(get(), get()) } 455 | factory { FibonacciJava.Fib446(get(), get()) } 456 | factory { FibonacciJava.Fib447(get(), get()) } 457 | factory { FibonacciJava.Fib448(get(), get()) } 458 | factory { FibonacciJava.Fib449(get(), get()) } 459 | factory { FibonacciJava.Fib450(get(), get()) } 460 | } -------------------------------------------------------------------------------- /app/src/main/java/com/sloydev/dependencyinjectionperformance/koin/KoinKotlinModule.kt: -------------------------------------------------------------------------------- 1 | package com.sloydev.dependencyinjectionperformance.koin 2 | 3 | import com.sloydev.dependencyinjectionperformance.* 4 | import org.koin.dsl.module 5 | 6 | /** 7 | * Generated with https://gist.github.com/Sloy/12affca1e49ba052053ab4c8bfc5bcb4 8 | */ 9 | val koinKotlinModule = module { 10 | factory { Fib1() } 11 | factory { Fib2() } 12 | factory { Fib3(get(), get()) } 13 | factory { Fib4(get(), get()) } 14 | factory { Fib5(get(), get()) } 15 | factory { Fib6(get(), get()) } 16 | factory { Fib7(get(), get()) } 17 | factory { Fib8(get(), get()) } 18 | factory { Fib9(get(), get()) } 19 | factory { Fib10(get(), get()) } 20 | factory { Fib11(get(), get()) } 21 | factory { Fib12(get(), get()) } 22 | factory { Fib13(get(), get()) } 23 | factory { Fib14(get(), get()) } 24 | factory { Fib15(get(), get()) } 25 | factory { Fib16(get(), get()) } 26 | factory { Fib17(get(), get()) } 27 | factory { Fib18(get(), get()) } 28 | factory { Fib19(get(), get()) } 29 | factory { Fib20(get(), get()) } 30 | factory { Fib21(get(), get()) } 31 | factory { Fib22(get(), get()) } 32 | factory { Fib23(get(), get()) } 33 | factory { Fib24(get(), get()) } 34 | factory { Fib25(get(), get()) } 35 | factory { Fib26(get(), get()) } 36 | factory { Fib27(get(), get()) } 37 | factory { Fib28(get(), get()) } 38 | factory { Fib29(get(), get()) } 39 | factory { Fib30(get(), get()) } 40 | factory { Fib31(get(), get()) } 41 | factory { Fib32(get(), get()) } 42 | factory { Fib33(get(), get()) } 43 | factory { Fib34(get(), get()) } 44 | factory { Fib35(get(), get()) } 45 | factory { Fib36(get(), get()) } 46 | factory { Fib37(get(), get()) } 47 | factory { Fib38(get(), get()) } 48 | factory { Fib39(get(), get()) } 49 | factory { Fib40(get(), get()) } 50 | factory { Fib41(get(), get()) } 51 | factory { Fib42(get(), get()) } 52 | factory { Fib43(get(), get()) } 53 | factory { Fib44(get(), get()) } 54 | factory { Fib45(get(), get()) } 55 | factory { Fib46(get(), get()) } 56 | factory { Fib47(get(), get()) } 57 | factory { Fib48(get(), get()) } 58 | factory { Fib49(get(), get()) } 59 | factory { Fib50(get(), get()) } 60 | factory { Fib51(get(), get()) } 61 | factory { Fib52(get(), get()) } 62 | factory { Fib53(get(), get()) } 63 | factory { Fib54(get(), get()) } 64 | factory { Fib55(get(), get()) } 65 | factory { Fib56(get(), get()) } 66 | factory { Fib57(get(), get()) } 67 | factory { Fib58(get(), get()) } 68 | factory { Fib59(get(), get()) } 69 | factory { Fib60(get(), get()) } 70 | factory { Fib61(get(), get()) } 71 | factory { Fib62(get(), get()) } 72 | factory { Fib63(get(), get()) } 73 | factory { Fib64(get(), get()) } 74 | factory { Fib65(get(), get()) } 75 | factory { Fib66(get(), get()) } 76 | factory { Fib67(get(), get()) } 77 | factory { Fib68(get(), get()) } 78 | factory { Fib69(get(), get()) } 79 | factory { Fib70(get(), get()) } 80 | factory { Fib71(get(), get()) } 81 | factory { Fib72(get(), get()) } 82 | factory { Fib73(get(), get()) } 83 | factory { Fib74(get(), get()) } 84 | factory { Fib75(get(), get()) } 85 | factory { Fib76(get(), get()) } 86 | factory { Fib77(get(), get()) } 87 | factory { Fib78(get(), get()) } 88 | factory { Fib79(get(), get()) } 89 | factory { Fib80(get(), get()) } 90 | factory { Fib81(get(), get()) } 91 | factory { Fib82(get(), get()) } 92 | factory { Fib83(get(), get()) } 93 | factory { Fib84(get(), get()) } 94 | factory { Fib85(get(), get()) } 95 | factory { Fib86(get(), get()) } 96 | factory { Fib87(get(), get()) } 97 | factory { Fib88(get(), get()) } 98 | factory { Fib89(get(), get()) } 99 | factory { Fib90(get(), get()) } 100 | factory { Fib91(get(), get()) } 101 | factory { Fib92(get(), get()) } 102 | factory { Fib93(get(), get()) } 103 | factory { Fib94(get(), get()) } 104 | factory { Fib95(get(), get()) } 105 | factory { Fib96(get(), get()) } 106 | factory { Fib97(get(), get()) } 107 | factory { Fib98(get(), get()) } 108 | factory { Fib99(get(), get()) } 109 | factory { Fib100(get(), get()) } 110 | factory { Fib101(get(), get()) } 111 | factory { Fib102(get(), get()) } 112 | factory { Fib103(get(), get()) } 113 | factory { Fib104(get(), get()) } 114 | factory { Fib105(get(), get()) } 115 | factory { Fib106(get(), get()) } 116 | factory { Fib107(get(), get()) } 117 | factory { Fib108(get(), get()) } 118 | factory { Fib109(get(), get()) } 119 | factory { Fib110(get(), get()) } 120 | factory { Fib111(get(), get()) } 121 | factory { Fib112(get(), get()) } 122 | factory { Fib113(get(), get()) } 123 | factory { Fib114(get(), get()) } 124 | factory { Fib115(get(), get()) } 125 | factory { Fib116(get(), get()) } 126 | factory { Fib117(get(), get()) } 127 | factory { Fib118(get(), get()) } 128 | factory { Fib119(get(), get()) } 129 | factory { Fib120(get(), get()) } 130 | factory { Fib121(get(), get()) } 131 | factory { Fib122(get(), get()) } 132 | factory { Fib123(get(), get()) } 133 | factory { Fib124(get(), get()) } 134 | factory { Fib125(get(), get()) } 135 | factory { Fib126(get(), get()) } 136 | factory { Fib127(get(), get()) } 137 | factory { Fib128(get(), get()) } 138 | factory { Fib129(get(), get()) } 139 | factory { Fib130(get(), get()) } 140 | factory { Fib131(get(), get()) } 141 | factory { Fib132(get(), get()) } 142 | factory { Fib133(get(), get()) } 143 | factory { Fib134(get(), get()) } 144 | factory { Fib135(get(), get()) } 145 | factory { Fib136(get(), get()) } 146 | factory { Fib137(get(), get()) } 147 | factory { Fib138(get(), get()) } 148 | factory { Fib139(get(), get()) } 149 | factory { Fib140(get(), get()) } 150 | factory { Fib141(get(), get()) } 151 | factory { Fib142(get(), get()) } 152 | factory { Fib143(get(), get()) } 153 | factory { Fib144(get(), get()) } 154 | factory { Fib145(get(), get()) } 155 | factory { Fib146(get(), get()) } 156 | factory { Fib147(get(), get()) } 157 | factory { Fib148(get(), get()) } 158 | factory { Fib149(get(), get()) } 159 | factory { Fib150(get(), get()) } 160 | factory { Fib151(get(), get()) } 161 | factory { Fib152(get(), get()) } 162 | factory { Fib153(get(), get()) } 163 | factory { Fib154(get(), get()) } 164 | factory { Fib155(get(), get()) } 165 | factory { Fib156(get(), get()) } 166 | factory { Fib157(get(), get()) } 167 | factory { Fib158(get(), get()) } 168 | factory { Fib159(get(), get()) } 169 | factory { Fib160(get(), get()) } 170 | factory { Fib161(get(), get()) } 171 | factory { Fib162(get(), get()) } 172 | factory { Fib163(get(), get()) } 173 | factory { Fib164(get(), get()) } 174 | factory { Fib165(get(), get()) } 175 | factory { Fib166(get(), get()) } 176 | factory { Fib167(get(), get()) } 177 | factory { Fib168(get(), get()) } 178 | factory { Fib169(get(), get()) } 179 | factory { Fib170(get(), get()) } 180 | factory { Fib171(get(), get()) } 181 | factory { Fib172(get(), get()) } 182 | factory { Fib173(get(), get()) } 183 | factory { Fib174(get(), get()) } 184 | factory { Fib175(get(), get()) } 185 | factory { Fib176(get(), get()) } 186 | factory { Fib177(get(), get()) } 187 | factory { Fib178(get(), get()) } 188 | factory { Fib179(get(), get()) } 189 | factory { Fib180(get(), get()) } 190 | factory { Fib181(get(), get()) } 191 | factory { Fib182(get(), get()) } 192 | factory { Fib183(get(), get()) } 193 | factory { Fib184(get(), get()) } 194 | factory { Fib185(get(), get()) } 195 | factory { Fib186(get(), get()) } 196 | factory { Fib187(get(), get()) } 197 | factory { Fib188(get(), get()) } 198 | factory { Fib189(get(), get()) } 199 | factory { Fib190(get(), get()) } 200 | factory { Fib191(get(), get()) } 201 | factory { Fib192(get(), get()) } 202 | factory { Fib193(get(), get()) } 203 | factory { Fib194(get(), get()) } 204 | factory { Fib195(get(), get()) } 205 | factory { Fib196(get(), get()) } 206 | factory { Fib197(get(), get()) } 207 | factory { Fib198(get(), get()) } 208 | factory { Fib199(get(), get()) } 209 | factory { Fib200(get(), get()) } 210 | factory { Fib201(get(), get()) } 211 | factory { Fib202(get(), get()) } 212 | factory { Fib203(get(), get()) } 213 | factory { Fib204(get(), get()) } 214 | factory { Fib205(get(), get()) } 215 | factory { Fib206(get(), get()) } 216 | factory { Fib207(get(), get()) } 217 | factory { Fib208(get(), get()) } 218 | factory { Fib209(get(), get()) } 219 | factory { Fib210(get(), get()) } 220 | factory { Fib211(get(), get()) } 221 | factory { Fib212(get(), get()) } 222 | factory { Fib213(get(), get()) } 223 | factory { Fib214(get(), get()) } 224 | factory { Fib215(get(), get()) } 225 | factory { Fib216(get(), get()) } 226 | factory { Fib217(get(), get()) } 227 | factory { Fib218(get(), get()) } 228 | factory { Fib219(get(), get()) } 229 | factory { Fib220(get(), get()) } 230 | factory { Fib221(get(), get()) } 231 | factory { Fib222(get(), get()) } 232 | factory { Fib223(get(), get()) } 233 | factory { Fib224(get(), get()) } 234 | factory { Fib225(get(), get()) } 235 | factory { Fib226(get(), get()) } 236 | factory { Fib227(get(), get()) } 237 | factory { Fib228(get(), get()) } 238 | factory { Fib229(get(), get()) } 239 | factory { Fib230(get(), get()) } 240 | factory { Fib231(get(), get()) } 241 | factory { Fib232(get(), get()) } 242 | factory { Fib233(get(), get()) } 243 | factory { Fib234(get(), get()) } 244 | factory { Fib235(get(), get()) } 245 | factory { Fib236(get(), get()) } 246 | factory { Fib237(get(), get()) } 247 | factory { Fib238(get(), get()) } 248 | factory { Fib239(get(), get()) } 249 | factory { Fib240(get(), get()) } 250 | factory { Fib241(get(), get()) } 251 | factory { Fib242(get(), get()) } 252 | factory { Fib243(get(), get()) } 253 | factory { Fib244(get(), get()) } 254 | factory { Fib245(get(), get()) } 255 | factory { Fib246(get(), get()) } 256 | factory { Fib247(get(), get()) } 257 | factory { Fib248(get(), get()) } 258 | factory { Fib249(get(), get()) } 259 | factory { Fib250(get(), get()) } 260 | factory { Fib251(get(), get()) } 261 | factory { Fib252(get(), get()) } 262 | factory { Fib253(get(), get()) } 263 | factory { Fib254(get(), get()) } 264 | factory { Fib255(get(), get()) } 265 | factory { Fib256(get(), get()) } 266 | factory { Fib257(get(), get()) } 267 | factory { Fib258(get(), get()) } 268 | factory { Fib259(get(), get()) } 269 | factory { Fib260(get(), get()) } 270 | factory { Fib261(get(), get()) } 271 | factory { Fib262(get(), get()) } 272 | factory { Fib263(get(), get()) } 273 | factory { Fib264(get(), get()) } 274 | factory { Fib265(get(), get()) } 275 | factory { Fib266(get(), get()) } 276 | factory { Fib267(get(), get()) } 277 | factory { Fib268(get(), get()) } 278 | factory { Fib269(get(), get()) } 279 | factory { Fib270(get(), get()) } 280 | factory { Fib271(get(), get()) } 281 | factory { Fib272(get(), get()) } 282 | factory { Fib273(get(), get()) } 283 | factory { Fib274(get(), get()) } 284 | factory { Fib275(get(), get()) } 285 | factory { Fib276(get(), get()) } 286 | factory { Fib277(get(), get()) } 287 | factory { Fib278(get(), get()) } 288 | factory { Fib279(get(), get()) } 289 | factory { Fib280(get(), get()) } 290 | factory { Fib281(get(), get()) } 291 | factory { Fib282(get(), get()) } 292 | factory { Fib283(get(), get()) } 293 | factory { Fib284(get(), get()) } 294 | factory { Fib285(get(), get()) } 295 | factory { Fib286(get(), get()) } 296 | factory { Fib287(get(), get()) } 297 | factory { Fib288(get(), get()) } 298 | factory { Fib289(get(), get()) } 299 | factory { Fib290(get(), get()) } 300 | factory { Fib291(get(), get()) } 301 | factory { Fib292(get(), get()) } 302 | factory { Fib293(get(), get()) } 303 | factory { Fib294(get(), get()) } 304 | factory { Fib295(get(), get()) } 305 | factory { Fib296(get(), get()) } 306 | factory { Fib297(get(), get()) } 307 | factory { Fib298(get(), get()) } 308 | factory { Fib299(get(), get()) } 309 | factory { Fib300(get(), get()) } 310 | factory { Fib301(get(), get()) } 311 | factory { Fib302(get(), get()) } 312 | factory { Fib303(get(), get()) } 313 | factory { Fib304(get(), get()) } 314 | factory { Fib305(get(), get()) } 315 | factory { Fib306(get(), get()) } 316 | factory { Fib307(get(), get()) } 317 | factory { Fib308(get(), get()) } 318 | factory { Fib309(get(), get()) } 319 | factory { Fib310(get(), get()) } 320 | factory { Fib311(get(), get()) } 321 | factory { Fib312(get(), get()) } 322 | factory { Fib313(get(), get()) } 323 | factory { Fib314(get(), get()) } 324 | factory { Fib315(get(), get()) } 325 | factory { Fib316(get(), get()) } 326 | factory { Fib317(get(), get()) } 327 | factory { Fib318(get(), get()) } 328 | factory { Fib319(get(), get()) } 329 | factory { Fib320(get(), get()) } 330 | factory { Fib321(get(), get()) } 331 | factory { Fib322(get(), get()) } 332 | factory { Fib323(get(), get()) } 333 | factory { Fib324(get(), get()) } 334 | factory { Fib325(get(), get()) } 335 | factory { Fib326(get(), get()) } 336 | factory { Fib327(get(), get()) } 337 | factory { Fib328(get(), get()) } 338 | factory { Fib329(get(), get()) } 339 | factory { Fib330(get(), get()) } 340 | factory { Fib331(get(), get()) } 341 | factory { Fib332(get(), get()) } 342 | factory { Fib333(get(), get()) } 343 | factory { Fib334(get(), get()) } 344 | factory { Fib335(get(), get()) } 345 | factory { Fib336(get(), get()) } 346 | factory { Fib337(get(), get()) } 347 | factory { Fib338(get(), get()) } 348 | factory { Fib339(get(), get()) } 349 | factory { Fib340(get(), get()) } 350 | factory { Fib341(get(), get()) } 351 | factory { Fib342(get(), get()) } 352 | factory { Fib343(get(), get()) } 353 | factory { Fib344(get(), get()) } 354 | factory { Fib345(get(), get()) } 355 | factory { Fib346(get(), get()) } 356 | factory { Fib347(get(), get()) } 357 | factory { Fib348(get(), get()) } 358 | factory { Fib349(get(), get()) } 359 | factory { Fib350(get(), get()) } 360 | factory { Fib351(get(), get()) } 361 | factory { Fib352(get(), get()) } 362 | factory { Fib353(get(), get()) } 363 | factory { Fib354(get(), get()) } 364 | factory { Fib355(get(), get()) } 365 | factory { Fib356(get(), get()) } 366 | factory { Fib357(get(), get()) } 367 | factory { Fib358(get(), get()) } 368 | factory { Fib359(get(), get()) } 369 | factory { Fib360(get(), get()) } 370 | factory { Fib361(get(), get()) } 371 | factory { Fib362(get(), get()) } 372 | factory { Fib363(get(), get()) } 373 | factory { Fib364(get(), get()) } 374 | factory { Fib365(get(), get()) } 375 | factory { Fib366(get(), get()) } 376 | factory { Fib367(get(), get()) } 377 | factory { Fib368(get(), get()) } 378 | factory { Fib369(get(), get()) } 379 | factory { Fib370(get(), get()) } 380 | factory { Fib371(get(), get()) } 381 | factory { Fib372(get(), get()) } 382 | factory { Fib373(get(), get()) } 383 | factory { Fib374(get(), get()) } 384 | factory { Fib375(get(), get()) } 385 | factory { Fib376(get(), get()) } 386 | factory { Fib377(get(), get()) } 387 | factory { Fib378(get(), get()) } 388 | factory { Fib379(get(), get()) } 389 | factory { Fib380(get(), get()) } 390 | factory { Fib381(get(), get()) } 391 | factory { Fib382(get(), get()) } 392 | factory { Fib383(get(), get()) } 393 | factory { Fib384(get(), get()) } 394 | factory { Fib385(get(), get()) } 395 | factory { Fib386(get(), get()) } 396 | factory { Fib387(get(), get()) } 397 | factory { Fib388(get(), get()) } 398 | factory { Fib389(get(), get()) } 399 | factory { Fib390(get(), get()) } 400 | factory { Fib391(get(), get()) } 401 | factory { Fib392(get(), get()) } 402 | factory { Fib393(get(), get()) } 403 | factory { Fib394(get(), get()) } 404 | factory { Fib395(get(), get()) } 405 | factory { Fib396(get(), get()) } 406 | factory { Fib397(get(), get()) } 407 | factory { Fib398(get(), get()) } 408 | factory { Fib399(get(), get()) } 409 | factory { Fib400(get(), get()) } 410 | factory { Fib401(get(), get()) } 411 | factory { Fib402(get(), get()) } 412 | factory { Fib403(get(), get()) } 413 | factory { Fib404(get(), get()) } 414 | factory { Fib405(get(), get()) } 415 | factory { Fib406(get(), get()) } 416 | factory { Fib407(get(), get()) } 417 | factory { Fib408(get(), get()) } 418 | factory { Fib409(get(), get()) } 419 | factory { Fib410(get(), get()) } 420 | factory { Fib411(get(), get()) } 421 | factory { Fib412(get(), get()) } 422 | factory { Fib413(get(), get()) } 423 | factory { Fib414(get(), get()) } 424 | factory { Fib415(get(), get()) } 425 | factory { Fib416(get(), get()) } 426 | factory { Fib417(get(), get()) } 427 | factory { Fib418(get(), get()) } 428 | factory { Fib419(get(), get()) } 429 | factory { Fib420(get(), get()) } 430 | factory { Fib421(get(), get()) } 431 | factory { Fib422(get(), get()) } 432 | factory { Fib423(get(), get()) } 433 | factory { Fib424(get(), get()) } 434 | factory { Fib425(get(), get()) } 435 | factory { Fib426(get(), get()) } 436 | factory { Fib427(get(), get()) } 437 | factory { Fib428(get(), get()) } 438 | factory { Fib429(get(), get()) } 439 | factory { Fib430(get(), get()) } 440 | factory { Fib431(get(), get()) } 441 | factory { Fib432(get(), get()) } 442 | factory { Fib433(get(), get()) } 443 | factory { Fib434(get(), get()) } 444 | factory { Fib435(get(), get()) } 445 | factory { Fib436(get(), get()) } 446 | factory { Fib437(get(), get()) } 447 | factory { Fib438(get(), get()) } 448 | factory { Fib439(get(), get()) } 449 | factory { Fib440(get(), get()) } 450 | factory { Fib441(get(), get()) } 451 | factory { Fib442(get(), get()) } 452 | factory { Fib443(get(), get()) } 453 | factory { Fib444(get(), get()) } 454 | factory { Fib445(get(), get()) } 455 | factory { Fib446(get(), get()) } 456 | factory { Fib447(get(), get()) } 457 | factory { Fib448(get(), get()) } 458 | factory { Fib449(get(), get()) } 459 | factory { Fib450(get(), get()) } 460 | } 461 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 64 | 66 | 68 | 70 | 72 | 74 | 75 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arnaudgiuliani/android-dependency-injection-performance/3447096f6beb9b6d3192b11ab6996d9d0a0265df/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 16dp 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Dependency Injection Performance 3 | Settings 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 14 |