<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/datetime, branch meta-1.0.3-dev2</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=meta-1.0.3-dev2</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=meta-1.0.3-dev2'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-07-10T17:03:28Z</updated>
<entry>
<title>port util to freebsd, again</title>
<updated>2025-07-10T17:03:28Z</updated>
<author>
<name>pg</name>
<email>pg@yandex-team.com</email>
</author>
<published>2025-07-10T16:07:07Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=43cc41b23a0aaae6d5d1403873c0b1debb16fb3c'/>
<id>urn:sha1:43cc41b23a0aaae6d5d1403873c0b1debb16fb3c</id>
<content type='text'>
```
[pg@arc ~]$ ./util-ut
&lt;----- TSaveLoadTest
[exec] TSaveLoadTest::TestSaveLoad...
[good] TSaveLoadTest::TestSaveLoad
[exec] TSaveLoadTest::TestSaveLoadEmptyStruct...
[good] TSaveLoadTest::TestSaveLoadEmptyStruct
[exec] TSaveLoadTest::TestNewStyle...
[good] TSaveLoadTest::TestNewStyle
[exec] TSaveLoadTest::TestNewNewStyle...
[good] TSaveLoadTest::TestNewNewStyle
[exec] TSaveLoadTest::TestList...
[good] TSaveLoadTest::TestList
[exec] TSaveLoadTest::TestTuple...
[good] TSaveLoadTest::TestTuple
[exec] TSaveLoadTest::TestVariant...
[good] TSaveLoadTest::TestVariant
[exec] TSaveLoadTest::TestOptional...
[good] TSaveLoadTest::TestOptional
[exec] TSaveLoadTest::TestInheritNonVirtualClass...
[good] TSaveLoadTest::TestInheritNonVirtualClass
[exec] TSaveLoadTest::TestInheritVirtualClass...
[good] TSaveLoadTest::TestInheritVirtualClass
-----&gt; TSaveLoadTest -&gt; ok: 10
[DONE] ok: 10
[pg@arc ~]$ uname -a
FreeBSD arc.freebsd.devtools 14.2-RELEASE-p1 FreeBSD 14.2-RELEASE-p1 GENERIC amd64
[pg@arc ~]$
```
commit_hash:229d8aa6c8ccce1376d152a833fe8bf7c5faa3bd
</content>
</entry>
<entry>
<title>[util] Obtain uptime from the clock_gettime syscall</title>
<updated>2025-05-30T23:15:51Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-05-30T22:59:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a07a46cd2b9d577d4945aa186d04d6c0df6ef556'/>
<id>urn:sha1:a07a46cd2b9d577d4945aa186d04d6c0df6ef556</id>
<content type='text'>
Reading /proc/uptime is about a hundred times slower than accessing the same timer via the clock_gettime call. The latter also has better precision.
commit_hash:70904860adc43c9d2d6487a415a2e6b27fe6dae7
</content>
</entry>
<entry>
<title>Update Cython to 3.0.10.</title>
<updated>2025-05-19T04:36:02Z</updated>
<author>
<name>nik-bes</name>
<email>nik-bes@yandex-team.com</email>
</author>
<published>2025-05-19T04:20:13Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=317b7368e24941ff76499f500579fd9b10f6656e'/>
<id>urn:sha1:317b7368e24941ff76499f500579fd9b10f6656e</id>
<content type='text'>
commit_hash:b43c96b868cd36d636192fd2c6024d9f0d2fb6f8
</content>
</entry>
<entry>
<title>[util] getting rid of LUT in DayOfYearToMonth</title>
<updated>2025-02-27T20:53:09Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-02-27T20:36:24Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=08060dc027babcf4a9eefc4d77122524ac4714fe'/>
<id>urn:sha1:08060dc027babcf4a9eefc4d77122524ac4714fe</id>
<content type='text'>
commit_hash:9ec33d0cbe2da6aeea6e8d02fdaed5f45b6e3534
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-02-24T16:44:33Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-02-24T16:24:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=377ba753b5f4ddbd8708dc4bbaa8a7758d84b6c5'/>
<id>urn:sha1:377ba753b5f4ddbd8708dc4bbaa8a7758d84b6c5</id>
<content type='text'>
commit_hash:ec09e953e6ed7b89ab18dfdac86961de36b5b2ea
</content>
</entry>
<entry>
<title>[util] speedup GmTimeR outside LUT interval</title>
<updated>2025-02-18T04:41:34Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-02-18T04:25:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b9824e1dc11c30a60d6416b9d345758bc7901544'/>
<id>urn:sha1:b9824e1dc11c30a60d6416b9d345758bc7901544</id>
<content type='text'>
commit_hash:d57be220df393c193619ef5ed129ec4436540629
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-02-11T13:15:59Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-02-11T13:03:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=0410581dd10d998fe908dc56392c0167f948951b'/>
<id>urn:sha1:0410581dd10d998fe908dc56392c0167f948951b</id>
<content type='text'>
commit_hash:f3acde65f4eb25503f414d5262f52b496123bd96
</content>
</entry>
<entry>
<title>[util] GmTimeR: use LUT for the tm_yday -&gt; tm_mday conversion</title>
<updated>2025-02-10T21:10:29Z</updated>
<author>
<name>swarmer</name>
<email>swarmer@yandex-team.com</email>
</author>
<published>2025-02-10T20:38:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=17cc83379606b885d021e15a7cf5941210eba0b5'/>
<id>urn:sha1:17cc83379606b885d021e15a7cf5941210eba0b5</id>
<content type='text'>
Replacing binary search with a look-up table. The performance of which does not depend on the branch predictor, and conversion works equally fast for any dates.
commit_hash:fefe9665d0d4b51c2ae09ec2b2816aed30caa57b
</content>
</entry>
<entry>
<title>[util] GmTimeR: speedup a bit</title>
<updated>2025-02-10T20:57:24Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-02-10T20:07:18Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=cc4962f760e1d454f0ce1dbe54ed92f9bf7eaf6a'/>
<id>urn:sha1:cc4962f760e1d454f0ce1dbe54ed92f9bf7eaf6a</id>
<content type='text'>
perf before

```
-------------------------------------------------------------------------------
Benchmark                                     Time             CPU   Iterations
-------------------------------------------------------------------------------
BM_GmTimeR                                 3.61 ns         3.61 ns    194952699
BM_GmTimeRRandom/last_hour                 5.04 ns         5.04 ns    136121940
BM_GmTimeRRandom/last_day                  5.03 ns         5.03 ns    139883239
BM_GmTimeRRandom/last_month                8.03 ns         8.03 ns     87839823
BM_GmTimeRRandom/last_year                 14.9 ns         14.9 ns     46401773
BM_GmTimeRRandom/last_decade               16.9 ns         16.9 ns     41439312
BM_GmTimeRRandom/last_half_centry          16.9 ns         16.9 ns     41225553

```

perf after

```
-------------------------------------------------------------------------------
Benchmark                                     Time             CPU   Iterations
-------------------------------------------------------------------------------
BM_GmTimeR                                 3.27 ns         3.27 ns    215390890
BM_GmTimeRRandom/last_hour                 4.52 ns         4.52 ns    154869504
BM_GmTimeRRandom/last_day                  4.53 ns         4.53 ns    155409964
BM_GmTimeRRandom/last_month                7.24 ns         7.24 ns     96972146
BM_GmTimeRRandom/last_year                 13.5 ns         13.5 ns     51957829
BM_GmTimeRRandom/last_decade               15.5 ns         15.5 ns     45192135
BM_GmTimeRRandom/last_half_centry          15.4 ns         15.4 ns     45526906

```
commit_hash:ac9db56d93a25c3a3018cfbb6bc5800da3d001ee
</content>
</entry>
<entry>
<title>GmTimeR x2 speedup</title>
<updated>2025-02-07T22:23:36Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-02-07T22:05:37Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=4129a9dd24e35aab2757f89b60544bc7bca8fb4c'/>
<id>urn:sha1:4129a9dd24e35aab2757f89b60544bc7bca8fb4c</id>
<content type='text'>
performance comparison againt standard gmtime\_r

```
-------------------------------------------------------------------------------
Benchmark                                     Time             CPU   Iterations
-------------------------------------------------------------------------------
BM_GmTimeR                                 3.66 ns         3.66 ns    189855900
BM_gmtime_r                                18.7 ns         18.7 ns     37340999
BM_GmTimeRRandom/last_hour                 5.12 ns         5.12 ns    136126173
BM_gmtime_r_Random/last_hour               19.2 ns         19.2 ns     36556971
BM_GmTimeRRandom/last_day                  5.10 ns         5.10 ns    138257644
BM_gmtime_r_Random/last_day                19.2 ns         19.2 ns     37025160
BM_GmTimeRRandom/last_month                7.10 ns         7.10 ns     98235494
BM_gmtime_r_Random/last_month              20.4 ns         20.4 ns     34637975
BM_GmTimeRRandom/last_year                 15.0 ns         15.0 ns     46664304
BM_gmtime_r_Random/last_year               26.8 ns         26.8 ns     26135911
BM_GmTimeRRandom/last_decade               17.2 ns         17.2 ns     40105536
BM_gmtime_r_Random/last_decade             27.0 ns         27.0 ns     25817056
BM_GmTimeRRandom/last_half_centry          17.1 ns         17.0 ns     41066079
BM_gmtime_r_Random/last_half_century       26.8 ns         26.7 ns     26215076
```
commit_hash:33747760ad46412f50fe3cb06f4c438794a44492
</content>
</entry>
</feed>
