Commit bacaba0
authored
Improve RealImageLoader.execute to properly call async request (#2205)
* Improve RealImageLoader.execute to properly call async request
* Add experiments to get information about performance
* Revert fix
* Add comment what's blocking
* Fix spotless
* Tweak benchmarks + add traces
Update benchmarks
Experiment removing mutableState
Before:
AsyncImagePainter.onRememberedAverageMs min 0.1, median 0.1, max 0.1
AsyncImagePainter.onRememberedCount min 130.0, median 139.0, max 146.0
AsyncImagePainter.onRememberedMs min 9.3, median 12.5, max 16.3
frameDurationCpuMs P50 4.1, P90 9.1, P95 20.0, P99 99.3
After:
AsyncImagePainter.onRememberedAverageMs min 0.1, median 0.1, max 0.1
AsyncImagePainter.onRememberedCount min 130.0, median 141.0, max 148.0
AsyncImagePainter.onRememberedMs min 8.3, median 10.5, max 15.8
frameDurationCpuMs P50 4.4, P90 8.6, P95 12.0, P99 95.1
Don't launch job for compose
before
AsyncImagePainter.onRememberedAverage_µs min 77.3, median 101.5, max 116.7
AsyncImagePainter.onRememberedCount min 130.0, median 130.0, max 146.0
AsyncImagePainter.onRemembered_µs min 10,048.4, median 13,880.2, max 16,900.0
timeToInitialDisplayMs min 256.8, median 281.7, max 358.9
frameDurationCpuMs P50 5.1, P90 9.2, P95 13.3, P99 117.0
after
AsyncImagePainter.onRememberedAverage_µs min 68.9, median 78.7, max 91.1
AsyncImagePainter.onRememberedCount min 128.0, median 141.0, max 146.0
AsyncImagePainter.onRemembered_µs min 8,956.1, median 11,163.1, max 13,111.9
timeToInitialDisplayMs min 234.1, median 276.5, max 325.7
frameDurationCpuMs P50 4.5, P90 8.9, P95 15.5, P99 120.3
* Experiment removing Compose State
Before:
AsyncImagePainter.onRememberedAverageMs min 0.1, median 0.1, max 0.1
AsyncImagePainter.onRememberedCount min 130.0, median 139.0, max 146.0
AsyncImagePainter.onRememberedMs min 9.3, median 12.5, max 16.3
frameDurationCpuMs P50 4.1, P90 9.1, P95 20.0, P99 99.3
After:
AsyncImagePainter.onRememberedAverageMs min 0.1, median 0.1, max 0.1
AsyncImagePainter.onRememberedCount min 130.0, median 141.0, max 148.0
AsyncImagePainter.onRememberedMs min 8.3, median 10.5, max 15.8
frameDurationCpuMs P50 4.4, P90 8.6, P95 12.0, P99 95.1
* Don't launch job for compose
before
AsyncImagePainter.onRememberedAverage_µs min 77.3, median 101.5, max 116.7
AsyncImagePainter.onRememberedCount min 130.0, median 130.0, max 146.0
AsyncImagePainter.onRemembered_µs min 10,048.4, median 13,880.2, max 16,900.0
timeToInitialDisplayMs min 256.8, median 281.7, max 358.9
frameDurationCpuMs P50 5.1, P90 9.2, P95 13.3, P99 117.0
after
AsyncImagePainter.onRememberedAverage_µs min 68.9, median 78.7, max 91.1
AsyncImagePainter.onRememberedCount min 128.0, median 141.0, max 146.0
AsyncImagePainter.onRemembered_µs min 8,956.1, median 11,163.1, max 13,111.9
timeToInitialDisplayMs min 234.1, median 276.5, max 325.7
frameDurationCpuMs P50 4.5, P90 8.9, P95 15.5, P99 120.3
* Cleanup
* Fix dependency with version catalog
* Cleanup
* Revert API changes1 parent 95edaae commit bacaba0
7 files changed
Lines changed: 162 additions & 16 deletions
File tree
- coil-base/src/main/java/coil
- coil-benchmark
- src/main/java/coil/benchmark
- coil-compose-base/src/main/java/coil/compose
- coil-sample-compose
- gradle
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
| 126 | + | |
133 | 127 | | |
134 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
135 | 144 | | |
136 | | - | |
137 | | - | |
138 | 145 | | |
139 | 146 | | |
140 | 147 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
14 | 20 | | |
15 | 21 | | |
16 | 22 | | |
| |||
39 | 45 | | |
40 | 46 | | |
41 | 47 | | |
| 48 | + | |
| 49 | + | |
42 | 50 | | |
43 | 51 | | |
44 | 52 | | |
| |||
Lines changed: 58 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
Lines changed: 66 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
Lines changed: 6 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
197 | 198 | | |
198 | 199 | | |
199 | 200 | | |
200 | | - | |
| 201 | + | |
201 | 202 | | |
202 | 203 | | |
203 | 204 | | |
| |||
253 | 254 | | |
254 | 255 | | |
255 | 256 | | |
256 | | - | |
| 257 | + | |
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
| |||
282 | 283 | | |
283 | 284 | | |
284 | 285 | | |
285 | | - | |
| 286 | + | |
286 | 287 | | |
287 | | - | |
| 288 | + | |
288 | 289 | | |
289 | 290 | | |
290 | 291 | | |
| |||
297 | 298 | | |
298 | 299 | | |
299 | 300 | | |
300 | | - | |
| 301 | + | |
301 | 302 | | |
302 | 303 | | |
303 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
45 | 46 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| |||
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
| 30 | + | |
28 | 31 | | |
29 | 32 | | |
30 | | - | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
| |||
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| 49 | + | |
| 50 | + | |
46 | 51 | | |
47 | 52 | | |
48 | 53 | | |
| |||
0 commit comments