<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/util/datetime/systime.cpp, branch meta-1.0.3-dev3</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=meta-1.0.3-dev3</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=meta-1.0.3-dev3'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-02-27T20:53:09Z</updated>
<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>[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>[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>
<entry>
<title>FixNamespaceComments in /util</title>
<updated>2024-09-05T17:17:10Z</updated>
<author>
<name>dmasloff</name>
<email>dmasloff@yandex-team.com</email>
</author>
<published>2024-09-05T17:05:47Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=74184a40c15dc0649a769d9754d0ce7efb44db04'/>
<id>urn:sha1:74184a40c15dc0649a769d9754d0ce7efb44db04</id>
<content type='text'>
FixNamespaceComments in /util
bb9152570d7c258798644ead5a59f604de05ef3b
</content>
</entry>
<entry>
<title>fix typo</title>
<updated>2024-06-18T19:48:09Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2024-06-18T19:38:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3feae57cff571fa304e22c45521f5a89ae28f498'/>
<id>urn:sha1:3feae57cff571fa304e22c45521f5a89ae28f498</id>
<content type='text'>
f172ae24ead4a8c8edae837d34f264a744a4d89c
</content>
</entry>
<entry>
<title>Add mtime/atime/ctime with nanoseconds to TFileStat.</title>
<updated>2024-05-13T10:02:13Z</updated>
<author>
<name>sath</name>
<email>sath@yandex-team.com</email>
</author>
<published>2024-05-13T09:52:23Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7b31bb09a816431b42dc0a7d01398445ca700477'/>
<id>urn:sha1:7b31bb09a816431b42dc0a7d01398445ca700477</id>
<content type='text'>
3523ab3f5aade2bdf4c0efd5dd2defbe19f124ff
</content>
</entry>
<entry>
<title>Remove using of extra semicolons in util</title>
<updated>2023-05-04T07:28:45Z</updated>
<author>
<name>bulatman</name>
<email>bulatman@yandex-team.com</email>
</author>
<published>2023-05-04T07:28:45Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=6bccf8a6c51dfc4e563317584ee71ea0637c452a'/>
<id>urn:sha1:6bccf8a6c51dfc4e563317584ee71ea0637c452a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>speedup GmTimeR function</title>
<updated>2022-08-25T04:36:11Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2022-08-25T04:36:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=62b3eaa578ea03c63d0fd1ee409e13e360b1ab93'/>
<id>urn:sha1:62b3eaa578ea03c63d0fd1ee409e13e360b1ab93</id>
<content type='text'>
в профиле перфа Маркетного репорта постоянно вижу GmTimeR
там в цикле вычитается по количеству дней в году и прибавляется по 1 году с 1970 по 2022 на каждый вызов

В Маркете проблема стреляла и раньше

в последней итерации функция становится на ~~30% быстрее системной gmtime_r

%%
----------- GmTimeR ---------------
 samples:       20691
 iterations:    264304536
 iterations hr:    264M
 run time:      5.002055225
 per iteration: 39.85866484 cycles
----------- gmtime_r ---------------
 samples:       17452
 iterations:    188034528
 iterations hr:    188M
 run time:      5.001259884
 per iteration: 56.96146577 cycles
%%

текущая верся почти в 2 раза медленнее системной:

%%
----------- GmTimeR ---------------
 samples:       12760
 iterations:    100514931
 iterations hr:    101M
 run time:      5.00096133
 per iteration: 105.4334174 cycles
----------- gmtime_r ---------------
 samples:       17667
 iterations:    192697896
 iterations hr:    193M
 run time:      5.001356603
 per iteration: 55.69031415 cycles
%%</content>
</entry>
</feed>
