b5bde2fd72189192b52e726a2d606d70c3c8a34b |
|
02-Nov-2010 |
Elliott Hughes <enh@google.com> |
More shift removal. A few more customers for OSMemory's peek/poke abilities, and a bunch of shifts that should have been multiplications. Bug: 3032515 Change-Id: Ic518fd8f7565d67523ea10e3f5afca3a9c8501b8
|
43a9f774d075e0e441d8b996e3f6c81ea483ec89 |
|
19-Oct-2010 |
Elliott Hughes <enh@google.com> |
BufferIterator support for byte[]. Bug: 3032515 Change-Id: I040a92c3ce241aa97719ff94e3cc31c62473bf46
|
d6b9f2e0e9640ff9c896b394716cf5e7eee6e257 |
|
14-Sep-2010 |
Elliott Hughes <enh@google.com> |
Much faster TimeZone.getTimeZone using a new private mmap(2) interface. froyo: benchmark us logarithmic runtime TimeZone_getDefault 8.43 = TimeZone_getTimeZoneUTC 1140.19 =========================== TimeZone_getTimeZone_America_Caracas 1537.78 ============================ TimeZone_getTimeZone_America_Santiago 1920.50 ============================= TimeZone_getTimeZone_GMT_plus_10 1089.90 ========================== TimeZone_getTimeZone_default 1105.54 =========================== dalvik-dev: benchmark us logarithmic runtime TimeZone_getDefault 7.37 = TimeZone_getTimeZoneUTC 30.35 ================ TimeZone_getTimeZone_America_Caracas 35.98 ================== TimeZone_getTimeZone_America_Santiago 100.21 ============================== TimeZone_getTimeZone_GMT_plus_10 43.83 ==================== TimeZone_getTimeZone_default 31.32 ================= There are two main changes. The biggest one is to use our own private mmap(2) API. We might want to make this more generally available in the long term, but for now it's pretty unsafe; we do nothing to detect invalidated iterators, and we do no bounds checking. But that's fine for our internal use. The other change is to recognize that we don't actually need the abbreviated names. We were only using them for hashCode and equals, and the canonical Olson id seems like a much better choice for those purposes! That then means that we don't need to read in as much data in the first place. This makes more difference for simpler time zones (such as Caracas in the example) because the overhead is pretty much fixed. The profile now has us spending most of our time in String.compareTo (for the binary search) and in OSMemory (paying for our slow native method calling). Change-Id: I848a318572008e0be8a4a330bb14d2f791353200
|