diff options
| author | Bill Buzbee <buzbee@google.com> | 2009-11-16 12:51:22 -0800 |
|---|---|---|
| committer | Bill Buzbee <buzbee@google.com> | 2009-11-16 12:51:22 -0800 |
| commit | 4c0dedfd9006daee4f6d96482cc6ac94a1797880 (patch) | |
| tree | 9a3d085143e917784cb41d3ce9baa39c89dbb483 /vm/compiler/codegen/arm/CodegenFactory.c | |
| parent | 1729d0b998523fe8b5ddcefaf1577ce00a4aee44 (diff) | |
Jit: string's compareTo performance improvement.
Changed compareTo handler to call __memcmp16() for strings >= 32 chars.
However, even for those strings, the first two chars are done in the
handler (to catch early-out cases).
Comparisons were done with micro-benchmarks comparing 10 and 200-char
strings.
The strings were:
equal -> Q
not equal at start -> S
not equal at end -> E
The test configurations were handler (H) [the previous handler], subroutine (S)
[memcmp16()} and blended (B) [this commit]
H S B
10E 60 138 65
10S 32 70 30
10Q 9 9 9
100E 745 708 716
In short, the small string cases were twice as fast with the existing
handler compared to memcmp16, but memcmp16 was ~5% faster for long
strings.
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenFactory.c')
0 files changed, 0 insertions, 0 deletions
