TGViewer
Чайник из Юты Чайник из Юты @irrationalthings · 122 subscribers
Post #81 84
Чайник из Юты Возвращаясь к приколам с []byte, или как быстро и без накладных приводить чары в ловеркейс Важно: данный трюк маловероятно сработает с utf8 Ну а если у нас есть массив байт в кодировке ASCII, то для перевода всех символов в нижний регистр можно просто применить…
Прикладываю результаты бенчмарков по множеству просьб подписчиков. Тестирование проводилось в таком виде. Результаты следующие:

Для bytes.ToLower():
BenchmarkSTDShortLowercase-12           23080384                51.11 ns/op
BenchmarkSTDLongLowercase-12 7538932 161.1 ns/op
BenchmarkSTDShortMixed-12 19974499 59.08 ns/op
BenchmarkSTDLongMixed-12 3973327 304.0 ns/op
BenchmarkSTDShortUppercase-12 27904444 42.65 ns/op
BenchmarkSTDLongUppercase-12 5482158 220.9 ns/op

Для собственной реализации, код которой лежит в файле с бенчмарками, в функции ToLowercase():
BenchmarkOwnShortLowercase-12           41382306                29.19 ns/op
BenchmarkOwnLongLowercase-12 10526306 108.4 ns/op
BenchmarkOwnShortMixed-12 35293806 29.89 ns/op
BenchmarkOwnLongMixed-12 10962948 111.6 ns/op
BenchmarkOwnShortUppercase-12 40000665 29.95 ns/op
BenchmarkOwnLongUppercase-12 10810712 111.2 ns/op

И здесь мы видим, что в среднем, наша функция быстрее в 2 раза, нежели реализация в std-либе

Однако, почему так? Вопрос кроется в том, что bytes.ToLower() корректно работает также с utf8
Pastebin caseloweringtrick_test.go - Pastebin.com Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
More from @irrationalthings
  1. Sep 21, 2026я хрюкнул
  2. Sep 21, 2026гемини
  3. Sep 15, 2026Тот факт, что между нейронками и компрессорами больше общего, чем может показаться - забав…
  4. Sep 15, 2026"Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressor…
  5. Sep 15, 2026Конечно, они сравнивали со средненькими классифицирующими моделями. Там есть пространство…
  6. Sep 15, 2026GZIP наносит ответный удар Вот мы хотим классифицировать текст. Классическая задача для ML…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →