[MDEV-17474] Change Unicode collation implementation from "handler" to "inline" style Created: 2018-10-16 Updated: 2018-10-19 Resolved: 2018-10-18 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Character Sets |
| Fix Version/s: | 10.4.0 |
| Type: | Task | Priority: | Major |
| Reporter: | Alexander Barkov | Assignee: | Alexander Barkov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
axel found a performance bottleneck in the Unicode collation implementation ( Under terms of this task, we'll reorganize the code implementing Unicode collations (such as utf8_unicode_ci) to a new style which will change virtual function calls to inline-ing: The old style
The new style
The old version generated smaller amount of executable code, but was slower. Part#2: additional changes:
|
| Comments |
| Comment by Alexander Barkov [ 2018-10-17 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Performance comparison (after the main change and part#2): utf8_unicode_ci
utf8_german2_ci
utf8_spanish2_ci
utf8_thai_520_w2 (difference on the primary level)
utf8_thai_520_w2 (equality on the primary level)
utf8mb4_unicode_ci
utf8mb4_german2_ci
utf8mb4_spanish2_ci
utf8mb4_thai_520_w2 (difference on the primary level)
utf8mb4_thai_520_w2 (equality on the primary level)
|