Kweku Adams
4049d0fd9c
Improve forEach.
The default implementation of Collection.forEach() uses the
iterator(). Switch to a simple for loop iterating through the array
since the iterator is an inefficient way to access the array contents.
Benchmark results:
Before:
android.util.ArrayMapPerfTest#testForEach_Large:
forEach_Large_min (ns): 599759
forEach_Large_median (ns): 655845
forEach_Large_mean (ns): 636927
forEach_Large_standardDeviation: 34373
android.util.ArrayMapPerfTest#testForEach_Small:
forEach_Small_min (ns): 118822
forEach_Small_median (ns): 121422
forEach_Small_mean (ns): 121695
forEach_Small_standardDeviation: 2079
After:
android.util.ArrayMapPerfTest#testForEach_Large:
forEach_Large_min (ns): 403562
forEach_Large_median (ns): 441364
forEach_Large_mean (ns): 442301
forEach_Large_standardDeviation: 24917
android.util.ArrayMapPerfTest#testForEach_Small:
forEach_Small_min (ns): 81889
forEach_Small_median (ns): 87889
forEach_Small_mean (ns): 86905
forEach_Small_standardDeviation: 2880
Bug: 194098491
Test: atest CorePerfTests:ArrayMapPerfTest (see results above)
Test: atest CtsUtilTestCases:ArrayMapTest
Test: atest FrameworksCoreTests:ArrayMapTest
Change-Id: Id528fe24f1d17af01a2d639753d42e2ad21144d2
2021-08-11 08:36:48 -07:00
..
2021-07-30 16:43:33 +09:00
2020-10-15 10:48:01 -07:00
2020-12-08 11:01:05 -07:00
2021-08-11 08:36:48 -07:00
2021-07-19 13:10:23 -07:00
2020-05-21 00:09:30 +00:00
2020-11-13 14:11:41 -07:00
2020-12-01 10:34:22 -08:00
2020-10-15 10:48:01 -07:00
2020-11-04 09:45:53 +00:00
2020-12-10 18:57:17 -08:00
2021-06-02 21:10:26 +08:00
2020-11-04 09:45:53 +00:00
2020-05-21 10:36:53 -07:00
2020-09-21 22:25:50 -07:00
2021-04-29 14:09:18 +01:00
2020-11-04 09:45:53 +00:00
2020-10-13 15:30:39 -04:00
2020-11-04 09:45:53 +00:00
2020-11-04 09:45:53 +00:00
2020-09-14 10:00:02 -06:00
2020-09-14 10:00:02 -06:00
2020-10-15 10:48:01 -07:00
2020-10-15 10:48:01 -07:00
2021-02-24 23:33:16 +08:00
2020-11-04 09:45:53 +00:00
2021-03-02 18:38:57 +00:00
2021-04-22 19:15:40 +00:00
2020-10-15 10:48:01 -07:00
2020-11-04 09:45:53 +00:00
2020-12-24 17:41:19 +00:00
2020-10-15 10:48:01 -07:00
2020-11-04 09:45:53 +00:00
2020-11-04 09:45:53 +00:00
2021-02-23 17:34:26 -08:00
2021-03-04 23:27:08 +00:00
2021-04-06 22:53:25 -07:00
2021-02-24 12:58:06 -08:00
2021-06-29 12:06:55 -07:00
2020-10-15 10:48:01 -07:00
2021-03-19 17:31:56 -07:00
2021-03-17 18:43:19 -07:00
2021-03-31 17:03:40 +00:00
2020-11-04 09:45:53 +00:00
2021-01-07 14:30:57 -05:00
2020-12-09 12:18:05 -07:00
2020-11-16 14:43:29 -07:00
2020-12-17 08:16:32 -07:00