1
0
mirror of https://github.com/php/php-src.git synced 2026-04-10 09:33:06 +02:00
Files
archived-php-src/ext/mbstring/tests
Alex Dowad 3ae4779305 Add accelerated (SIMD-based) implementation of mb_check_encoding for UTF-8
The new SSE2-based implementation of mb_check_encoding for UTF-8 is
about 10% faster for 0-5 byte strings, more than 3 times faster for
~100-byte strings, and just under 4 times faster for ~10,000-byte
strings.

I believe it may be possible to make this function much faster again.
Some possible directions for further performance optimization include:

• If other ISA extensions like AVX or AVX-512 are available, use a
  similar algorithm, but process text in blocks of 32 or 64 bytes
  (instead of 16 bytes).
• If other SIMD ISA extensions are available, use the greater variety
  of available instructions to make some of the checks tighter.
• Even if only SSE/SSE2 are available, find clever ways to squeeze
  instructions out of the hot path. This would probably require a lot
  of perusing instruction mauals and thinking hard about which SIMD
  instructions could be used to perform the same checks with fewer
  instructions.
• Find a better algorithm, possibly one where more checks could be
  combined (just as the current algorithm combines the checks for
  certain overlong code units and reserved codepoints).
2023-01-17 10:07:53 +02:00
..
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-06-11 14:00:43 +02:00
2021-08-11 14:03:18 +02:00
2020-02-03 22:52:20 +01:00
2022-05-06 15:41:10 +02:00
2023-01-06 14:34:10 +02:00