Steffen Nurpmeso wrote in <20230110235603.tclHE%steffen@sdaoden.eu>: |Benjamin Drung wrote in | <3f5601eaa696b06a12f3a578b3128b131ed3bbef.camel@canonical.com>: ||a Ubuntu user has been reporting in https://launchpad.net/bugs/868395 ||that the Europe/Moscow timezone is multiple times slower than other ||timezones. Here is the example bug.c code: || ||``` ||#include <time.h> ||#include <stdio.h> || ||int main() { || time_t t = time(0); || int i; || struct tm result; || for(i=0; i < 10000000; i++) || localtime_r(&t, &result); || puts(ctime(&t)); || return 0; ||} ||``` ... ||The result on my machine is that Etc/UTC, Europe/Berlin, and other ||timezones take around 250 to 400 ms, but Europe/Moscow takes 1200 ms. ||The result is the same when running in a Debian unstable, Ubuntu 22.04 ||(jammy) and Ubuntu 23.04 (lunar) chroot. | |Wow, what performance. | | #?0|kent:tmp$ for f in Etc/UTC Europe/Berlin Europe/Moscow; do time \ | TZ=$f ./zt; done | real 0m0.520s | user 0m0.515s | sys 0m0.004s | Wed Jan 11 00:51:58 2023 | real 0m7.202s | user 0m7.180s | sys 0m0.000s | Wed Jan 11 02:52:05 2023 | real 0m2.076s | user 0m2.071s | sys 0m0.000s | ||Is that a bug? If yes, is that a bug in glibc? | |CRUX Linux, 2022g, 2.36-3, gcc 12.2.0. | | #?0|kent:tmp$ zdump -v Europe/Berlin|wc -l | 2144 | #?0|kent:tmp$ zdump -v Europe/Moscow|wc -l | 166 | #?0|kent:tmp$ zdump -v Etc/UTC|wc -l | 6 ..just to correct stupidity a little bit $ for f in Etc/UTC Europe/Berlin Europe/Moscow; do ef=$(echo $f | sed -E 's|/|\\/|') sed -E '/^Z '"$ef"'/,/^Z /p;d' /usr/share/zoneinfo/tzdata.zi done comes to Z Etc/UTC 0 - UTC Z Etc/GMT 0 - GMT Z Europe/Berlin 0:53:28 - LMT 1893 Ap 1 c CE%sT 1945 May 24 2 1 So CE%sT 1946 1 DE CE%sT 1980 1 E CE%sT Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 Z Europe/Moscow 2:30:17 - LMT 1880 2:30:17 - MMT 1916 Jul 3 2:31:19 R %s 1919 Jul 1 0u 3 R %s 1921 O 3 R MSK/MSD 1922 O 2 - EET 1930 Jun 21 3 R MSK/MSD 1991 Mar 31 2s 2 R EE%sT 1992 Ja 19 2s 3 R MSK/MSD 2011 Mar 27 2s 4 - MSK 2014 O 26 2s 3 - MSK Z Europe/Simferopol 2:16:24 - LMT 1880 --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)