<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/yt/string, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-06-28T16:51:54Z</updated>
<entry>
<title>YT-22593: Add AsciiStringToLower/AsciiStringToUpper</title>
<updated>2026-06-28T16:51:54Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-06-28T16:27:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f3e7096029d090b57fc6c818f541c02834642cc4'/>
<id>urn:sha1:f3e7096029d090b57fc6c818f541c02834642cc4</id>
<content type='text'>
commit_hash:106e53bffa668818abf8e4003d694e1eb0a0316f
</content>
</entry>
<entry>
<title>Add std::string-backed stream adapters to library/cpp/yt/string</title>
<updated>2026-06-23T17:18:45Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-06-23T16:43:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=be198d869f39b1cb409417b542e4c4919ce6051e'/>
<id>urn:sha1:be198d869f39b1cb409417b542e4c4919ce6051e</id>
<content type='text'>
commit_hash:54a07f0d411d0ece7af812a9fdf91509f25ee5cb
</content>
</entry>
<entry>
<title>YT-22593: migrate assorted library/cpp/yt string APIs to std::string</title>
<updated>2026-06-22T07:29:43Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-06-22T06:49:16Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3be2668d473b30ab780015fb612fcc81d0ca2183'/>
<id>urn:sha1:3be2668d473b30ab780015fb612fcc81d0ca2183</id>
<content type='text'>
commit_hash:bfab0d0115b50949f66878004cf718b988575734
</content>
</entry>
<entry>
<title>Speed up NYT::Format</title>
<updated>2026-06-12T21:17:12Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-06-12T20:53:40Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=42e4b751702f065de932ef765bc6948c5e7d1e4b'/>
<id>urn:sha1:42e4b751702f065de932ef765bc6948c5e7d1e4b</id>
<content type='text'>
Profile-driven optimizations of the `Format` hot path, benchmarked against a representative master debug log (structured `"Key: %v"` messages dominated by GUIDs, strings, integers, bools and durations). Median improvements of ~15-20% across the workload, measured on a dedicated host.

Changes:
- `string_builder`: use `resize_uninitialized` in `DoReserve` to avoid zero-filling the buffer on every `Format` call.
- `format`: replace the per-argument `memchr` (`spec.Contains('n')`) with an inline scan, force-inline `RunFormatterAt`, and add a `FormatString` fast path for the common plain `%v` / empty spec.
- `guid`: rewrite `WriteGuidToBuffer` using a `clz`-derived digit count and a back-to-front fill instead of the per-magnitude branch cascade (cut from ~26% to ~12% of a GUID-heavy line). Validated against an `%x` reference over 2M random GUIDs plus edge cases.

Also adds `library/cpp/yt/string/benchmark` to track `Format` performance.

### Benchmarks

Median ns/op (lower is better), pinned core on a dedicated Xeon E5-2650 v2, 9x1s repetitions. See `library/cpp/yt/string/benchmark`.

| Benchmark | What it formats | Before | After | Speedup |
| --- | --- | ---: | ---: | ---: |
| `ManyMixedArgs` | ~18 args: GUIDs, strings, duration, ints | 1030 | 833 | -19% |
| `StringAndTwoGuids` | literal prefix + two GUIDs | 233 | 185 | -21% |
| `IntAndGuid` | one int + one GUID | 205 | 179 | -13% |
| `ManyInts` | six integers | 389 | 340 | -13% |
| `Guid` | a single GUID | 156 | 131 | -16% |
| `String` | a single string | 139 | 104 | -25% |
| `Int` | a single integer | 142 | 120 | -15% |
| `NoArgs` | a literal with no arguments | 88.8 | 85.7 | -3% |
commit_hash:ce9957a06c3ff28b2889aa65fbbddf4ca444f9fe
</content>
</entry>
<entry>
<title>YT: Add formatter for all protobuf enums</title>
<updated>2026-06-02T10:59:36Z</updated>
<author>
<name>grigminakov</name>
<email>grigminakov@yandex-team.com</email>
</author>
<published>2026-06-02T08:55:51Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3b859ddc8d5eee908953aa0a217e448933ffc2af'/>
<id>urn:sha1:3b859ddc8d5eee908953aa0a217e448933ffc2af</id>
<content type='text'>
commit_hash:58bf07dcff4aac728a67e0607d2c3b49ad1feef1
</content>
</entry>
<entry>
<title>Remove excess blank line</title>
<updated>2026-05-19T01:15:02Z</updated>
<author>
<name>pechatnov</name>
<email>pechatnov@yandex-team.com</email>
</author>
<published>2026-05-19T00:48:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e324708cc3d0cf8fe8e3f192da6a1d1f93c2bdc5'/>
<id>urn:sha1:e324708cc3d0cf8fe8e3f192da6a1d1f93c2bdc5</id>
<content type='text'>
commit_hash:fff41cdbc1400a312067a6517c334440404c662b
</content>
</entry>
<entry>
<title>YT-26137: Drop indicies in multicell manager</title>
<updated>2026-05-12T00:44:14Z</updated>
<author>
<name>cherepashka</name>
<email>cherepashka@yandex-team.com</email>
</author>
<published>2026-05-12T00:24:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2772dbbb657803d9e96f552b13993740a1c280f9'/>
<id>urn:sha1:2772dbbb657803d9e96f552b13993740a1c280f9</id>
<content type='text'>
* Changelog entry
  Type: feature
  Component: master

Drop indicies in multicell manager
commit_hash:692a550606183f6a8cb93425761911bbba09dceb
</content>
</entry>
<entry>
<title>YT-27951: Use truncated string view to limit query length in traces</title>
<updated>2026-04-23T08:16:41Z</updated>
<author>
<name>osidorkin</name>
<email>osidorkin@yandex-team.com</email>
</author>
<published>2026-04-23T07:46:30Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3eafe425787c0c3d6b9388faca597c1ab1a978b0'/>
<id>urn:sha1:3eafe425787c0c3d6b9388faca597c1ab1a978b0</id>
<content type='text'>
commit_hash:84610a30b17de408952f5c68dbc32b18b753b247
</content>
</entry>
<entry>
<title>YT-18571: Add format string checks to TStringBuilderBase::AppendFormat; also fix some releaved issues</title>
<updated>2026-04-22T07:08:46Z</updated>
<author>
<name>babenko</name>
<email>babenko@yandex-team.com</email>
</author>
<published>2026-04-22T06:41:38Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=70410f21980c0632b4746ec75cd9ba5762fc109a'/>
<id>urn:sha1:70410f21980c0632b4746ec75cd9ba5762fc109a</id>
<content type='text'>
commit_hash:dd15e713a6a83c8a14f1df2f011fa06f189f4a00
</content>
</entry>
<entry>
<title>YT-27951: Add special formatter for truncated string</title>
<updated>2026-04-20T19:34:00Z</updated>
<author>
<name>osidorkin</name>
<email>osidorkin@yandex-team.com</email>
</author>
<published>2026-04-20T14:41:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bac55b8485b68056b30a4d51ad60443a945c406f'/>
<id>urn:sha1:bac55b8485b68056b30a4d51ad60443a945c406f</id>
<content type='text'>
commit_hash:88bc9543595f9b630942d63aa1c3aee154056e92
</content>
</entry>
</feed>
