Pull to refresh

Comments 7

Интересное ускорение, Андрей. Стандартный utf8.Valid() в Go — это и вправду достаточно «узкое место» во многих проектах, особенно при потоковой обработке больших данных

Приятно удивила инженерная точность, с которой ты выжал максимум из ARM64 — х10 ускорение это мощно)

За открытые исходники отдельное спасибо — попробую внедрить в свой пет по перекладыванию джейсонов 😅

Ключевая идея заключается в том, что практически все ошибки UTF-8 можно детектировать, анализируя только первые два байта каждой последовательности.

Что значит практически все? Нельзя быть немножко беременной, особенно в механизме валидации данных.

статья не детальный разбор алгоритма, а конкретной моей его реализации. я дал ссылки на обзор алгоритма. если хотите обсудить мою реализацию Велком

Я и хотел спросить- в Вашей реализации обрабатываются все возможные ошибки в utf-8 или не все?

все, я же написал есть тесты и фузинг, прочтите статью , прежде чем комментировать

Обработка хвостов выглядит излишне сложной. Я бы просто грузил в регистр как есть, а потом занулял хвосты маской.

да, возможно стоит упростить, думаю именно на обработке хвоста проирываюю чутка реализацие на расте

Sign up to leave a comment.

Articles